]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Add support for service plugins to the migration framework
authorOleg Bondarev <obondarev@mirantis.com>
Wed, 7 Aug 2013 12:15:51 +0000 (16:15 +0400)
committerOleg Bondarev <obondarev@mirantis.com>
Fri, 9 Aug 2013 10:08:27 +0000 (14:08 +0400)
Implements blueprint migrations-for-service-plugins
Fixes bug 1209151

Change-Id: If7fc7a4488352e9b65b6973d8ea631e0d9ed8b68

46 files changed:
neutron/db/migration/__init__.py
neutron/db/migration/alembic_migrations/env.py
neutron/db/migration/alembic_migrations/script.py.mako
neutron/db/migration/alembic_migrations/versions/1149d7de0cfa_port_security.py
neutron/db/migration/alembic_migrations/versions/11c6e18605c8_pool_monitor_status_.py
neutron/db/migration/alembic_migrations/versions/128e042a2b68_ext_gw_mode.py
neutron/db/migration/alembic_migrations/versions/1341ed32cc1e_nvp_netbinding_update.py
neutron/db/migration/alembic_migrations/versions/13de305df56e_add_nec_pf_name.py
neutron/db/migration/alembic_migrations/versions/176a85fc7d79_add_portbindings_db.py
neutron/db/migration/alembic_migrations/versions/1b693c095aa3_quota_ext_db_grizzly.py
neutron/db/migration/alembic_migrations/versions/1c33fa3cd1a1_extra_route_config.py
neutron/db/migration/alembic_migrations/versions/1d76643bcec4_nvp_netbinding.py
neutron/db/migration/alembic_migrations/versions/2032abe8edac_lbaas_add_status_des.py
neutron/db/migration/alembic_migrations/versions/20ae61555e95_ml2_gre_type_driver.py
neutron/db/migration/alembic_migrations/versions/263772d65691_cisco_db_cleanup_2.py
neutron/db/migration/alembic_migrations/versions/2a6d0b51f4bb_cisco_plugin_cleanup.py
neutron/db/migration/alembic_migrations/versions/2c4af419145b_l3_support.py
neutron/db/migration/alembic_migrations/versions/32b517556ec9_remove_tunnelip_mode.py
neutron/db/migration/alembic_migrations/versions/35c7c198ddea_lbaas_healthmon_del_status.py
neutron/db/migration/alembic_migrations/versions/363468ac592c_nvp_network_gw.py
neutron/db/migration/alembic_migrations/versions/38335592a0dc_nvp_portmap.py
neutron/db/migration/alembic_migrations/versions/39cf3f799352_fwaas_havana_2_model.py
neutron/db/migration/alembic_migrations/versions/3b54bf9e29f7_nec_plugin_sharednet.py
neutron/db/migration/alembic_migrations/versions/3cabb850f4a5_table_to_track_port_.py
neutron/db/migration/alembic_migrations/versions/3cb5d900c5de_security_groups.py
neutron/db/migration/alembic_migrations/versions/3cbf70257c28_nvp_mac_learning.py
neutron/db/migration/alembic_migrations/versions/45680af419f9_nvp_qos.py
neutron/db/migration/alembic_migrations/versions/4692d074d587_agent_scheduler.py
neutron/db/migration/alembic_migrations/versions/477a4488d3f4_ml2_vxlan_type_driver.py
neutron/db/migration/alembic_migrations/versions/48b6f43f7471_service_type.py
neutron/db/migration/alembic_migrations/versions/49332180ca96_ryu_plugin_update.py
neutron/db/migration/alembic_migrations/versions/511471cc46b_agent_ext_model_supp.py
neutron/db/migration/alembic_migrations/versions/52c5e4a18807_lbaas_pool_scheduler.py
neutron/db/migration/alembic_migrations/versions/52ff27f7567a_support_for_vpnaas.py
neutron/db/migration/alembic_migrations/versions/54c2c487e913_lbaas.py
neutron/db/migration/alembic_migrations/versions/557edfc53098_new_service_types.py
neutron/db/migration/alembic_migrations/versions/5918cbddab04_add_tables_for_route.py
neutron/db/migration/alembic_migrations/versions/5a875d0e5c_ryu.py
neutron/db/migration/alembic_migrations/versions/5ac71e65402c_ml2_initial.py
neutron/db/migration/alembic_migrations/versions/b7a8863760e_rm_cisco_vlan_bindin.py
neutron/db/migration/alembic_migrations/versions/e6b16a30d97_cisco_provider_nets.py
neutron/db/migration/alembic_migrations/versions/f489cf14a79c_lbaas_havana.py
neutron/db/migration/alembic_migrations/versions/folsom_initial.py
neutron/db/migration/alembic_migrations/versions/grizzly_release.py
neutron/db/migration/cli.py
neutron/tests/unit/test_db_migration.py

index ec8012693a5de30edc1e7d824d35ba6c027433b1..2b102287eb0d54922df484a795d1249ba6a56796 100644 (file)
@@ -17,8 +17,8 @@
 # @author: Mark McClain, DreamHost
 
 
-def should_run(active_plugin, migrate_plugins):
+def should_run(active_plugins, migrate_plugins):
     if '*' in migrate_plugins:
         return True
     else:
-        return active_plugin in migrate_plugins
+        return set(active_plugins) & set(migrate_plugins)
index 300f05a0751b215c865f67fcde1d32c68ac6dd7e..f3f315bfef47c50080b9a3d505c6a9d51eda355b 100644 (file)
@@ -37,6 +37,8 @@ neutron_config = config.neutron_config
 fileConfig(config.config_file_name)
 
 plugin_class_path = neutron_config.core_plugin
+active_plugins = [plugin_class_path]
+active_plugins += neutron_config.service_plugins
 
 plugin_klass = importutils.import_class(plugin_class_path)
 
@@ -59,7 +61,7 @@ def run_migrations_offline():
     context.configure(url=neutron_config.database.connection)
 
     with context.begin_transaction():
-        context.run_migrations(active_plugin=plugin_class_path,
+        context.run_migrations(active_plugins=active_plugins,
                                options=build_options())
 
 
@@ -82,7 +84,7 @@ def run_migrations_online():
 
     try:
         with context.begin_transaction():
-            context.run_migrations(active_plugin=plugin_class_path,
+            context.run_migrations(active_plugins=active_plugins,
                                    options=build_options())
     finally:
         connection.close()
index b730f72e438b8a81e8b5de74b0eba01b4d6ee09b..9912615b7f2c853c412f5bf5a362b80e2a261fc3 100644 (file)
@@ -40,15 +40,15 @@ ${imports if imports else ""}
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ${upgrades if upgrades else "pass"}
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ${downgrades if downgrades else "pass"}
index 575c12cff99ca8a6c1960b2d08644dffeea74e56..2de10aedfac321c8c959215bc21e3be9672f1680 100644 (file)
@@ -39,8 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
@@ -71,8 +71,8 @@ def upgrade(active_plugin=None, options=None):
                "False as port_security_enabled from ports")
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
index 8423e9efcf77534af9f00f066f21c049f0492927..a31bf6a95113d971bb48a0ca1c6a839546a1c081 100644 (file)
@@ -29,7 +29,9 @@ down_revision = '52ff27f7567a'
 
 # Change to ['*'] if this migration applies to all plugins
 
-migration_for_plugins = ['*']
+migration_for_plugins = [
+    'neutron.services.loadbalancer.plugin.LoadBalancerPlugin',
+]
 
 from alembic import op
 import sqlalchemy as sa
@@ -37,12 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-# Change to ['*'] if this migration applies to all plugins
-migration_for_plugins = ['*']
-
-
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.add_column('poolmonitorassociations', sa.Column('status',
@@ -55,8 +53,8 @@ def upgrade(active_plugin=None, options=None):
     op.execute("UPDATE poolmonitorassociations SET status='ACTIVE'")
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_column('poolmonitorassociations', 'status')
index 8770b1e245e67d4609103e93d2deb5f763b278d5..6b630dcb8334d240251e3a603c70a40e00f36f9b 100644 (file)
@@ -46,8 +46,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.add_column('routers', sa.Column('enable_snat', sa.Boolean(),
@@ -56,8 +56,8 @@ def upgrade(active_plugin=None, options=None):
     op.execute("UPDATE routers SET enable_snat=True")
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_column('routers', 'enable_snat')
index 9c5cdc928203ad7aac719a2d1aa8121a37107cfa..9bff77298318d0ec3d270349b7cc98b00050fc23 100644 (file)
@@ -40,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
     op.alter_column('nvp_network_bindings', 'tz_uuid',
                     name='phy_uuid',
@@ -53,8 +53,8 @@ def upgrade(active_plugin=None, options=None):
                     existing_nullable=True)
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
     op.alter_column('nvp_network_bindings', 'phy_uuid',
                     name='tz_uuid',
index 727b492a04604bac5570286e27d048b8c0dc2e8d..17a951cd59094fe72838f99dcf04ec444bcde07e 100644 (file)
@@ -40,16 +40,16 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.add_column('packetfilters',
                   sa.Column('name', sa.String(length=255), nullable=True))
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_column('packetfilters', 'name')
index 6d21ab4747ac15f46b351910ebd1456be5fe26a3..46748526917095cb0cb4620f03384b3c62a61ce5 100644 (file)
@@ -41,8 +41,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -54,7 +54,7 @@ def upgrade(active_plugin=None, options=None):
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
     op.drop_table('portbindingports')
index eb33b0c861f33928519866625cfad08377276091..2a50e4d5ebe4333aef5488993fe3cc28105c1093 100644 (file)
@@ -39,8 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
@@ -55,8 +55,8 @@ def upgrade(active_plugin=None, options=None):
     ### end Alembic commands ###
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
index 107773b006bd40bbfab57f0fa0e7e722ca85d228..2d91fc6a83e771d6910dd726c1aa1856206da0e7 100644 (file)
@@ -43,8 +43,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.rename_table(
@@ -63,8 +63,8 @@ def upgrade(active_plugin=None, options=None):
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.rename_table(
index d38bae31af5c84a04b1a76a5625a9f00a793e48d..47784d31d4cbf165e2c8adf7792edc3db294f4c0 100644 (file)
@@ -39,8 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -57,8 +57,8 @@ def upgrade(active_plugin=None, options=None):
         sa.PrimaryKeyConstraint('network_id'))
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('nvp_network_bindings')
index 2a91d0de5dea0aa40af245b65b2e9939933e9c17..813f93e9623490d3524764ddd4bbb6a377724cce 100644 (file)
@@ -29,7 +29,9 @@ down_revision = '477a4488d3f4'
 
 # Change to ['*'] if this migration applies to all plugins
 
-migration_for_plugins = ['*']
+migration_for_plugins = [
+    'neutron.services.loadbalancer.plugin.LoadBalancerPlugin',
+]
 
 from alembic import op
 import sqlalchemy as sa
@@ -39,16 +41,16 @@ from neutron.db import migration
 ENTITIES = ['vips', 'pools', 'members', 'healthmonitors']
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     for entity in ENTITIES:
         op.add_column(entity, sa.Column('status_description', sa.String(255)))
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     for entity in ENTITIES:
index 08e82a0e730e3c2fda2656e5778776cb80d8ad80..e63668c25d210d4cbe5d988ad722ff02d06d8b31 100644 (file)
@@ -39,8 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -58,8 +58,8 @@ def upgrade(active_plugin=None, options=None):
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('ml2_gre_allocations')
index 646cbaccc55253d5d8a743572cd4c79b5927f32b..bc1381cb421e62862a2a30e6338301591bf6f00b 100644 (file)
@@ -39,8 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     if 'credentials' in sa.MetaData().tables:
@@ -53,8 +53,8 @@ def upgrade(active_plugin=None, options=None):
     op.drop_table('cisco_vlan_ids')
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
index bceac0ed7a6311330a0cf1c5636f692b7f3e1bb0..efc84e97db761270632c542e91b1af8fa950df4c 100644 (file)
@@ -39,8 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table(u'port_bindings')
@@ -49,8 +49,8 @@ def upgrade(active_plugin=None, options=None):
     op.drop_table(u'portprofile_bindings')
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
index 63a46112ec9aa8edfea17dfa376215132dbc9834..f142fc38f93c5ae0698e41af8f4e731c38946b82 100644 (file)
@@ -40,13 +40,13 @@ from neutron.db import migration
 from neutron.db.migration.alembic_migrations import common_ext_ops
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
     common_ext_ops.upgrade_l3()
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
     common_ext_ops.downgrade_l3()
index 04f701204638a06217f6bb385debfec2243ba102..4c5c1e98be0744c3714a5f7b25f8327bf9c4d87a 100644 (file)
@@ -40,15 +40,15 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('ovs_tunnel_ips')
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
index a0f9b8363594d95f250d17ed70ca21ee9553db37..57417269427045c6cd7155a830b963387ada0f93 100644 (file)
@@ -29,7 +29,9 @@ down_revision = '11c6e18605c8'
 
 # Change to ['*'] if this migration applies to all plugins
 
-migration_for_plugins = ['*']
+migration_for_plugins = [
+    'neutron.services.loadbalancer.plugin.LoadBalancerPlugin',
+]
 
 from alembic import op
 import sqlalchemy as sa
@@ -38,15 +40,15 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
     op.drop_column('healthmonitors', 'status')
     op.drop_column('healthmonitors', 'status_description')
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.add_column('healthmonitors', sa.Column('status',
index e011342ba4b994a2189a662f47451984ab7c8a8c..64bdce413445905d3d7781202201c4e0fe809e75 100644 (file)
@@ -40,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
     op.create_table('networkgateways',
                     sa.Column('id', sa.String(length=36), nullable=False),
@@ -88,8 +88,8 @@ def upgrade(active_plugin=None, options=None):
                                         'segmentation_id'))
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('networkconnections')
index c07fc48249966c9300ac32c9c2ee2b4d52d16933..fd9de4d308125b2ddb15cba7bfa701bec578f1a5 100644 (file)
@@ -39,8 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -52,8 +52,8 @@ def upgrade(active_plugin=None, options=None):
         sa.PrimaryKeyConstraint('neutron_id'))
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('neutron_nvp_port_mapping')
index 077f44f8d404a5075d1a97e2aa1b74f544443683..a114df1f8ab093a5a477d6532fc9ec0afca57851 100644 (file)
@@ -29,7 +29,9 @@ down_revision = 'e6b16a30d97'
 
 # Change to ['*'] if this migration applies to all plugins
 
-migration_for_plugins = ['*']
+migration_for_plugins = [
+    'neutron.services.firewall.fwaas_plugin.FirewallPlugin',
+]
 
 from alembic import op
 import sqlalchemy as sa
@@ -37,8 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('firewall_rules')
@@ -46,8 +48,8 @@ def downgrade(active_plugin=None, options=None):
     op.drop_table('firewall_policies')
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
index f1f0dd9da6f8eda59f334559bb6ef001730259a8..fb2b776f5421c33bc8713fc39decb74b246ea534 100644 (file)
@@ -40,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -74,8 +74,8 @@ def upgrade(active_plugin=None, options=None):
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('ofcfiltermappings')
index b47882882218077d334b1293310c1dcdaf49123b..dbfdc59531aaa0c95f7f7d0878894cee23857cf6 100644 (file)
@@ -40,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
@@ -54,8 +54,8 @@ def upgrade(active_plugin=None, options=None):
     ### end Alembic commands ###
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
index a5a65e1a730f7053e6f810c895b8c86e1db8ca2c..ee07e3bd2cc7ccb341df1dabbcb04983420e699a 100644 (file)
@@ -43,8 +43,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
@@ -88,8 +88,8 @@ def upgrade(active_plugin=None, options=None):
     ### end Alembic commands ###
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
index aa5570123912c4fa15212ab94b89706f80fdfdea..0864f9a13f08f1c80799e9faa8f66f9a75f4a3d5 100644 (file)
@@ -40,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -53,8 +53,8 @@ def upgrade(active_plugin=None, options=None):
         sa.PrimaryKeyConstraint('port_id'))
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('maclearningstates')
index b30ec94f5f1d5a728b14016a553b68b08fda6b65..9a2381aad3ce7878807898df67247429ae31f966 100644 (file)
@@ -40,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
@@ -80,8 +80,8 @@ def upgrade(active_plugin=None, options=None):
     ### end Alembic commands ###
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
index c90aec2ae4cd81a813712ffb1de96914729e314f..d89879cfd7f5121bee16fe39720fb89797623df5 100644 (file)
@@ -44,8 +44,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
@@ -73,8 +73,8 @@ def upgrade(active_plugin=None, options=None):
     ### end Alembic commands ###
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
index ecb8a5d9a78703cab3e96d0bf13a2bd48915a807..a57617e445c7237a71697eb56f54b1554424eadf 100644 (file)
@@ -40,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -61,8 +61,8 @@ def upgrade(active_plugin=None, options=None):
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('ml2_vxlan_allocations')
index 4c46a3554f46b916b38969a142bed736db249c47..83f3e726b2919f9a7851f51267a8c6a3ca18dc38 100644 (file)
@@ -39,8 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -68,8 +68,8 @@ def upgrade(active_plugin=None, options=None):
         sa.PrimaryKeyConstraint(u'id', u'service_class', u'service_type_id'))
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table(u'servicedefinitions')
index 9c0df3491dac430295c6f8b958e03e073c05d32f..d4444996244bf0761dde6b580b8737eef0f206c7 100644 (file)
@@ -39,15 +39,15 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('ofp_server')
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
index fa75e21fc29061503f5d160a1fd4b1a5a679d913..c372b413e57503af59a75cf0f377d46ee56aa107 100644 (file)
@@ -35,6 +35,7 @@ migration_for_plugins = [
     'neutron.plugins.nicira.NeutronPlugin.NvpPluginV2',
     'neutron.plugins.nec.nec_plugin.NECPluginV2',
     'neutron.plugins.brocade.NeutronPlugin.BrocadePluginV2',
+    'neutron.services.loadbalancer.plugin.LoadBalancerPlugin',
 ]
 
 from alembic import op
@@ -44,8 +45,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
@@ -67,8 +68,8 @@ def upgrade(active_plugin=None, options=None):
     ### end Alembic commands ###
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
index 93de5bbe69af3e7095fbccdfb3c85387b5426a9a..345955a0f5e46f6f1f31e90e87d6ab5bfcaa2715 100644 (file)
@@ -27,11 +27,19 @@ Create Date: 2013-06-14 03:23:47.815865
 revision = '52c5e4a18807'
 down_revision = '2032abe8edac'
 
+migration_for_plugins = [
+    'neutron.services.loadbalancer.plugin.LoadBalancerPlugin',
+]
+
 from alembic import op
 import sqlalchemy as sa
 
+from neutron.db import migration
+
 
-def upgrade(active_plugin=None, options=None):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
+        return
     ### commands auto generated by Alembic - please adjust! ###
     op.create_table(
         'poolloadbalanceragentbindings',
@@ -47,7 +55,9 @@ def upgrade(active_plugin=None, options=None):
     ### end Alembic commands ###
 
 
-def downgrade(active_plugin=None, options=None):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
+        return
     ### commands auto generated by Alembic - please adjust! ###
     op.drop_table('poolloadbalanceragentbindings')
     ### end Alembic commands ###
index d3612a20f29641b57736ca058bd5e1542fe70f66..c83804e1bdb51332b0d7dfd156473c2fa796cedd 100644 (file)
@@ -30,7 +30,7 @@ down_revision = '39cf3f799352'
 # Change to ['*'] if this migration applies to all plugins
 
 migration_for_plugins = [
-    '*'
+    'neutron.services.vpn.plugin.VPNPlugin',
 ]
 
 from alembic import op
@@ -39,8 +39,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -172,8 +172,8 @@ def upgrade(active_plugin=None, options=None):
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('ipsecpeercidrs')
index d9fff767e6aa3cc0898d1eeaad2b1723973ddec3..f40daf5e6f73c7f5738bb14e25a20bf826f770e4 100644 (file)
@@ -38,8 +38,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -150,8 +150,8 @@ def upgrade(active_plugin=None, options=None):
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table(u'poolstatisticss')
index daf9dbbffafd9de5c24462251c1e1c350e2f5148..17492afc8420fdf2fa6647b301f32ad08477f81d 100644 (file)
@@ -29,7 +29,9 @@ down_revision = '52c5e4a18807'
 
 # Change to ['*'] if this migration applies to all plugins
 
-migration_for_plugins = ['*']
+migration_for_plugins = [
+    'neutron.services.loadbalancer.plugin.LoadBalancerPlugin',
+]
 
 from alembic import op
 import sqlalchemy as sa
@@ -38,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
     op.create_table(
         'providerresourceassociations',
@@ -53,8 +55,8 @@ def upgrade(active_plugin=None, options=None):
     op.drop_table('servicetypes')
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
     op.create_table(
         'servicetypes',
index e6a325354c30b24b294cad064a7a21ade3866a2e..946f9c08e3aa16aa731e7b7e7865e5591da137e0 100644 (file)
@@ -40,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table('routerrules',
@@ -63,8 +63,8 @@ def upgrade(active_plugin=None, options=None):
                     sa.PrimaryKeyConstraint('rule_id', 'nexthop'))
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('nexthops')
index b819b6d5d310578d753e06a0b883b335dc304d76..8eee238a1b06f799f471a7656f3e1faf380154f0 100644 (file)
@@ -44,8 +44,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -66,8 +66,8 @@ def upgrade(active_plugin=None, options=None):
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('tunnelkeylasts')
index d3e97d6424ca829874294b288e1fafdd371a53fa..9227197c77ff0662b96a99ecf1f5a49fd1066737 100644 (file)
@@ -40,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
@@ -73,8 +73,8 @@ def upgrade(active_plugin=None, options=None):
     ### end Alembic commands ###
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     ### commands auto generated by Alembic - please adjust! ###
index 87e573ada41fad095afb5d1eee4de4f7687b41d7..dcda4e6862f075967803a39e56caeea7e525ef0b 100644 (file)
@@ -40,15 +40,15 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('cisco_vlan_bindings')
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
index 7a3c159af927bca1a28ceab3f089cc0df37e4d65..2e02ee9b96c9da01244f5fbc8783dd55083c368b 100644 (file)
@@ -40,8 +40,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -53,8 +53,8 @@ def upgrade(active_plugin=None, options=None):
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('cisco_provider_networks')
index 1a8f0fcae056b223d51d4cc2faab6306ad748ffe..b2d07e607c12ebe290365e64834e4c29f1b5b5f0 100644 (file)
@@ -27,7 +27,9 @@ Create Date: 2013-02-04 16:32:32.048731
 revision = 'f489cf14a79c'
 down_revision = 'grizzly'
 
-migration_for_plugins = ['*']
+migration_for_plugins = [
+    'neutron.services.loadbalancer.plugin.LoadBalancerPlugin',
+]
 
 from alembic import op
 import sqlalchemy as sa
@@ -35,8 +37,8 @@ import sqlalchemy as sa
 from neutron.db import migration
 
 
-def upgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def upgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.create_table(
@@ -147,8 +149,8 @@ def upgrade(active_plugin=None, options=None):
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if not migration.should_run(active_plugin, migration_for_plugins):
+def downgrade(active_plugins=None, options=None):
+    if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table(u'poolstatisticss')
index 8541a5d8474806f0920e131b20ecc4414e89e3b9..0f99d5bd57b76fe49a2ed28c207dc075d2d7b4ca 100644 (file)
@@ -64,29 +64,29 @@ from neutron.db.migration.alembic_migrations import common_ext_ops
 # NOTE: This is a special migration that creates a Folsom compatible database.
 
 
-def upgrade(active_plugin=None, options=None):
+def upgrade(active_plugins=None, options=None):
     # general model
     upgrade_base()
 
-    if active_plugin in L3_CAPABLE:
+    if set(active_plugins) & set(L3_CAPABLE):
         common_ext_ops.upgrade_l3()
 
-    if active_plugin in FOLSOM_QUOTA:
+    if set(active_plugins) & set(FOLSOM_QUOTA):
         common_ext_ops.upgrade_quota(options)
 
-    if active_plugin == PLUGINS['lbr']:
+    if PLUGINS['lbr'] in active_plugins:
         upgrade_linuxbridge()
-    elif active_plugin == PLUGINS['ovs']:
+    elif PLUGINS['ovs'] in active_plugins:
         upgrade_ovs()
-    elif active_plugin == PLUGINS['cisco']:
+    elif PLUGINS['cisco'] in active_plugins:
         upgrade_cisco()
         # Cisco plugin imports OVS models too
         upgrade_ovs()
-    elif active_plugin == PLUGINS['meta']:
+    elif PLUGINS['meta'] in active_plugins:
         upgrade_meta()
-    elif active_plugin == PLUGINS['nec']:
+    elif PLUGINS['nec'] in active_plugins:
         upgrade_nec()
-    elif active_plugin == PLUGINS['ryu']:
+    elif PLUGINS['ryu'] in active_plugins:
         upgrade_ryu()
 
 
@@ -428,26 +428,26 @@ def upgrade_cisco():
     )
 
 
-def downgrade(active_plugin=None, options=None):
-    if active_plugin == PLUGINS['lbr']:
+def downgrade(active_plugins=None, options=None):
+    if PLUGINS['lbr'] in active_plugins:
         downgrade_linuxbridge()
-    elif active_plugin == PLUGINS['ovs']:
+    elif PLUGINS['ovs'] in active_plugins:
         downgrade_ovs()
-    elif active_plugin == PLUGINS['cisco']:
+    elif PLUGINS['cisco'] in active_plugins:
         # Cisco plugin imports OVS models too
         downgrade_ovs()
         downgrade_cisco()
-    elif active_plugin == PLUGINS['meta']:
+    elif PLUGINS['meta'] in active_plugins:
         downgrade_meta()
-    elif active_plugin == PLUGINS['nec']:
+    elif PLUGINS['nec'] in active_plugins:
         downgrade_nec()
-    elif active_plugin == PLUGINS['ryu']:
+    elif PLUGINS['ryu'] in active_plugins:
         downgrade_ryu()
 
-    if active_plugin in FOLSOM_QUOTA:
+    if set(active_plugins) & set(FOLSOM_QUOTA):
         common_ext_ops.downgrade_quota(options)
 
-    if active_plugin in L3_CAPABLE:
+    if set(active_plugins) & set(L3_CAPABLE):
         common_ext_ops.downgrade_l3()
 
     downgrade_base()
index 65368fb9f309cd8de689b8ab80e158267d85db31..a7a25652f3e3eaed32081f1e2099f7157bf3eaa3 100644 (file)
@@ -32,11 +32,11 @@ down_revision = '1341ed32cc1e'
 migration_for_plugins = ['*']
 
 
-def upgrade(active_plugin=None, options=None):
+def upgrade(active_plugins=None, options=None):
     """A no-op migration for marking the Grizzly release."""
     pass
 
 
-def downgrade(active_plugin=None, options=None):
+def downgrade(active_plugins=None, options=None):
     """A no-op migration for marking the Grizzly release."""
     pass
index 759c586e135107e32b02c4af7e47b46d9a3f68c5..a1851b72a03f45d52f6c40b36adff67772d9d888 100644 (file)
@@ -30,6 +30,9 @@ _core_opts = [
     cfg.StrOpt('core_plugin',
                default='',
                help=_('Neutron plugin provider module')),
+    cfg.ListOpt('service_plugins',
+                default=[],
+                help=_("The service plugins Neutron will use")),
 ]
 
 _quota_opts = [
index 608fa757bb77c486bcb7f59b28abcfccbc74585b..2c3a7928fc1ddea232f19129c9c51f5a40b8f758 100644 (file)
@@ -28,11 +28,11 @@ from neutron.tests import base
 
 class TestDbMigration(base.BaseTestCase):
     def test_should_run_plugin_in_list(self):
-        self.assertTrue(migration.should_run('foo', ['foo', 'bar']))
-        self.assertFalse(migration.should_run('foo', ['bar']))
+        self.assertTrue(migration.should_run(['foo'], ['foo', 'bar']))
+        self.assertFalse(migration.should_run(['foo'], ['bar']))
 
     def test_should_run_plugin_wildcard(self):
-        self.assertTrue(migration.should_run('foo', ['*']))
+        self.assertTrue(migration.should_run(['foo'], ['*']))
 
 
 class TestCli(base.BaseTestCase):