--- a/components/openstack/neutron/patches/05-alembic-migrations.patch Wed Sep 07 14:48:41 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-In-house patch to skip over unnecessary database migrations for Neutron.
-Juno database tables for Neutron do not need these migrations when upgrading
-to Kilo.
-
---- neutron-2015.1.2/neutron/db/migration/alembic_migrations/agent_init_ops.py.orig 2016-04-22 23:23:15.523526779 -0700
-+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/agent_init_ops.py 2016-04-22 23:25:39.337181119 -0700
-@@ -23,7 +23,10 @@
-
-
- def upgrade():
-- op.create_table(
-+ bind = op.get_bind()
-+ insp = sa.engine.reflection.Inspector.from_engine(bind)
-+ if 'agents' not in insp.get_table_names():
-+ op.create_table(
- 'agents',
- sa.Column('id', sa.String(length=36), nullable=False),
- sa.Column('agent_type', sa.String(length=255), nullable=False),
---- neutron-2015.1.2/neutron/db/migration/alembic_migrations/core_init_ops.py.orig 2016-04-22 23:25:50.350653015 -0700
-+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/core_init_ops.py 2016-04-22 23:30:15.715403373 -0700
-@@ -19,7 +19,11 @@
-
-
- def upgrade():
-- op.create_table(
-+ bind = op.get_bind()
-+ insp = sa.engine.reflection.Inspector.from_engine(bind)
-+ table_names = insp.get_table_names()
-+ if 'networks' not in table_names:
-+ op.create_table(
- 'networks',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
- sa.Column('id', sa.String(length=36), nullable=False),
-@@ -29,7 +33,8 @@
- sa.Column('shared', sa.Boolean(), nullable=True),
- sa.PrimaryKeyConstraint('id'))
-
-- op.create_table(
-+ if 'ports' not in table_names:
-+ op.create_table(
- 'ports',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
- sa.Column('id', sa.String(length=36), nullable=False),
-@@ -43,7 +48,8 @@
- sa.ForeignKeyConstraint(['network_id'], ['networks.id'], ),
- sa.PrimaryKeyConstraint('id'))
-
-- op.create_table(
-+ if 'subnets' not in table_names:
-+ op.create_table(
- 'subnets',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
- sa.Column('id', sa.String(length=36), nullable=False),
-@@ -57,7 +63,8 @@
- sa.ForeignKeyConstraint(['network_id'], ['networks.id'], ),
- sa.PrimaryKeyConstraint('id'))
-
-- op.create_table(
-+ if 'dnsnameservers' not in table_names:
-+ op.create_table(
- 'dnsnameservers',
- sa.Column('address', sa.String(length=128), nullable=False),
- sa.Column('subnet_id', sa.String(length=36), nullable=False),
-@@ -65,7 +72,8 @@
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('address', 'subnet_id'))
-
-- op.create_table(
-+ if 'ipallocationpools' not in table_names:
-+ op.create_table(
- 'ipallocationpools',
- sa.Column('id', sa.String(length=36), nullable=False),
- sa.Column('subnet_id', sa.String(length=36), nullable=True),
-@@ -75,7 +83,8 @@
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('id'))
-
-- op.create_table(
-+ if 'subnetroutes' not in table_names:
-+ op.create_table(
- 'subnetroutes',
- sa.Column('destination', sa.String(length=64), nullable=False),
- sa.Column('nexthop', sa.String(length=64), nullable=False),
-@@ -84,7 +93,8 @@
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('destination', 'nexthop', 'subnet_id'))
-
-- op.create_table(
-+ if 'ipallocations' not in table_names:
-+ op.create_table(
- 'ipallocations',
- sa.Column('port_id', sa.String(length=36), nullable=True),
- sa.Column('ip_address', sa.String(length=64), nullable=False),
-@@ -97,7 +107,8 @@
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('ip_address', 'subnet_id', 'network_id'))
-
-- op.create_table(
-+ if 'ipavailabilityranges' not in table_names:
-+ op.create_table(
- 'ipavailabilityranges',
- sa.Column('allocation_pool_id', sa.String(length=36), nullable=False),
- sa.Column('first_ip', sa.String(length=64), nullable=False),
-@@ -106,7 +117,8 @@
- ['ipallocationpools.id'], ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('allocation_pool_id', 'first_ip', 'last_ip'))
-
-- op.create_table(
-+ if 'networkdhcpagentbindings' not in table_names:
-+ op.create_table(
- 'networkdhcpagentbindings',
- sa.Column('network_id', sa.String(length=36), nullable=False),
- sa.Column('dhcp_agent_id', sa.String(length=36), nullable=False),
---- neutron-2015.1.2/neutron/db/migration/alembic_migrations/l3_init_ops.py.orig 2016-04-22 23:35:15.205163303 -0700
-+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/l3_init_ops.py 2016-04-22 23:33:36.741262443 -0700
-@@ -31,14 +31,20 @@
-
-
- def upgrade():
-- op.create_table(
-+ bind = op.get_bind()
-+ insp = sa.engine.reflection.Inspector.from_engine(bind)
-+ table_names = insp.get_table_names()
-+
-+ if 'externalnetworks' not in table_names:
-+ op.create_table(
- 'externalnetworks',
- sa.Column('network_id', sa.String(length=36), nullable=False),
- sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('network_id'))
-
-- op.create_table(
-+ if 'routers' not in table_names:
-+ op.create_table(
- 'routers',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
- sa.Column('id', sa.String(length=36), nullable=False),
-@@ -51,7 +57,8 @@
- sa.ForeignKeyConstraint(['gw_port_id'], ['ports.id'], ),
- sa.PrimaryKeyConstraint('id'))
-
-- op.create_table(
-+ if 'floatingips' not in table_names:
-+ op.create_table(
- 'floatingips',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
- sa.Column('id', sa.String(length=36), nullable=False),
---- neutron-2015.1.2/neutron/db/migration/alembic_migrations/other_extensions_init_ops.py.orig 2016-04-22 23:35:35.724592904 -0700
-+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/other_extensions_init_ops.py 2016-04-22 23:37:11.709485583 -0700
-@@ -34,7 +34,10 @@
- sa.PrimaryKeyConstraint('provider_name', 'resource_id'),
- sa.UniqueConstraint('resource_id'))
-
-- op.create_table(
-+ bind = op.get_bind()
-+ insp = sa.engine.reflection.Inspector.from_engine(bind)
-+ if 'quotas' not in insp.get_table_names():
-+ op.create_table(
- 'quotas',
- sa.Column('id', sa.String(length=36), nullable=False),
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
---- neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/1fcfc149aca4_agents_unique_by_type_and_host.py.orig 2016-04-23 01:59:50.554268246 -0700
-+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/1fcfc149aca4_agents_unique_by_type_and_host.py 2016-04-23 02:01:10.767910540 -0700
-@@ -26,6 +26,7 @@
- down_revision = 'e197124d4b9'
-
- from alembic import op
-+import sqlalchemy as sa
-
- from neutron.db import migration
-
-@@ -41,7 +42,14 @@
- # configured plugin did not create the agents table.
- return
-
-- op.create_unique_constraint(
-+ bind = op.get_bind()
-+ insp = sa.engine.reflection.Inspector.from_engine(bind)
-+ u_cons_list = insp.get_unique_constraints(TABLE_NAME)
-+ u_cons = []
-+ for c in u_cons_list:
-+ u_cons.append(c['name'])
-+ if UC_NAME not in u_cons:
-+ op.create_unique_constraint(
- name=UC_NAME,
- source=TABLE_NAME,
- local_cols=['agent_type', 'host']
---- neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/2eeaf963a447_floatingip_status.py.orig 2016-04-22 23:41:17.060181778 -0700
-+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/2eeaf963a447_floatingip_status.py 2016-04-22 23:57:26.134124564 -0700
-@@ -38,11 +38,20 @@
- # did not create the floatingips table.
- return
-
-- op.add_column('floatingips',
-+ bind = op.get_bind()
-+ insp = sa.engine.reflection.Inspector.from_engine(bind)
-+ col_names_list = insp.get_columns('floatingips')
-+ col_names = []
-+ for c in col_names_list:
-+ col_names.append(c['name'])
-+
-+ if 'last_known_router_id' not in col_names:
-+ op.add_column('floatingips',
- sa.Column('last_known_router_id',
- sa.String(length=36),
- nullable=True))
-- op.add_column('floatingips',
-+ if 'status' not in col_names:
-+ op.add_column('floatingips',
- sa.Column('status',
- sa.String(length=16),
- nullable=True))
---- neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/2447ad0e9585_add_ipv6_mode_props.py.orig 2016-04-22 23:42:16.956052992 -0700
-+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/2447ad0e9585_add_ipv6_mode_props.py 2016-04-22 23:54:33.628120696 -0700
-@@ -37,7 +37,15 @@
- % ('slaac', 'dhcpv6-stateful', 'dhcpv6-stateless'))
- op.execute("CREATE TYPE ipv6_address_modes AS ENUM ('%s', '%s', '%s')"
- % ('slaac', 'dhcpv6-stateful', 'dhcpv6-stateless'))
-- op.add_column('subnets',
-+ bind = op.get_bind()
-+ insp = sa.engine.reflection.Inspector.from_engine(bind)
-+ col_names_list = insp.get_columns('subnets')
-+ col_names = []
-+ for c in col_names_list:
-+ col_names.append(c['name'])
-+
-+ if 'ipv6_ra_mode' not in col_names:
-+ op.add_column('subnets',
- sa.Column('ipv6_ra_mode',
- sa.Enum('slaac',
- 'dhcpv6-stateful',
-@@ -45,7 +53,8 @@
- name='ipv6_ra_modes'),
- nullable=True)
- )
-- op.add_column('subnets',
-+ if 'ipv6_address_mode' not in col_names:
-+ op.add_column('subnets',
- sa.Column('ipv6_address_mode',
- sa.Enum('slaac',
- 'dhcpv6-stateful',
---- neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/544673ac99ab_add_router_port_table.py.orig 2016-04-22 23:43:11.770727387 -0700
-+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/544673ac99ab_add_router_port_table.py 2016-04-22 23:45:53.016161819 -0700
-@@ -40,7 +40,10 @@
-
-
- def upgrade():
-- op.create_table(
-+ bind = op.get_bind()
-+ insp = sa.engine.reflection.Inspector.from_engine(bind)
-+ if 'routerports' not in insp.get_table_names():
-+ op.create_table(
- 'routerports',
- sa.Column('router_id', sa.String(length=36), nullable=False),
- sa.Column('port_id', sa.String(length=36), nullable=False),
-@@ -59,6 +59,6 @@
- ['ports.id'],
- ondelete='CASCADE'
- ),
-- )
-+ )
-
-- op.execute(SQL_STATEMENT)
-+ op.execute(SQL_STATEMENT)
-