sa.Column('description', sa.String(length=255), nullable=True),
sa.Column('configurations', sa.String(length=4095), nullable=False),
sa.PrimaryKeyConstraint('id'))
-
-
-def downgrade():
- op.drop_table('agents')
sa.Column('tenant_id', sa.String(length=36), nullable=True),
sa.ForeignKeyConstraint(['network_id'], ['brocadenetworks.id'], ),
sa.PrimaryKeyConstraint('port_id'))
-
-
-def downgrade():
- op.drop_table('brocadeports')
- op.drop_table('brocadenetworks')
ondelete='CASCADE'),
sa.ForeignKeyConstraint(['profile_id'], ['cisco_policy_profiles.id']),
sa.PrimaryKeyConstraint('port_id'))
-
-
-def downgrade():
- op.drop_table('cisco_n1kv_port_bindings')
- op.drop_table('cisco_n1kv_network_bindings')
- op.drop_table('cisco_n1kv_multi_segments')
- op.drop_table('cisco_provider_networks')
- op.drop_table('cisco_n1kv_trunk_segments')
- op.drop_table('cisco_n1kv_vmnetworks')
- op.drop_table('cisco_n1kv_profile_bindings')
- op.drop_table('cisco_nexusport_bindings')
- op.drop_table('cisco_qos_policies')
- op.drop_table('cisco_credentials')
- op.drop_table('cisco_n1kv_vxlan_allocations')
- op.drop_table('cisco_network_profiles')
- op.drop_table('cisco_n1kv_vlan_allocations')
- op.drop_table('cisco_policy_profiles')
- # generate DDL for dropping enumns
- segment_type.drop(op.get_bind(), checkfirst=False)
- profile_type.drop(op.get_bind(), checkfirst=False)
sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('network_id', 'dhcp_agent_id'))
-
-
-def downgrade():
- op.drop_table('networkdhcpagentbindings')
- op.drop_table('ipavailabilityranges')
- op.drop_table('ipallocations')
- op.drop_table('subnetroutes')
- op.drop_table('ipallocationpools')
- op.drop_table('dnsnameservers')
- op.drop_table('subnets')
- op.drop_table('ports')
- op.drop_table('networks')
['firewall_policies.id'],
name='firewall_rules_ibfk_1'),
sa.PrimaryKeyConstraint('id'))
-
-
-def downgrade():
- op.drop_table('firewall_rules')
- op.drop_table('firewalls')
- op.drop_table('firewall_policies')
- action_types.drop(op.get_bind(), checkfirst=False)
sa.ForeignKeyConstraint(['router_id'], ['routers.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'))
-
-
-def downgrade():
- op.drop_table('routerl3agentbindings')
- op.drop_table('routerroutes')
- op.drop_table('floatingips')
- op.drop_table('routers')
- op.drop_table('externalnetworks')
sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('network_id'))
-
-
-def downgrade():
- op.drop_table('network_bindings')
- op.drop_table('network_states')
sa.Column('total_connections', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['pool_id'], ['pools.id'], ),
sa.PrimaryKeyConstraint('pool_id'))
-
-
-def downgrade():
- op.drop_table('poolstatisticss')
- op.drop_table('poolmonitorassociations')
- op.drop_table('members')
- op.drop_table('poolloadbalanceragentbindings')
- op.drop_table('sessionpersistences')
- op.drop_table('pools')
- op.drop_table('vips')
- op.drop_table('healthmonitors')
- protocols.drop(op.get_bind(), checkfirst=False)
- session_persistence_type.drop(op.get_bind(), checkfirst=False)
- lb_methods.drop(op.get_bind(), checkfirst=False)
- health_monitor_type.drop(op.get_bind(), checkfirst=False)
['meteringlabels.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'))
-
-
-def downgrade():
- op.drop_table('meteringlabelrules')
- op.drop_table('meteringlabels')
- direction.drop(op.get_bind(), checkfirst=False)
sa.Column('tenant_id', sa.String(length=255), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.PrimaryKeyConstraint('id'))
-
-
-def downgrade():
- op.drop_table('arista_provisioned_tenants')
- op.drop_table('arista_provisioned_vms')
- op.drop_table('arista_provisioned_nets')
- op.drop_table('cisco_ml2_credentials')
- op.drop_table('cisco_ml2_nexusport_bindings')
- op.drop_table('ml2_port_bindings')
- op.drop_table('ml2_network_segments')
- op.drop_table('ml2_flat_allocations')
- op.drop_table('ml2_gre_allocations')
- op.drop_table('ml2_vxlan_allocations')
- op.drop_table('ml2_gre_endpoints')
- op.drop_table('ml2_vxlan_endpoints')
- op.drop_table('ml2_vlan_allocations')
sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('port_id'))
-
-
-def downgrade():
- op.drop_table('port_profile')
- op.drop_table('mlnx_network_bindings')
- op.drop_table('segmentation_id_allocation')
sa.Column('mac', sa.String(length=32), nullable=False),
sa.ForeignKeyConstraint(['id'], ['ports.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'))
-
-
-def downgrade():
- op.drop_table('portinfos')
- op.drop_table('packetfilters')
- op.drop_table('ofctenants')
- op.drop_table('ofcports')
- op.drop_table('ofcfilters')
- op.drop_table('ofcnetworkmappings')
- op.drop_table('ofcfiltermappings')
- op.drop_table('ofctenantmappings')
- op.drop_table('ofcnetworks')
- op.drop_table('routerproviders')
- op.drop_table('ofcroutermappings')
- op.drop_table('ofcportmappings')
sa.Column('router_id', sa.String(length=36), nullable=False),
sa.ForeignKeyConstraint(['router_id'], ['routers.id'], ),
sa.PrimaryKeyConstraint('resource_id', 'resource_type'))
-
-
-def downgrade():
- op.drop_table('servicerouterbindings')
- op.drop_table('routerservicetypebindings')
- op.drop_table('extradhcpopts')
- op.drop_table('portbindingports')
- op.drop_table('allowedaddresspairs')
- op.drop_table('quotas')
- op.drop_table('providerresourceassociations')
sa.ForeignKeyConstraint(['rule_id'], ['routerrules.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('rule_id', 'nexthop'))
-
-
-def downgrade():
- op.drop_table('nexthops')
- op.drop_table('routerrules')
- op.drop_table('routerflavors')
- op.drop_table('networkflavors')
- op.drop_table('hyperv_network_bindings')
- op.drop_table('hyperv_vlan_allocations')
sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('network_id'))
-
-
-def downgrade():
- op.drop_table('ovs_network_bindings')
- op.drop_table('ovs_vlan_allocations')
- op.drop_table('ovs_tunnel_allocations')
- op.drop_table('ovs_tunnel_endpoints')
sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('port_id'))
-
-
-def downgrade():
- op.drop_table('portsecuritybindings')
- op.drop_table('networksecuritybindings')
nullable=False),
sa.ForeignKeyConstraint(['network_id'], ['networks.id'], ),
sa.PrimaryKeyConstraint('tunnel_key'))
-
-
-def downgrade():
- op.drop_table('tunnelkeys')
- op.drop_table('tunnelkeylasts')
sa.ForeignKeyConstraint(['port_id'], ['ports.id'], ondelete='CASCADE'),
sa.ForeignKeyConstraint(['security_group_id'], ['securitygroups.id']),
sa.PrimaryKeyConstraint('port_id', 'security_group_id'))
-
-
-def downgrade():
- op.drop_table('securitygroupportbindings')
- op.drop_table('securitygrouprules')
- op.drop_table('securitygroups')
- rule_direction_enum.drop(op.get_bind(), checkfirst=False)
# if another plugin was configured before the nuage one
if not migration.schema_has_table('routerroutes'):
l3_init_ops.create_routerroutes()
-
-
-def downgrade():
- # The routerroutes table should not be dropped
- op.drop_table('routerroutes_mapping')
op.drop_table('ofcnetworks')
op.drop_table('ofcports')
op.drop_table('ofcfilters')
-
-
-def downgrade():
- pass
sa.ForeignKeyConstraint(['lsn_id'], ['lsn.lsn_id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('lsn_port_id'))
-
-
-def downgrade():
- pass
op.execute(ins)
-def downgrade():
- op.drop_table('default_security_group')
-
-
def check_sanity(connection):
res = get_duplicate_default_security_groups(connection)
if res:
op.add_column('ml2_port_bindings',
sa.Column('profile', sa.String(length=4095),
nullable=False, server_default=''))
-
-
-def downgrade():
- pass
down_revision = '3c346828361e'
from alembic import op
-import sqlalchemy as sa
-def upgrade(active_plugins=None, options=None):
+def upgrade():
op.execute('INSERT INTO cisco_ml2_nexusport_bindings (port_id, '
'vlan_id, switch_ip, instance_id) SELECT '
'port_id, vlan_id, switch_ip, instance_id FROM '
'cisco_nexusport_bindings')
op.drop_table('cisco_nexusport_bindings')
-
-
-def downgrade(active_plugins=None, options=None):
- op.create_table(
- 'cisco_nexusport_bindings',
- sa.Column('id', sa.Integer(), primary_key=True, autoincrement=True),
- sa.Column('port_id', sa.String(255)),
- sa.Column('vlan_id', sa.Integer(), nullable=False),
- sa.Column('switch_ip', sa.String(255), nullable=False),
- sa.Column('instance_id', sa.String(255), nullable=False),
- sa.PrimaryKeyConstraint('id')
- )
- op.execute('INSERT INTO cisco_nexusport_bindings (port_id, '
- 'vlan_id, switch_ip, instance_id) SELECT '
- 'port_id, vlan_id, switch_ip, instance_id FROM '
- 'cisco_ml2_nexusport_bindings')
primary_key=True),
sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
ondelete='CASCADE'))
-
-
-def downgrade(active_plugins=None, options=None):
- op.drop_table('ha_router_vrid_allocations')
- op.drop_table('ha_router_networks')
- op.drop_table('ha_router_agent_port_bindings')
- l3_ha_states.drop(op.get_bind(), checkfirst=False)
- op.drop_column('router_extra_attributes', 'ha_vr_id')
- op.drop_column('router_extra_attributes', 'ha')
source='extradhcpopts',
local_cols=['port_id', 'opt_name', 'ip_version']
)
-
-
-def downgrade():
- with migration.remove_fks_from_table(TABLE_NAME):
- op.drop_constraint(
- name=CONSTRAINT_NAME_NEW,
- table_name='extradhcpopts',
- type_='unique'
- )
- op.drop_column('extradhcpopts', 'ip_version')
-
- op.create_unique_constraint(
- name=CONSTRAINT_NAME_OLD,
- source='extradhcpopts',
- local_cols=['port_id', 'opt_name']
- )
"FROM networkgatewaydevicereferences AS gw_dev_ref "
"INNER JOIN networkgateways AS net_gw ON "
"gw_dev_ref.network_gateway_id=net_gw.id")
-
-
-def downgrade():
- pass
op.add_column('agents',
sa.Column('load', sa.Integer(),
server_default='0', nullable=False))
-
-
-def downgrade():
- op.drop_column('agents', 'load')
# each record in securitygroups
op.execute("INSERT INTO neutron_nsx_security_group_mappings SELECT id,id "
"from securitygroups")
-
-
-def downgrade():
- pass
sa.Column('contract_id', sa.String(length=64), nullable=False),
sa.Column('filter_id', sa.String(length=64), nullable=False),
sa.PrimaryKeyConstraint('tenant_id'))
-
-
-def downgrade(active_plugins=None, options=None):
- op.drop_table('cisco_ml2_apic_contracts')
- op.drop_table('cisco_ml2_apic_port_profiles')
- op.drop_table('cisco_ml2_apic_epgs')
def upgrade():
heal_script.heal()
-
-
-def downgrade():
- pass
'poolstatisticss', 'total_connections',
nullable=False,
existing_type=sa.BigInteger())
-
-
-@migration.skip_if_offline
-def downgrade():
- migration.alter_column_if_exists(
- 'poolstatisticss', 'bytes_in',
- nullable=True,
- existing_type=sa.BigInteger())
- migration.alter_column_if_exists(
- 'poolstatisticss', 'bytes_out',
- nullable=True,
- existing_type=sa.BigInteger())
- migration.alter_column_if_exists(
- 'poolstatisticss', 'active_connections',
- nullable=True,
- existing_type=sa.BigInteger())
- migration.alter_column_if_exists(
- 'poolstatisticss', 'total_connections',
- nullable=True,
- existing_type=sa.BigInteger())
op.add_column('ml2_network_segments',
sa.Column('segment_index', sa.Integer(), nullable=False,
server_default='0'))
-
-
-def downgrade():
- op.drop_column('ml2_network_segments', 'segment_index')
source=TABLE_NAME,
local_cols=['agent_type', 'host']
)
-
-
-def downgrade():
- pass
ondelete='SET NULL'),
sa.PrimaryKeyConstraint('port_id', 'host')
)
-
-
-def downgrade():
- op.drop_table('ml2_dvr_port_bindings')
- op.drop_table('dvr_host_macs')
op.add_column('ml2_network_segments',
sa.Column('is_dynamic', sa.Boolean(), nullable=False,
server_default=sa.sql.false()))
-
-
-def downgrade():
-
- op.drop_column('ml2_network_segments', 'is_dynamic')
name='ipv6_address_modes'),
nullable=True)
)
-
-
-def downgrade():
- pass
['ipsec_site_connections.id'],
ondelete='CASCADE')
)
-
-
-def downgrade():
- pass
op.f('ix_ml2_vlan_allocations_physical_network_allocated'),
'ml2_vlan_allocations', ['physical_network', 'allocated'],
unique=False)
-
-
-def downgrade():
- op.drop_index(op.f('ix_ml2_vxlan_allocations_allocated'),
- table_name='ml2_vxlan_allocations')
- op.drop_index(op.f('ix_ml2_gre_allocations_allocated'),
- table_name='ml2_gre_allocations')
- op.drop_index(op.f('ix_ml2_vlan_allocations_physical_network_allocated'),
- table_name='ml2_vlan_allocations')
sa.Column('vnic_type', sa.String(length=64),
nullable=False,
server_default='normal'))
-
-
-def downgrade():
- pass
down_revision = '408cfbf6923c'
from alembic import op
-import sqlalchemy as sa
def upgrade():
op.drop_table('mlnx_network_bindings')
op.drop_table('segmentation_id_allocation')
op.drop_table('port_profile')
-
-
-def downgrade():
- op.create_table(
- 'port_profile',
- sa.Column(
- 'port_id', sa.String(length=36), nullable=False),
- sa.Column(
- 'vnic_type', sa.String(length=32), nullable=False),
- sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('port_id'),
- )
- op.create_table(
- 'segmentation_id_allocation',
- sa.Column('physical_network',
- sa.String(length=64),
- nullable=False),
- sa.Column('segmentation_id',
- sa.Integer(),
- autoincrement=False,
- nullable=False),
- sa.Column('allocated',
- sa.Boolean(),
- server_default=sa.sql.false(),
- nullable=False),
- sa.PrimaryKeyConstraint('physical_network', 'segmentation_id')
- )
- op.create_table(
- 'mlnx_network_bindings',
- sa.Column('network_id', sa.String(length=36), nullable=False),
- sa.Column('network_type', sa.String(length=32), nullable=False),
- sa.Column('physical_network', sa.String(length=64), nullable=True),
- sa.Column('segmentation_id',
- sa.Integer(),
- autoincrement=False, nullable=False),
- sa.ForeignKeyConstraint(['network_id'],
- ['networks.id']),
- sa.PrimaryKeyConstraint('network_id'),
- )
from alembic import op
-from neutron.db import migration
-
TABLE_NAME = 'ports'
CONSTRAINT_NAME = 'uniq_ports0network_id0mac_address'
source=TABLE_NAME,
local_cols=['network_id', 'mac_address']
)
-
-
-def downgrade():
- with migration.remove_fks_from_table(TABLE_NAME):
- op.drop_constraint(
- CONSTRAINT_NAME,
- TABLE_NAME,
- type_='unique'
- )
down_revision = '2d2a8a565438'
from alembic import op
-import sqlalchemy as sa
from sqlalchemy.sql import expression as sa_expr
from neutron.extensions import portbindings
op.drop_table('hyperv_vlan_allocations')
op.drop_table('hyperv_network_bindings')
-
-
-def downgrade():
- op.create_table(
- 'hyperv_vlan_allocations',
- sa.Column('physical_network', sa.String(length=64), nullable=False),
- sa.Column('vlan_id', sa.Integer(), autoincrement=False,
- nullable=False),
- sa.Column('allocated', sa.Boolean(), nullable=False),
- sa.PrimaryKeyConstraint('physical_network', 'vlan_id'))
-
- op.create_table(
- 'hyperv_network_bindings',
- sa.Column('network_id', sa.String(length=36), nullable=False),
- sa.Column('network_type', sa.String(length=32), nullable=False),
- sa.Column('physical_network', sa.String(length=64), nullable=True),
- sa.Column('segmentation_id', sa.Integer(), nullable=True),
- sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('network_id'))
op.drop_constraint(fk_name[0], 'ml2_port_bindings', 'foreignkey')
op.drop_column('ml2_port_bindings', 'driver')
op.drop_column('ml2_port_bindings', 'segment')
-
-
-def downgrade():
-
- dialect = op.get_context().bind.dialect.name
-
- op.add_column('ml2_port_bindings',
- sa.Column('segment', sa.String(length=36), nullable=True))
- op.add_column('ml2_port_bindings',
- sa.Column('driver', sa.String(length=64), nullable=True))
- op.create_foreign_key(
- name=None,
- source='ml2_port_bindings', referent='ml2_network_segments',
- local_cols=['segment'], remote_cols=['id'], ondelete='SET NULL'
- )
-
- op.add_column('ml2_dvr_port_bindings',
- sa.Column('driver', sa.String(length=64), nullable=True))
- op.add_column('ml2_dvr_port_bindings',
- sa.Column('segment', sa.String(length=36), nullable=True))
- op.add_column('ml2_dvr_port_bindings',
- sa.Column('cap_port_filter', sa.Boolean, nullable=False))
- op.create_foreign_key(
- name=None,
- source='ml2_dvr_port_bindings', referent='ml2_network_segments',
- local_cols=['segment'], remote_cols=['id'], ondelete='SET NULL'
- )
-
- for table in port_binding_tables:
- if dialect == 'postgresql':
- op.execute((
- "UPDATE %s pb "
- "SET driver = pbl.driver, segment = pbl.segment_id "
- "FROM ml2_port_binding_levels pbl "
- "WHERE pb.port_id = pbl.port_id "
- "AND pb.host = pbl.host "
- "AND pbl.level = 0;"
- ) % table)
- else:
- op.execute((
- "UPDATE %s pb "
- "INNER JOIN ml2_port_binding_levels pbl "
- "ON pb.port_id = pbl.port_id "
- "AND pb.host = pbl.host "
- "AND pbl.level = 0 "
- "SET pb.driver = pbl.driver, pb.segment = pbl.segment_id;"
- ) % table)
-
- op.drop_table('ml2_port_binding_levels')
'nuage_port_mapping')
migration.rename_table_if_exists('routerroutes_mapping',
'nuage_routerroutes_mapping')
-
-
-@migration.skip_if_offline
-def downgrade():
- migration.drop_table_if_exists('nuage_floatingip_mapping')
- migration.drop_table_if_exists('nuage_floatingip_pool_mapping')
- migration.rename_table_if_exists('nuage_net_partitions', 'net_partitions')
- migration.rename_table_if_exists('nuage_net_partition_router_mapping',
- 'net_partition_router_mapping')
- migration.rename_table_if_exists('nuage_router_zone_mapping',
- 'router_zone_mapping')
- migration.rename_table_if_exists('nuage_subnet_l2dom_mapping',
- 'subnet_l2dom_mapping')
- migration.rename_table_if_exists('nuage_port_mapping', 'port_mapping')
- migration.rename_table_if_exists('nuage_routerroutes_mapping',
- 'routerroutes_mapping')
sa.Column('status',
sa.String(length=16),
nullable=True))
-
-
-def downgrade():
- pass
down_revision = '37f322991f59'
from alembic import op
-import sqlalchemy as sa
from neutron.db import migration
table_name=TABLE_NAME,
cols=['router_id', 'l3_agent_id']
)
-
-
-def downgrade():
-
- context = op.get_context()
- dialect = context.bind.dialect.name
-
- op.drop_constraint(
- name=PK_NAME,
- table_name=TABLE_NAME,
- type_='primary'
- )
-
- op.add_column(
- TABLE_NAME,
- sa.Column('id', sa.String(32))
- )
-
- if dialect == 'ibm_db_sa':
- # DB2 doesn't support nullable column in primary key
- op.alter_column(
- table_name=TABLE_NAME,
- column_name='id',
- nullable=False
- )
-
- with migration.remove_fks_from_table(TABLE_NAME):
- op.create_primary_key(
- name=PK_NAME,
- table_name=TABLE_NAME,
- cols=['id']
- )
if op.get_bind().dialect.name == 'mysql':
for table in TABLES:
op.execute("ALTER TABLE %s ENGINE=InnoDB" % table)
-
-
-def downgrade():
- pass
sa.Column('neutron_type', sa.String(length=32), nullable=False),
sa.Column('apic_name', sa.String(length=255), nullable=False),
sa.PrimaryKeyConstraint('neutron_id', 'neutron_type'))
-
-
-def downgrade():
-
- op.drop_table('cisco_ml2_apic_names')
- op.drop_table('cisco_ml2_apic_host_links')
-
- op.create_table(
- 'cisco_ml2_apic_port_profiles',
- sa.Column('node_id', sa.String(length=255), nullable=False),
- sa.Column('profile_id', sa.String(length=64), nullable=False),
- sa.Column('hpselc_id', sa.String(length=64), nullable=False),
- sa.Column('module', sa.String(length=10), nullable=False),
- sa.Column('from_port', sa.Integer(), nullable=False),
- sa.Column('to_port', sa.Integer(), nullable=False),
- sa.PrimaryKeyConstraint('node_id'))
existing_nullable=True)
else:
metering_init_ops.create_meteringlabels()
-
-
-def downgrade():
- pass
sa.ForeignKeyConstraint(['port_id'], [u'ports.id'],
name=u'embrane_pool_port_ibfk_2'),
sa.PrimaryKeyConstraint(u'pool_id'))
-
-
-def downgrade():
- pass
op.add_column('cisco_ml2_nexusport_bindings', sa.Column(
'is_provider_vlan', sa.Boolean(), nullable=False,
server_default=sa.sql.false()))
-
-
-def downgrade():
- op.drop_table('ml2_nexus_vxlan_mcast_groups')
- op.drop_table('ml2_nexus_vxlan_allocations')
- op.drop_table('cisco_ml2_nexus_nve')
-
- op.drop_column('cisco_ml2_nexusport_bindings', 'vni')
- op.drop_column('cisco_ml2_nexusport_bindings', 'is_provider_vlan')
'port_security_enabled) SELECT id, True FROM ports '
'WHERE id NOT IN (SELECT port_id FROM '
'portsecuritybindings);')
-
-
-def downgrade():
- pass
down_revision = '2026156eab2f'
from alembic import op
-import sqlalchemy as sa
def upgrade():
op.drop_table('nuage_routerroutes_mapping')
op.drop_table('nuage_port_mapping')
op.drop_table('nuage_router_zone_mapping')
-
-
-def downgrade():
- op.create_table(
- 'nuage_router_zone_mapping',
- sa.Column('router_id', sa.String(length=36), nullable=False),
- sa.Column('nuage_zone_id', sa.String(length=36), nullable=True),
- sa.Column('nuage_user_id', sa.String(length=36), nullable=True),
- sa.Column('nuage_group_id', sa.String(length=36), nullable=True),
- sa.ForeignKeyConstraint(['router_id'], ['routers.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('router_id'),
- )
- op.create_table(
- 'nuage_port_mapping',
- sa.Column('port_id', sa.String(length=36), nullable=False),
- sa.Column('nuage_vport_id', sa.String(length=36), nullable=True),
- sa.Column('nuage_vif_id', sa.String(length=36), nullable=True),
- sa.Column('static_ip', sa.Boolean(), nullable=True),
- sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('port_id'),
- )
- op.create_table(
- 'nuage_routerroutes_mapping',
- sa.Column('router_id', sa.String(length=36), nullable=False),
- sa.Column('nuage_route_id', sa.String(length=36), nullable=True),
- sa.ForeignKeyConstraint(['router_id'], ['routers.id'],
- ondelete='CASCADE'),
- )
- op.create_table(
- 'nuage_floatingip_pool_mapping',
- sa.Column('fip_pool_id', sa.String(length=36), nullable=False),
- sa.Column('net_id', sa.String(length=36), nullable=True),
- sa.Column('router_id', sa.String(length=36), nullable=True),
- sa.ForeignKeyConstraint(['net_id'], ['networks.id'],
- ondelete='CASCADE'),
- sa.ForeignKeyConstraint(['router_id'], ['routers.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('fip_pool_id'),
- )
- op.create_table(
- 'nuage_floatingip_mapping',
- sa.Column('fip_id', sa.String(length=36), nullable=False),
- sa.Column('router_id', sa.String(length=36), nullable=True),
- sa.Column('nuage_fip_id', sa.String(length=36), nullable=True),
- sa.ForeignKeyConstraint(['fip_id'], ['floatingips.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('fip_id'),
- )
source='ml2_vxlan_endpoints',
local_cols=['host']
)
-
-
-def downgrade():
-
- op.drop_constraint(
- name=CONSTRAINT_NAME_VXLAN,
- table_name='ml2_vxlan_endpoints',
- type_='unique'
- )
- op.drop_column('ml2_vxlan_endpoints', 'host')
-
- op.drop_constraint(
- name=CONSTRAINT_NAME_GRE,
- table_name='ml2_gre_endpoints',
- type_='unique'
- )
- op.drop_column('ml2_gre_endpoints', 'host')
op.execute("INSERT INTO router_extra_attributes "
"SELECT id as router_id, "
"False as distributed from routers")
-
-
-def downgrade():
- op.drop_table('router_extra_attributes')
for table in ('servicedefinitions', 'servicetypes'):
if migration.schema_has_table(table):
op.drop_table(table)
-
-
-def downgrade():
- """Don't create the tables
-
- These tables would be created during downgrade at correct place in
- migration timeline at revision 557edfc53098.
- """
import sqlalchemy as sa
-def upgrade(active_plugins=None, options=None):
+def upgrade():
op.add_column('meteringlabels', sa.Column('shared', sa.Boolean(),
server_default=sa.sql.false(),
nullable=True))
-
-
-def downgrade(active_plugins=None, options=None):
- op.drop_column('meteringlabels', 'shared')
if engine.name == 'postgresql':
op.execute("ALTER TYPE nvp_network_bindings_binding_type "
"RENAME TO tz_network_bindings_binding_type;")
-
-
-def downgrade():
- pass
# There might be multiple switches for a neutron network
sa.PrimaryKeyConstraint('neutron_id', 'nsx_id'),
)
-
-
-def downgrade():
- pass
down_revision = '1f71e54a85e7'
from alembic import op
-import sqlalchemy as sa
def upgrade():
op.drop_table('tunnelkeylasts')
op.drop_table('tunnelkeys')
-
-
-def downgrade():
- op.create_table(
- 'tunnelkeylasts',
- sa.Column('last_key', sa.Integer(), nullable=False),
- sa.PrimaryKeyConstraint('last_key'))
- op.create_table(
- 'tunnelkeys',
- sa.Column('network_id', sa.String(length=36), nullable=False),
- sa.Column('tunnel_key', sa.Integer(), autoincrement=False,
- nullable=False),
- sa.ForeignKeyConstraint(['network_id'], ['networks.id'], ),
- sa.PrimaryKeyConstraint('tunnel_key'))
for table in TABLES:
op.create_index(op.f('ix_%s_tenant_id' % table),
table, ['tenant_id'], unique=False)
-
-
-def downgrade():
- for table in TABLES:
- op.drop_index(op.f('ix_%s_tenant_id' % table),
- table_name=table)
op.create_primary_key(name=None,
table_name=TABLE_NAME,
cols=['router_id', 'l3_agent_id'])
-
-
-def downgrade():
- inspector = reflection.Inspector.from_engine(op.get_bind())
- prev_pk_const = inspector.get_pk_constraint(TABLE_NAME)
- prev_pk_name = prev_pk_const.get('name')
-
- with migration.remove_fks_from_table(TABLE_NAME):
- op.drop_constraint(name=prev_pk_name,
- table_name=TABLE_NAME,
- type_='primary')
-
- op.create_primary_key(name=None,
- table_name=TABLE_NAME,
- cols=['router_id'])
def upgrade():
op.add_column('networks', sa.Column('mtu', sa.Integer(),
nullable=True))
-
-
-def downgrade():
- op.drop_column('networks', 'mtu')
source=TABLE_NAME,
local_cols=['last_ip', 'allocation_pool_id']
)
-
-
-def downgrade():
- op.drop_constraint(
- name=UC_1_NAME,
- table_name=TABLE_NAME,
- type_='unique'
- )
-
- op.drop_constraint(
- name=UC_2_NAME,
- table_name=TABLE_NAME,
- type_='unique'
- )
sa.Column('tenant_id', sa.String(length=255), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.ForeignKeyConstraint(['network_id'], ['ml2_brocadenetworks.id']))
-
-
-def downgrade():
- pass
# each record in routers
op.execute("INSERT INTO neutron_nsx_router_mappings SELECT id,id "
"from routers")
-
-
-def downgrade():
- pass
sa.ForeignKeyConstraint(['router_id'], ['routers.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('router_id'))
-
-
-def downgrade():
- op.drop_table('nsxv_router_ext_attributes')
- op.drop_table('nsxv_rule_mappings')
- op.drop_table('nsxv_port_index_mappings')
- op.drop_table('nsxv_port_vnic_mappings')
- op.drop_table('nsxv_tz_network_bindings')
- op.drop_table('nsxv_security_group_section_mappings')
- op.drop_table('nsxv_spoofguard_policy_network_mappings')
- op.drop_table('nsxv_edge_vnic_bindings')
- op.drop_table('nsxv_edge_dhcp_static_bindings')
- op.drop_table('nsxv_firewall_rule_bindings')
- op.drop_table('nsxv_internal_edges')
- op.drop_table('nsxv_internal_networks')
- op.drop_table('nsxv_router_bindings')
- appliance_sizes_enum.drop(op.get_bind(), checkfirst=False)
- edge_types_enum.drop(op.get_bind(), checkfirst=False)
- internal_network_purpose_enum.drop(op.get_bind(), checkfirst=False)
- internal_edge_purpose_enum.drop(op.get_bind(), checkfirst=False)
- tz_binding_type_enum.drop(op.get_bind(), checkfirst=False)
- router_types_enum.drop(op.get_bind(), checkfirst=False)
def upgrade():
op.drop_constraint(PK_NAME, TABLE_NAME, type_='primary')
op.create_primary_key(PK_NAME, TABLE_NAME, cols=['ip_address'])
-
-
-def downgrade():
- op.drop_constraint(PK_NAME, TABLE_NAME, type_='primary')
- op.create_primary_key(PK_NAME, TABLE_NAME, cols=['ip_address', 'udp_port'])
from alembic import op
from neutron.db import migration
-from neutron.db.migration.alembic_migrations import ml2_init_ops
-
TABLE = 'cisco_ml2_credentials'
def upgrade():
if migration.schema_has_table(TABLE):
op.drop_table(TABLE)
-
-
-def downgrade():
- if not migration.schema_has_table(TABLE):
- ml2_init_ops.create_cisco_ml2_credentials()
op.drop_column('ml2_port_bindings', 'cap_port_filter')
if op.get_bind().engine.name == 'ibm_db_sa':
op.execute("CALL SYSPROC.ADMIN_CMD('REORG TABLE ml2_port_bindings')")
-
-
-def downgrade():
- pass
"neutron_id, nvp_id as nsx_port_id, null as nsx_switch_id from"
" quantum_nvp_port_mapping")
op.drop_table('quantum_nvp_port_mapping')
-
-
-def downgrade():
- pass
['subnetpools.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('cidr', 'subnetpool_id'))
-
-
-def downgrade():
- op.drop_table('subnetpoolprefixes')
- op.drop_table('subnetpools')
new_column_name='neutron_id',
existing_type=sa.String(length=36),
existing_nullable=False)
-
-
-def downgrade():
- pass
)
op.execute(SQL_STATEMENT)
-
-
-def downgrade():
- op.drop_table('routerports')
# ml2_vxlan_allocations.allocated
# This migration will be skipped when executed offline mode.
-
-def upgrade():
- run(True)
+default = sqlalchemy.sql.false()
-def downgrade():
+def upgrade():
run()
@migration.skip_if_offline
-def run(default=None):
- set_default_ml2(default)
- set_default_mlnx(default)
- set_default_brocade(default)
- set_default_cisco(default)
- set_default_vmware(default)
- set_default_agents(default)
-
-
-def set_default_brocade(default):
- if default:
- default = ''
+def run():
+ set_default_ml2()
+ set_default_mlnx()
+ set_default_brocade()
+ set_default_cisco()
+ set_default_vmware()
+ set_default_agents()
+
+
+def set_default_brocade():
+ default = ''
migration.alter_column_if_exists(
'brocadeports', 'port_id',
server_default=default,
existing_type=sa.String(36))
-def set_default_mlnx(default):
- if default:
- default = sqlalchemy.sql.false()
+def set_default_mlnx():
migration.alter_column_if_exists(
'segmentation_id_allocation', 'allocated',
server_default=default,
existing_type=sa.Boolean)
-def set_default_cisco(default):
- profile_binding_default = (cisco_constants.TENANT_ID_NOT_SET
- if default else None)
- profile_default = '0' if default else None
- if default:
- default = sqlalchemy.sql.false()
+def set_default_cisco():
+ profile_binding_default = cisco_constants.TENANT_ID_NOT_SET
+ profile_default = '0'
migration.alter_column_if_exists(
'cisco_n1kv_profile_bindings', 'tenant_id',
existing_type=sa.String(length=36),
existing_nullable=False)
-def set_default_vmware(default=None):
- if default:
- default = sqlalchemy.sql.false()
+def set_default_vmware():
migration.alter_column_if_exists(
'nsxrouterextattributess', 'service_router',
server_default=default,
existing_type=sa.Boolean)
-def set_default_agents(default=None):
- if default:
- default = sqlalchemy.sql.true()
+def set_default_agents():
+ default = sqlalchemy.sql.true()
migration.alter_column_if_exists(
'agents', 'admin_state_up',
server_default=default,
existing_type=sa.Boolean)
-def set_default_ml2(default=None):
- if default:
- default = sqlalchemy.sql.false()
+def set_default_ml2():
migration.alter_column_if_exists(
'ml2_gre_allocations', 'allocated',
server_default=default,
'ipsec_site_connections', 'peer_address',
existing_type=sa.String(255),
nullable=False)
-
-
-@migration.skip_if_offline
-def downgrade():
- migration.alter_column_if_exists(
- 'ipsec_site_connections', 'peer_address',
- nullable=True,
- existing_type=sa.String(255))
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('router_id')
)
-
-
-def downgrade():
- op.drop_table('csnat_l3_agent_bindings')
down_revision = '28c0ffb8ebbd'
from alembic import op
-import sqlalchemy as sa
def upgrade():
op.drop_table('vcns_edge_vip_bindings')
op.drop_table(u'routerservicetypebindings')
op.drop_table(u'servicerouterbindings')
-
-
-def downgrade():
- op.create_table(
- 'servicerouterbindings',
- sa.Column('resource_id', sa.String(length=36), nullable=False),
- sa.Column('resource_type', sa.String(length=36), nullable=False),
- sa.Column('router_id', sa.String(length=36), nullable=False),
- sa.ForeignKeyConstraint(['router_id'], [u'routers.id'],
- name='servicerouterbindings_ibfk_1'),
- sa.PrimaryKeyConstraint('resource_id', 'resource_type'))
- op.create_table(
- 'routerservicetypebindings',
- sa.Column('router_id', sa.String(length=36), nullable=False),
- sa.Column('service_type_id', sa.String(length=36), nullable=False),
- sa.ForeignKeyConstraint(['router_id'], ['routers.id'],
- name='routerservicetypebindings_ibfk_1'),
- sa.PrimaryKeyConstraint(u'router_id'))
- op.create_table(
- 'vcns_edge_vip_bindings',
- sa.Column('vip_id', sa.String(length=36), nullable=False),
- sa.Column('edge_id', sa.String(length=36), nullable=True),
- sa.Column('vip_vseid', sa.String(length=36), nullable=True),
- sa.Column('app_profileid', sa.String(length=36), nullable=True),
- sa.ForeignKeyConstraint(['vip_id'], ['vips.id'],
- name='vcns_edge_vip_bindings_ibfk_1'),
- sa.PrimaryKeyConstraint('vip_id'))
- op.create_table(
- 'vcns_edge_monitor_bindings',
- sa.Column('monitor_id', sa.String(length=36), nullable=False),
- sa.Column('edge_id', sa.String(length=36), nullable=False),
- sa.Column('monitor_vseid', sa.String(length=36), nullable=True),
- sa.ForeignKeyConstraint(['monitor_id'], ['healthmonitors.id'],
- name='vcns_edge_monitor_bindings_ibfk_1'),
- sa.PrimaryKeyConstraint('monitor_id', 'edge_id'))
- op.create_table(
- 'vcns_firewall_rule_bindings',
- sa.Column('rule_id', sa.String(length=36), nullable=False),
- sa.Column('edge_id', sa.String(length=36), nullable=False),
- sa.Column('rule_vseid', sa.String(length=36), nullable=True),
- sa.ForeignKeyConstraint(['rule_id'], ['firewall_rules.id'],
- name='vcns_firewall_rule_bindings_ibfk_1'),
- sa.PrimaryKeyConstraint('rule_id', u'edge_id'))
- op.create_table(
- 'vcns_edge_pool_bindings',
- sa.Column('pool_id', sa.String(length=36), nullable=False),
- sa.Column('edge_id', sa.String(length=36), nullable=False),
- sa.Column('pool_vseid', sa.String(length=36), nullable=True),
- sa.ForeignKeyConstraint(['pool_id'], ['pools.id'],
- name='vcns_edge_pool_bindings_ibfk_1'),
- sa.PrimaryKeyConstraint('pool_id', 'edge_id'))
name=CONSTRAINT_NAME_NS,
source='nuage_subnet_l2dom_mapping',
local_cols=['nuage_subnet_id'])
-
-
-def downgrade():
- op.drop_column('nuage_net_partition_router_mapping', 'nuage_rtr_rt')
- op.drop_column('nuage_net_partition_router_mapping', 'nuage_rtr_rd')
- op.drop_column('nuage_net_partitions', 'isolated_zone')
- op.drop_column('nuage_net_partitions', 'shared_zone')
- op.drop_column('nuage_subnet_l2dom_mapping', 'nuage_managed_subnet')
- op.drop_constraint(CONSTRAINT_NAME_NS,
- 'nuage_subnet_l2dom_mapping',
- type_='unique')
- op.drop_constraint(CONSTRAINT_NAME_NR,
- 'nuage_net_partition_router_mapping',
- type_='unique')
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('router_id')
)
-
-
-def downgrade():
- op.drop_table('cisco_router_mappings')
- op.drop_table('cisco_port_mappings')
- op.drop_table('cisco_hosting_devices')
local_cols=['network_profile_id'], remote_cols=['id'],
ondelete='CASCADE'
)
-
-
-def downgrade():
- pass
'cisco_nexusport_bindings', 'vlan_id',
nullable=False,
existing_type=sa.Integer)
-
-
-@migration.skip_if_offline
-def downgrade():
- migration.alter_column_if_exists(
- 'cisco_nexusport_bindings', 'vlan_id',
- nullable=True,
- existing_type=sa.Integer)
sa.Column('hash_id', sa.String(255), primary_key=True),
sa.Column('hash', sa.String(255), nullable=False)
)
-
-
-def downgrade():
- pass
sa.Column('router_id', sa.String(length=64), nullable=False),
sa.ForeignKeyConstraint(['router_id'], ['routers.id']),
sa.PrimaryKeyConstraint('router_id'))
-
-
-def downgrade():
-
- op.drop_table('cisco_ml2_apic_contracts')
-
- op.create_table(
- 'cisco_ml2_apic_epgs',
- sa.Column('network_id', sa.String(length=255), nullable=False),
- sa.Column('epg_id', sa.String(length=64), nullable=False),
- sa.Column('segmentation_id', sa.String(length=64), nullable=False),
- sa.Column('provider', sa.Boolean(), server_default=sa.sql.false(),
- nullable=False),
- sa.PrimaryKeyConstraint('network_id'))
-
- op.create_table(
- 'cisco_ml2_apic_contracts',
- sa.Column('tenant_id', sa.String(length=255)),
- sa.Column('contract_id', sa.String(length=64), nullable=False),
- sa.Column('filter_id', sa.String(length=64), nullable=False),
- sa.PrimaryKeyConstraint('tenant_id'))
server_default=sa.sql.false()))
_migrate_data('router_extra_attributes', 'nsxrouterextattributess')
op.drop_table('nsxrouterextattributess')
-
-
-def downgrade():
- op.create_table(
- 'nsxrouterextattributess',
- sa.Column('router_id', sa.String(length=36), nullable=False),
- sa.Column('distributed', sa.Boolean(), nullable=False,
- server_default=sa.sql.false()),
- sa.Column('service_router', sa.Boolean(), nullable=False,
- server_default=sa.sql.false()),
- sa.ForeignKeyConstraint(
- ['router_id'], ['routers.id'], ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('router_id')
- )
- op.execute(("INSERT INTO nsxrouterextattributess "
- "SELECT * from router_extra_attributes"))
- op.drop_column('router_extra_attributes', 'service_router')
['network_id'], ['networks.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('network_id')
)
-
-
-def downgrade():
- op.drop_table('nuage_provider_net_bindings')
type_=sa.BigInteger(), existing_type=sa.Integer())
op.alter_column('poolstatisticss', 'total_connections',
type_=sa.BigInteger(), existing_type=sa.Integer())
-
-
-def downgrade():
- pass
'firewall_rules', 'protocol',
type_=sa.String(40),
existing_nullable=True)
-
-
-def downgrade():
- pass
def upgrade():
op.add_column('networks', sa.Column('vlan_transparent', sa.Boolean(),
nullable=True))
-
-
-def downgrade():
- op.drop_column('networks', 'vlan_transparent')
'ml2_brocadeports', 'admin_state_up',
nullable=False,
existing_type=sa.Boolean)
-
-
-@migration.skip_if_offline
-def downgrade():
- migration.alter_column_if_exists(
- 'ml2_brocadeports', 'admin_state_up',
- nullable=True,
- existing_type=sa.Boolean)
source=TABLE_NAME,
local_cols=['pool_id', 'address', 'protocol_port']
)
-
-
-def downgrade():
- pass
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('router_id'),
)
-
-
-def downgrade():
- pass
source='floatingips', referent='ports',
local_cols=['floating_port_id'], remote_cols=['id'], ondelete='CASCADE'
)
-
-
-def downgrade():
- _drop_constraint()
- op.create_foreign_key(
- name=None,
- source='floatingips', referent='ports',
- local_cols=['floating_port_id'], remote_cols=['id']
- )
other_plugins_init_ops.upgrade()
ryu_init_ops.upgrade()
vmware_init_ops.upgrade()
-
-
-def downgrade():
- vmware_init_ops.downgrade()
- ryu_init_ops.downgrade()
- other_plugins_init_ops.downgrade()
- nec_init_ops.downgrade()
- mlnx_init_ops.downgrade()
- cisco_init_ops.downgrade()
- brocade_init_ops.downgrade()
- metering_init_ops.downgrade()
- vpn_init_ops.downgrade()
- loadbalancer_init_ops.downgrade()
- firewall_init_ops.downgrade()
- ovs_init_ops.downgrade()
- ml2_init_ops.downgrade()
- lb_init_ops.downgrade()
- other_extensions_init_ops.downgrade()
- portsec_init_ops.downgrade()
- secgroup_init_ops.downgrade()
- l3_init_ops.downgrade()
- core_init_ops.downgrade()
- agent_init_ops.downgrade()
def upgrade():
"""A no-op migration for marking the Icehouse release."""
pass
-
-
-def downgrade():
- # We are purging all downgrade methods from icehouse to havana because:
- # 1) havana is going to become unsupported during Kilo cycle.
- # 2) most people will upgrade from icehouse, while a minor percentage
- # from havana
- # 3) downgrade use cases are mostly to revert after failed upgrades
- # See discussion in https://review.openstack.org/109952 for details
-
- raise NotImplementedError("Downgrade from icehouse to havana not "
- "supported")
def upgrade():
"""A no-op migration for marking the Juno release."""
pass
-
-
-def downgrade():
- """A no-op migration for marking the Juno release."""
- pass
sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('port_id'))
-
-
-def downgrade():
- op.drop_table('maclearningstates')
- op.drop_table('portqueuemappings')
- op.drop_table('networkqueuemappings')
- op.drop_table('qosqueues')
- op.drop_table('networkconnections')
- op.drop_table('networkgatewaydevices')
- op.drop_table('networkgateways')
- op.drop_table('vcns_edge_vip_bindings')
- op.drop_table('vcns_firewall_rule_bindings')
- op.drop_table('vcns_edge_monitor_bindings')
- op.drop_table('vcns_edge_pool_bindings')
- op.drop_table('vcns_router_bindings')
- op.drop_table('nsxrouterextattributess')
- op.drop_table('nvp_multi_provider_networks')
- op.drop_table('nvp_network_bindings')
- op.drop_table('quantum_nvp_port_mapping')
- l2gw_segmentation_type.drop(op.get_bind(), checkfirst=False)
- qos_marking.drop(op.get_bind(), checkfirst=False)
- net_binding_type.drop(op.get_bind(), checkfirst=False)
['ipsec_site_connections.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('cidr', 'ipsec_site_connection_id'))
-
-
-def downgrade():
- op.drop_table('ipsecpeercidrs')
- op.drop_table('ipsec_site_connections')
- op.drop_table('vpnservices')
- op.drop_table('ikepolicies')
- op.drop_table('ipsecpolicies')
- auth_algorithms.drop(op.get_bind(), checkfirst=False)
- encryption_algorithms.drop(op.get_bind(), checkfirst=False)
- encapsulation_modes.drop(op.get_bind(), checkfirst=False)
- lifetime_unit_types.drop(op.get_bind(), checkfirst=False)
- transform_protocols.drop(op.get_bind(), checkfirst=False)
- pfs_types.drop(op.get_bind(), checkfirst=False)
- phase1_negotiation_modes.drop(op.get_bind(), checkfirst=False)
- ike_versions.drop(op.get_bind(), checkfirst=False)
- initiator_types.drop(op.get_bind(), checkfirst=False)
- dpd_actions.drop(op.get_bind(), checkfirst=False)
script = script_dir.get_revision("14be42f3d0a5").module
self.assertRaises(script.DuplicateSecurityGroupsNamedDefault,
script.check_sanity, conn)
+
+
+class TestWalkMigrations(test_base.DbTestCase):
+
+ def setUp(self):
+ super(TestWalkMigrations, self).setUp()
+ self.alembic_config = migration.get_alembic_config()
+ self.alembic_config.neutron_config = cfg.CONF
+
+ def test_no_downgrade(self):
+ script_dir = alembic_script.ScriptDirectory.from_config(
+ self.alembic_config)
+ versions = [v for v in script_dir.walk_revisions(base='base',
+ head='heads')]
+ failed_revisions = []
+ for version in versions:
+ if hasattr(version.module, 'downgrade'):
+ failed_revisions.append(version.revision)
+
+ if failed_revisions:
+ self.fail('Migrations %s have downgrade' % failed_revisions)