sa.Column('heartbeat_timestamp', sa.DateTime(), nullable=False),
sa.Column('description', sa.String(length=255), nullable=True),
sa.Column('configurations', sa.String(length=4095), nullable=False),
+ sa.Column('load', sa.Integer(), server_default='0', nullable=False),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('agent_type', 'host',
name='uniq_agents0agent_type0host'))
sa.Column('vlan', sa.String(length=10), nullable=True),
sa.Column('segment_id', sa.String(length=36), nullable=True),
sa.Column('network_type', sa.String(length=10), nullable=True),
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.PrimaryKeyConstraint('id'))
op.create_table(
sa.Column('admin_state_up', sa.Boolean(), nullable=False),
sa.Column('physical_interface', sa.String(length=36), nullable=True),
sa.Column('vlan_id', sa.String(length=36), nullable=True),
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.PrimaryKeyConstraint('id'),
sa.ForeignKeyConstraint(['network_id'], ['ml2_brocadenetworks.id']))
name='segment_type')
profile_type = sa.Enum('network', 'policy', name='profile_type')
+network_profile_type = sa.Enum('vlan', 'vxlan', name='network_profile_type')
+
def upgrade():
op.create_table(
op.create_table(
'cisco_ml2_apic_contracts',
- sa.Column('tenant_id', sa.String(length=255)),
+ sa.Column('tenant_id', sa.String(length=255), index=True),
sa.Column('router_id', sa.String(length=36), nullable=False),
sa.ForeignKeyConstraint(['router_id'], ['routers.id']),
sa.PrimaryKeyConstraint('router_id'))
op.create_table('cisco_hosting_devices',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('complementary_id', sa.String(length=36), nullable=True),
sa.Column('device_id', sa.String(length=255), nullable=True),
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('router_id')
)
+ op.create_table(
+ 'cisco_ml2_n1kv_policy_profiles',
+ sa.Column('id', sa.String(length=36), nullable=False),
+ sa.Column('name', sa.String(length=255), nullable=False),
+ sa.Column('vsm_ip', sa.String(length=16), nullable=False),
+ sa.PrimaryKeyConstraint('id', 'vsm_ip'),
+ )
+
+ op.create_table(
+ 'cisco_ml2_n1kv_network_profiles',
+ sa.Column('id', sa.String(length=36), nullable=False),
+ sa.Column('name', sa.String(length=255), nullable=False),
+ sa.Column('segment_type', network_profile_type, nullable=False),
+ sa.Column('segment_range', sa.String(length=255), nullable=True),
+ sa.Column('multicast_ip_index', sa.Integer(), nullable=True),
+ sa.Column('multicast_ip_range', sa.String(length=255), nullable=True),
+ sa.Column('sub_type', sa.String(length=255), nullable=True),
+ sa.Column('physical_network', sa.String(length=255), nullable=True),
+ sa.PrimaryKeyConstraint('id'),
+ )
+
+ op.create_table(
+ 'cisco_ml2_n1kv_port_bindings',
+ sa.Column('port_id', sa.String(length=36), nullable=False),
+ sa.Column('profile_id', sa.String(length=36), nullable=False),
+ sa.ForeignKeyConstraint(['port_id'], ['ports.id'], ondelete='CASCADE'),
+ sa.PrimaryKeyConstraint('port_id'),
+ )
+
+ op.create_table(
+ 'cisco_ml2_n1kv_network_bindings',
+ sa.Column('network_id', sa.String(length=36), nullable=False),
+ sa.Column('network_type', sa.String(length=32), nullable=False),
+ sa.Column('segmentation_id', sa.Integer(), autoincrement=False),
+ sa.Column('profile_id', sa.String(length=36), nullable=False),
+ sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
+ ondelete='CASCADE'),
+ sa.ForeignKeyConstraint(['profile_id'],
+ ['cisco_ml2_n1kv_network_profiles.id']),
+ sa.PrimaryKeyConstraint('network_id')
+ )
+
+ op.create_table(
+ 'cisco_ml2_n1kv_vxlan_allocations',
+ sa.Column('vxlan_id', sa.Integer(), autoincrement=False,
+ nullable=False),
+ sa.Column('allocated', sa.Boolean(), nullable=False),
+ sa.Column('network_profile_id', sa.String(length=36), nullable=False),
+ sa.ForeignKeyConstraint(['network_profile_id'],
+ ['cisco_ml2_n1kv_network_profiles.id'],
+ ondelete='CASCADE'),
+ sa.PrimaryKeyConstraint('vxlan_id')
+ )
+
+ op.create_table(
+ 'cisco_ml2_n1kv_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(), autoincrement=False,
+ nullable=False),
+ sa.Column('network_profile_id', sa.String(length=36), nullable=False),
+ sa.ForeignKeyConstraint(['network_profile_id'],
+ ['cisco_ml2_n1kv_network_profiles.id'],
+ ondelete='CASCADE'),
+ sa.PrimaryKeyConstraint('physical_network', 'vlan_id')
+ )
+ op.create_table(
+ 'cisco_ml2_n1kv_profile_bindings',
+ sa.Column('profile_type', profile_type, nullable=True),
+ sa.Column('tenant_id', sa.String(length=36), nullable=False,
+ server_default='tenant_id_not_set'),
+ sa.Column('profile_id', sa.String(length=36), nullable=False),
+ sa.PrimaryKeyConstraint('tenant_id', 'profile_id')
+ )
+ op.create_table(
+ 'ml2_ucsm_port_profiles',
+ sa.Column('vlan_id', sa.Integer(), nullable=False),
+ sa.Column('profile_id', sa.String(length=64), nullable=False),
+ sa.Column('created_on_ucs', sa.Boolean(), nullable=False),
+ sa.PrimaryKeyConstraint('vlan_id')
+ )
def upgrade():
op.create_table(
'networks',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=255), nullable=True),
sa.Column('status', sa.String(length=16), nullable=True),
sa.Column('admin_state_up', sa.Boolean(), nullable=True),
sa.Column('shared', sa.Boolean(), nullable=True),
+ sa.Column('mtu', sa.Integer(), nullable=True),
+ sa.Column('vlan_transparent', sa.Boolean(), nullable=True),
sa.PrimaryKeyConstraint('id'))
op.create_table(
'ports',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=255), nullable=True),
sa.Column('network_id', sa.String(length=36), nullable=False),
sa.Column('status', sa.String(length=16), nullable=False),
sa.Column('device_id', sa.String(length=255), nullable=False),
sa.Column('device_owner', sa.String(length=255), nullable=False),
- sa.ForeignKeyConstraint(['network_id'], ['networks.id'], ),
- sa.PrimaryKeyConstraint('id'))
+ sa.ForeignKeyConstraint(['network_id'], ['networks.id']),
+ sa.UniqueConstraint('network_id', 'mac_address',
+ name='uniq_ports0network_id0mac_address'),
+ sa.PrimaryKeyConstraint('id'),
+ sa.Index(op.f('ix_ports_network_id_device_owner'), 'network_id',
+ 'device_owner'),
+ sa.Index(op.f('ix_ports_network_id_mac_address'), 'network_id',
+ 'mac_address'))
op.create_table(
'subnets',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=255), nullable=True),
sa.Column('network_id', sa.String(length=36), nullable=True),
sa.Enum('slaac', 'dhcpv6-stateful', 'dhcpv6-stateless',
name='ipv6_address_modes'),
nullable=True),
+ sa.Column('subnetpool_id', sa.String(length=36), nullable=True,
+ index=True),
sa.ForeignKeyConstraint(['network_id'], ['networks.id'], ),
sa.PrimaryKeyConstraint('id'))
sa.Column('last_ip', sa.String(length=64), nullable=False),
sa.ForeignKeyConstraint(['allocation_pool_id'],
['ipallocationpools.id'], ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('allocation_pool_id', 'first_ip', 'last_ip'))
+ sa.PrimaryKeyConstraint('allocation_pool_id', 'first_ip', 'last_ip'),
+ sa.UniqueConstraint(
+ 'first_ip', 'allocation_pool_id',
+ name='uniq_ipavailabilityranges0first_ip0allocation_pool_id'),
+ sa.UniqueConstraint(
+ 'last_ip', 'allocation_pool_id',
+ name='uniq_ipavailabilityranges0last_ip0allocation_pool_id'))
op.create_table(
'networkdhcpagentbindings',
nullable=False, server_default='normal'),
sa.Column('profile', sa.String(length=4095),
nullable=False, server_default=''),
- sa.Column('cap_port_filter', sa.Boolean(), nullable=False),
- sa.Column('driver', sa.String(length=64), nullable=True),
- sa.Column('segment', sa.String(length=36), nullable=True),
sa.Column(u'status', sa.String(16), nullable=False),
sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
ondelete='CASCADE'),
- sa.ForeignKeyConstraint(['segment'], ['ml2_network_segments.id'],
- ondelete='SET NULL'),
sa.PrimaryKeyConstraint('port_id', 'host')
)
op.create_table(
ondelete='CASCADE'),
sa.ForeignKeyConstraint(['csnat_gw_port_id'], ['ports.id'],
ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('router_id')
+ sa.PrimaryKeyConstraint('router_id', 'l3_agent_id')
)
op.create_table(
'routers',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=255), nullable=True),
sa.Column('status', sa.String(length=16), nullable=True),
op.create_table(
'floatingips',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('floating_ip_address', sa.String(length=64), nullable=False),
sa.Column('floating_network_id', sa.String(length=36), nullable=False),
sa.Column('last_known_router_id', sa.String(length=36), nullable=True),
sa.Column('status', sa.String(length=16), nullable=True),
sa.ForeignKeyConstraint(['fixed_port_id'], ['ports.id'], ),
- sa.ForeignKeyConstraint(['floating_port_id'], ['ports.id'], ),
+ sa.ForeignKeyConstraint(['floating_port_id'], ['ports.id'],
+ ondelete='CASCADE'),
sa.ForeignKeyConstraint(['router_id'], ['routers.id'], ),
sa.PrimaryKeyConstraint('id'))
def create_meteringlabels():
op.create_table(
'meteringlabels',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=255), nullable=True),
sa.Column('description', sa.String(length=1024), nullable=True),
sa.Column('vlan_id', sa.Integer(), autoincrement=False,
nullable=False),
sa.Column('allocated', sa.Boolean(), nullable=False),
- sa.PrimaryKeyConstraint('physical_network', 'vlan_id'))
+ sa.PrimaryKeyConstraint('physical_network', 'vlan_id'),
+ sa.Index(op.f('ix_ml2_vlan_allocations_physical_network_allocated'),
+ 'physical_network', 'allocated'))
op.create_table(
'ml2_vxlan_endpoints',
sa.Column('ip_address', sa.String(length=64), nullable=False),
sa.Column('udp_port', sa.Integer(), autoincrement=False,
nullable=False),
+ sa.Column('host', sa.String(length=255), nullable=True),
+ sa.UniqueConstraint('host', name='unique_ml2_vxlan_endpoints0host'),
sa.PrimaryKeyConstraint('ip_address'))
op.create_table(
'ml2_gre_endpoints',
sa.Column('ip_address', sa.String(length=64), nullable=False),
+ sa.Column('host', sa.String(length=255), nullable=True),
+ sa.UniqueConstraint('host', name='unique_ml2_gre_endpoints0host'),
sa.PrimaryKeyConstraint('ip_address'))
op.create_table(
sa.Column('vxlan_vni', sa.Integer(), autoincrement=False,
nullable=False),
sa.Column('allocated', sa.Boolean(), nullable=False,
- server_default=sa.sql.false()),
+ server_default=sa.sql.false(), index=True),
sa.PrimaryKeyConstraint('vxlan_vni'))
op.create_table(
sa.Column('gre_id', sa.Integer(), autoincrement=False,
nullable=False),
sa.Column('allocated', sa.Boolean(), nullable=False,
- server_default=sa.sql.false()),
+ server_default=sa.sql.false(), index=True),
sa.PrimaryKeyConstraint('gre_id'))
op.create_table(
sa.Column('segmentation_id', sa.Integer(), nullable=True),
sa.Column('is_dynamic', sa.Boolean(), nullable=False,
server_default=sa.sql.false()),
+ sa.Column('segment_index', sa.Integer(), nullable=False,
+ server_default='0'),
sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'))
sa.Column('host', sa.String(length=255), nullable=False,
server_default=''),
sa.Column('vif_type', sa.String(length=64), nullable=False),
- sa.Column('driver', sa.String(length=64), nullable=True),
- sa.Column('segment', sa.String(length=36), nullable=True),
sa.Column('vnic_type', sa.String(length=64), nullable=False,
server_default='normal'),
sa.Column('profile', sa.String(length=4095), nullable=False,
server_default=''),
sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
ondelete='CASCADE'),
- sa.ForeignKeyConstraint(['segment'], ['ml2_network_segments.id'],
- ondelete='SET NULL'),
sa.PrimaryKeyConstraint('port_id'))
+ op.create_table(
+ 'ml2_port_binding_levels',
+ sa.Column('port_id', sa.String(length=36), nullable=False),
+ sa.Column('host', sa.String(length=255), nullable=False),
+ sa.Column('level', sa.Integer(), autoincrement=False, nullable=False),
+ sa.Column('driver', sa.String(length=64), nullable=True),
+ sa.Column('segment_id', sa.String(length=36), nullable=True),
+ sa.ForeignKeyConstraint(['port_id'], ['ports.id'], ondelete='CASCADE'),
+ sa.ForeignKeyConstraint(['segment_id'], ['ml2_network_segments.id'],
+ ondelete='SET NULL'),
+ sa.PrimaryKeyConstraint('port_id', 'host', 'level')
+ )
+
op.create_table(
'cisco_ml2_nexusport_bindings',
sa.Column('binding_id', sa.Integer(), nullable=False),
nullable=False),
sa.Column('switch_ip', sa.String(length=255), nullable=True),
sa.Column('instance_id', sa.String(length=255), nullable=True),
+ sa.Column('vni', sa.Integer(), nullable=True),
+ sa.Column('is_provider_vlan', sa.Boolean(), nullable=False,
+ server_default=sa.sql.false()),
sa.PrimaryKeyConstraint('binding_id'),
)
op.create_table(
'arista_provisioned_nets',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('network_id', sa.String(length=36), nullable=True),
sa.Column('segmentation_id', sa.Integer(),
op.create_table(
'arista_provisioned_vms',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('vm_id', sa.String(length=255), nullable=True),
sa.Column('host_id', sa.String(length=255), nullable=True),
op.create_table(
'arista_provisioned_tenants',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.PrimaryKeyConstraint('id'))
+
+ op.create_table(
+ 'ml2_nexus_vxlan_allocations',
+ sa.Column('vxlan_vni', sa.Integer(), nullable=False,
+ autoincrement=False),
+ sa.Column('allocated', sa.Boolean(), nullable=False,
+ server_default=sa.sql.false()),
+ sa.PrimaryKeyConstraint('vxlan_vni')
+ )
+
+ op.create_table(
+ 'ml2_nexus_vxlan_mcast_groups',
+ sa.Column('id', sa.String(length=36), nullable=False),
+ sa.Column('mcast_group', sa.String(length=64), nullable=False),
+ sa.Column('associated_vni', sa.Integer(), nullable=False),
+ sa.PrimaryKeyConstraint('id'),
+ sa.ForeignKeyConstraint(['associated_vni'],
+ ['ml2_nexus_vxlan_allocations.vxlan_vni'],
+ ondelete='CASCADE')
+ )
+
+ op.create_table(
+ 'cisco_ml2_nexus_nve',
+ sa.Column('vni', sa.Integer(), nullable=False),
+ sa.Column('switch_ip', sa.String(length=255), nullable=True),
+ sa.Column('device_id', sa.String(length=255), nullable=True),
+ sa.Column('mcast_group', sa.String(length=255), nullable=True),
+ sa.PrimaryKeyConstraint('vni', 'switch_ip', 'device_id'))
+++ /dev/null
-# Copyright 2014 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-# Initial operations for the Mellanox plugin
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- 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(), nullable=False,
- server_default=sa.sql.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(), nullable=False),
- sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('network_id'))
-
- 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(
'packetfilters',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=255), nullable=True),
sa.Column('network_id', sa.String(length=36), nullable=False),
# under the License.
#
-"""nsxv
-
-Revision ID: 4dbe243cd84d
-Revises: 38495dc99731
-Create Date: 2015-01-05 23:22:04.501609
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '4dbe243cd84d'
-down_revision = '38495dc99731'
from alembic import op
import sqlalchemy as sa
sa.Column('name', sa.String(length=64), nullable=True),
sa.Column('l3dom_tmplt_id', sa.String(length=36), nullable=True),
sa.Column('l2dom_tmplt_id', sa.String(length=36), nullable=True),
+ sa.Column('isolated_zone', sa.String(length=64), nullable=True),
+ sa.Column('shared_zone', sa.String(length=64), nullable=True),
sa.PrimaryKeyConstraint('id'),
)
op.create_table(
'nuage_subnet_l2dom_mapping',
sa.Column('subnet_id', sa.String(length=36), nullable=False),
sa.Column('net_partition_id', sa.String(length=36), nullable=True),
- sa.Column('nuage_subnet_id', sa.String(length=36), nullable=True),
+ sa.Column('nuage_subnet_id', sa.String(length=36), nullable=True,
+ unique=True),
sa.Column('nuage_l2dom_tmplt_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.Column('nuage_managed_subnet', sa.Boolean(), nullable=True),
sa.ForeignKeyConstraint(['subnet_id'], ['subnets.id'],
ondelete='CASCADE'),
sa.ForeignKeyConstraint(['net_partition_id'],
'nuage_net_partition_router_mapping',
sa.Column('net_partition_id', sa.String(length=36), nullable=False),
sa.Column('router_id', sa.String(length=36), nullable=False),
- sa.Column('nuage_router_id', sa.String(length=36), nullable=True),
+ sa.Column('nuage_router_id', sa.String(length=36), nullable=True,
+ unique=True),
+ sa.Column('nuage_rtr_rd', sa.String(length=36), nullable=True),
+ sa.Column('nuage_rtr_rt', sa.String(length=36), nullable=True),
sa.ForeignKeyConstraint(['net_partition_id'],
['nuage_net_partitions.id'],
ondelete='CASCADE'),
sa.Column('port_id', sa.String(length=36), nullable=False),
sa.Column('opt_name', sa.String(length=64), nullable=False),
sa.Column('opt_value', sa.String(length=255), nullable=False),
+ sa.Column('ip_version', sa.Integer(), server_default='4',
+ nullable=False),
sa.ForeignKeyConstraint(['port_id'], ['ports.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'),
- sa.UniqueConstraint('port_id', 'opt_name', name='uidx_portid_optname'))
+ sa.UniqueConstraint(
+ 'port_id', 'opt_name', 'ip_version',
+ name='uniq_extradhcpopts0portid0optname0ipversion'))
- 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'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('router_id'))
-
- 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'], ['routers.id'], ),
- sa.PrimaryKeyConstraint('resource_id', 'resource_type'))
+ op.create_table('subnetpools',
+ sa.Column('tenant_id',
+ sa.String(length=255),
+ nullable=True,
+ index=True),
+ sa.Column('id', sa.String(length=36), nullable=False),
+ sa.Column('name', sa.String(length=255), nullable=True),
+ sa.Column('ip_version', sa.Integer(), nullable=False),
+ sa.Column('default_prefixlen',
+ sa.Integer(),
+ nullable=False),
+ sa.Column('min_prefixlen', sa.Integer(), nullable=False),
+ sa.Column('max_prefixlen', sa.Integer(), nullable=False),
+ sa.Column('shared', sa.Boolean(), nullable=False),
+ sa.Column('default_quota', sa.Integer(), nullable=True),
+ sa.PrimaryKeyConstraint('id'))
+ op.create_table('subnetpoolprefixes',
+ sa.Column('cidr', sa.String(length=64), nullable=False),
+ sa.Column('subnetpool_id',
+ sa.String(length=36),
+ nullable=False),
+ sa.ForeignKeyConstraint(['subnetpool_id'],
+ ['subnetpools.id'],
+ ondelete='CASCADE'),
+ sa.PrimaryKeyConstraint('cidr', 'subnetpool_id'))
#
# Initial operations for plugins:
-# hyper-v
# bigswitch
# metaplugin
def upgrade():
- # hyper-v
- 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'))
-
# metaplugin
op.create_table(
'networkflavors',
+++ /dev/null
-# Copyright 2014 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-# Initial operations for the Ryu plugin
-
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- 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'))
def upgrade():
op.create_table(
'securitygroups',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=255), nullable=True),
sa.Column('description', sa.String(length=255), nullable=True),
op.create_table(
'securitygrouprules',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('security_group_id', sa.String(length=36), nullable=False),
sa.Column('remote_group_id', sa.String(length=36), nullable=True),
sa.ForeignKeyConstraint(['port_id'], ['ports.id'], ondelete='CASCADE'),
sa.ForeignKeyConstraint(['security_group_id'], ['securitygroups.id']),
sa.PrimaryKeyConstraint('port_id', 'security_group_id'))
+
+ op.create_table(
+ 'default_security_group',
+ sa.Column('tenant_id', sa.String(length=255), nullable=False),
+ sa.Column('security_group_id', sa.String(length=36), nullable=False),
+ sa.PrimaryKeyConstraint('tenant_id'),
+ sa.ForeignKeyConstraint(['security_group_id'],
+ ['securitygroups.id'],
+ ondelete="CASCADE"))
+++ /dev/null
-# Copyright 2014 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Remove allow_overlap from subnetpools
-"""
-
-# revision identifiers, used by Alembic.
-revision = '034883111f'
-down_revision = '20b99fd19d4f'
-
-
-from alembic import op
-
-
-def upgrade():
- op.drop_column('subnetpools', 'allow_overlap')
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-""" Add default security group table
-
-Revision ID: 14be42f3d0a5
-Revises: 41662e32bce2
-Create Date: 2014-12-12 14:54:11.123635
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '14be42f3d0a5'
-down_revision = '26b54cf9024d'
-
-from alembic import op
-import six
-import sqlalchemy as sa
-
-from neutron._i18n import _
-from neutron.common import exceptions
-
-# Models can change in time, but migration should rely only on exact
-# model state at the current moment, so a separate model is created
-# here.
-security_group = sa.Table('securitygroups', sa.MetaData(),
- sa.Column('id', sa.String(length=36),
- nullable=False),
- sa.Column('name', sa.String(255)),
- sa.Column('tenant_id', sa.String(255)))
-
-
-class DuplicateSecurityGroupsNamedDefault(exceptions.Conflict):
- message = _("Some tenants have more than one security group named "
- "'default': %(duplicates)s. All duplicate 'default' security "
- "groups must be resolved before upgrading the database.")
-
-
-def upgrade():
- table = op.create_table(
- 'default_security_group',
- sa.Column('tenant_id', sa.String(length=255), nullable=False),
- sa.Column('security_group_id', sa.String(length=36), nullable=False),
- sa.PrimaryKeyConstraint('tenant_id'),
- sa.ForeignKeyConstraint(['security_group_id'],
- ['securitygroups.id'],
- ondelete="CASCADE"))
- sel = (sa.select([security_group.c.tenant_id,
- security_group.c.id])
- .where(security_group.c.name == 'default'))
- ins = table.insert(inline=True).from_select(['tenant_id',
- 'security_group_id'], sel)
- op.execute(ins)
-
-
-def check_sanity(connection):
- res = get_duplicate_default_security_groups(connection)
- if res:
- raise DuplicateSecurityGroupsNamedDefault(
- duplicates='; '.join('tenant %s: %s' %
- (tenant_id, ', '.join(groups))
- for tenant_id, groups in six.iteritems(res)))
-
-
-def get_duplicate_default_security_groups(connection):
- insp = sa.engine.reflection.Inspector.from_engine(connection)
- if 'securitygroups' not in insp.get_table_names():
- return {}
- session = sa.orm.Session(bind=connection.connect())
- subq = (session.query(security_group.c.tenant_id)
- .filter(security_group.c.name == 'default')
- .group_by(security_group.c.tenant_id)
- .having(sa.func.count() > 1)
- .subquery())
-
- sg = (session.query(security_group)
- .join(subq, security_group.c.tenant_id == subq.c.tenant_id)
- .filter(security_group.c.name == 'default')
- .all())
- res = {}
- for s in sg:
- res.setdefault(s.tenant_id, []).append(s.id)
- return res
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""extra_dhcp_options IPv6 support
-
-Revision ID: 16cdf118d31d
-Revises: 14be42f3d0a5
-Create Date: 2014-10-23 17:04:19.796731
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '16cdf118d31d'
-down_revision = '14be42f3d0a5'
-
-from alembic import op
-import sqlalchemy as sa
-
-from neutron.db import migration
-
-CONSTRAINT_NAME_OLD = 'uidx_portid_optname'
-CONSTRAINT_NAME_NEW = 'uniq_extradhcpopts0portid0optname0ipversion'
-TABLE_NAME = 'extradhcpopts'
-
-
-def upgrade():
- with migration.remove_fks_from_table(TABLE_NAME):
- op.drop_constraint(
- constraint_name=CONSTRAINT_NAME_OLD,
- table_name=TABLE_NAME,
- type_='unique'
- )
-
- op.add_column('extradhcpopts', sa.Column('ip_version', sa.Integer(),
- server_default='4', nullable=False))
- op.execute("UPDATE extradhcpopts SET ip_version = 4")
-
- op.create_unique_constraint(
- constraint_name=CONSTRAINT_NAME_NEW,
- table_name='extradhcpopts',
- columns=['port_id', 'opt_name', 'ip_version']
- )
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""weight_scheduler
-
-Revision ID: 1955efc66455
-Revises: 35a0f3365720
-Create Date: 2015-03-12 22:11:37.607390
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '1955efc66455'
-down_revision = '35a0f3365720'
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- op.add_column('agents',
- sa.Column('load', sa.Integer(),
- server_default='0', nullable=False))
+++ /dev/null
-# Copyright 2014 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""ml2_network_segments models change for multi-segment network.
-
-Revision ID: 1f71e54a85e7
-Revises: 44621190bc02
-Create Date: 2014-10-15 18:30:51.395295
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '1f71e54a85e7'
-down_revision = '44621190bc02'
-
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- op.add_column('ml2_network_segments',
- sa.Column('segment_index', sa.Integer(), nullable=False,
- server_default='0'))
+++ /dev/null
-# Copyright 2015 Cisco Systems, Inc.
-# All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Cisco UCS Manager Mechanism Driver
-
-Revision ID: 20b99fd19d4f
-Revises: 589f9237ca0e
-Create Date: 2014-07-30 21:01:13.754637
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '20b99fd19d4f'
-down_revision = '589f9237ca0e'
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- op.create_table(
- 'ml2_ucsm_port_profiles',
- sa.Column('vlan_id', sa.Integer(), nullable=False),
- sa.Column('profile_id', sa.String(length=64), nullable=False),
- sa.Column('created_on_ucs', sa.Boolean(), nullable=False),
- sa.PrimaryKeyConstraint('vlan_id')
- )
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""add index for port
-
-Revision ID: 20c469a5f920
-Revises: 28a09af858a8
-Create Date: 2015-04-01 04:12:49.898443
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '20c469a5f920'
-down_revision = '28a09af858a8'
-
-from alembic import op
-
-
-def upgrade():
- op.create_index(op.f('ix_ports_network_id_device_owner'),
- 'ports', ['network_id', 'device_owner'], unique=False)
- op.create_index(op.f('ix_ports_network_id_mac_address'),
- 'ports', ['network_id', 'mac_address'], unique=False)
+++ /dev/null
-# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
-# All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Initial operations in support of subnet allocation from a pool
-
-"""
-
-revision = '268fb5e99aa2'
-down_revision = '034883111f'
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- op.add_column('subnets',
- sa.Column('subnetpool_id',
- sa.String(length=36),
- nullable=True,
- index=True))
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Add index on allocated
-
-Revision ID: 26b54cf9024d
-Revises: 41662e32bce2
-Create Date: 2015-01-20 15:49:46.100172
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '26b54cf9024d'
-down_revision = '2a1ee2fb59e0'
-
-from alembic import op
-
-
-def upgrade():
- op.create_index(
- op.f('ix_ml2_gre_allocations_allocated'),
- 'ml2_gre_allocations', ['allocated'], unique=False)
- op.create_index(
- op.f('ix_ml2_vxlan_allocations_allocated'),
- 'ml2_vxlan_allocations', ['allocated'], unique=False)
- op.create_index(
- op.f('ix_ml2_vlan_allocations_physical_network_allocated'),
- 'ml2_vlan_allocations', ['physical_network', 'allocated'],
- unique=False)
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Initial operations to support basic quotas on prefix space in a subnet pool
-
-Revision ID: 28a09af858a8
-Revises: 268fb5e99aa2
-Create Date: 2015-03-16 10:36:48.810741
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '28a09af858a8'
-down_revision = '268fb5e99aa2'
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- op.add_column('subnetpools',
- sa.Column('default_quota',
- sa.Integer(),
- nullable=True))
+++ /dev/null
-# Copyright 2014 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""remove mlnx plugin
-
-Revision ID: 28c0ffb8ebbd
-Revises: 408cfbf6923c
-Create Date: 2014-12-08 23:58:49.288830
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '28c0ffb8ebbd'
-down_revision = '408cfbf6923c'
-
-from alembic import op
-
-
-def upgrade():
- op.drop_table('mlnx_network_bindings')
- op.drop_table('segmentation_id_allocation')
- op.drop_table('port_profile')
+++ /dev/null
-# Copyright (c) 2015 Thales Services SAS
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Add mac_address unique constraint
-
-Revision ID: 2a1ee2fb59e0
-Revises: 41662e32bce2
-Create Date: 2015-01-10 11:44:27.550349
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '2a1ee2fb59e0'
-down_revision = '41662e32bce2'
-
-from alembic import op
-
-TABLE_NAME = 'ports'
-CONSTRAINT_NAME = 'uniq_ports0network_id0mac_address'
-
-
-def upgrade():
- op.create_unique_constraint(
- constraint_name=CONSTRAINT_NAME,
- table_name=TABLE_NAME,
- columns=['network_id', 'mac_address']
- )
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Remove Hyper-V Neutron Plugin
-
-Migrates the contents of the tables 'hyperv_vlan_allocations' and
-'hyperv_network_bindings' to 'ml2_vlan_allocations' and 'ml2_network_segments'
-respectively, and then removes the tables.
-
-Thse tables are used by HyperVNeutronPlugin, which will be removed.
-
-Revision ID: 2b801560a332
-Revises: 4119216b7365
-Create Date: 2015-02-12 09:23:40.346104
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '2b801560a332'
-down_revision = '2d2a8a565438'
-
-from alembic import op
-from oslo_utils import uuidutils
-import sqlalchemy as sa
-from sqlalchemy.sql import expression as sa_expr
-
-from neutron.plugins.common import constants as p_const
-
-FLAT_VLAN_ID = -1
-LOCAL_VLAN_ID = -2
-HYPERV = 'hyperv'
-
-
-# Duplicated from neutron.plugins.linuxbridge.common.constants to
-# avoid being dependent on it, as it will eventually be removed.
-def _interpret_vlan_id(vlan_id):
- """Return (network_type, segmentation_id) tuple for encoded vlan_id."""
- if vlan_id == LOCAL_VLAN_ID:
- return (p_const.TYPE_LOCAL, None)
- elif vlan_id == FLAT_VLAN_ID:
- return (p_const.TYPE_FLAT, None)
- else:
- return (p_const.TYPE_VLAN, vlan_id)
-
-
-def _migrate_segment_dict(binding):
- binding['id'] = uuidutils.generate_uuid()
- vlan_id = binding.pop('segmentation_id')
- network_type, segmentation_id = _interpret_vlan_id(vlan_id)
- binding['network_type'] = network_type
- binding['segmentation_id'] = segmentation_id
-
-
-def _migrate_vlan_allocations():
- # Code similar to migrate_to_ml2.BaseMigrateToMl2.migrate_vlan_allocations
- if op.get_bind().engine.name == 'ibm_db_sa':
- op.execute('INSERT INTO ml2_vlan_allocations '
- 'SELECT physical_network, vlan_id, allocated '
- 'FROM hyperv_vlan_allocations '
- 'WHERE allocated = 1')
- else:
- op.execute('INSERT INTO ml2_vlan_allocations '
- 'SELECT physical_network, vlan_id, allocated '
- 'FROM hyperv_vlan_allocations '
- 'WHERE allocated = TRUE')
-
-
-def _migrate_network_segments(engine):
- # Code similar to migrate_to_ml2.BaseMigrateToMl2.migrate_network_segments
- source_table = sa_expr.table('hyperv_network_bindings')
- source_segments = engine.execute(
- sa_expr.select(['*'], from_obj=source_table))
- ml2_segments = [dict(x) for x in source_segments]
- for segment in ml2_segments:
- _migrate_segment_dict(segment)
-
- if ml2_segments:
- ml2_network_segments = sa_expr.table('ml2_network_segments')
- op.execute(ml2_network_segments.insert(), ml2_segments)
-
-
-def _get_port_segment_map(engine):
- # Code from migrate_to_ml2.BaseMigrateToMl2.get_port_segment_map
- port_segments = engine.execute("""
- SELECT ports_network.port_id, ml2_network_segments.id AS segment_id
- FROM ml2_network_segments, (
- SELECT portbindingports.port_id, ports.network_id
- FROM portbindingports, ports
- WHERE portbindingports.port_id = ports.id
- ) AS ports_network
- WHERE ml2_network_segments.network_id = ports_network.network_id
- """)
- return dict(x for x in port_segments)
-
-
-def _migrate_port_bindings(engine):
- # Code similar to migrate_to_ml2.BaseMigrateToMl2.migrate_port_bindings
- port_segment_map = _get_port_segment_map(engine)
- port_binding_ports = sa_expr.table('portbindingports')
- source_bindings = engine.execute(
- sa_expr.select(['*'], from_obj=port_binding_ports))
- ml2_bindings = [dict(x) for x in source_bindings]
- for binding in ml2_bindings:
- binding['vif_type'] = 'hyperv'
- binding['driver'] = HYPERV
- segment = port_segment_map.get(binding['port_id'])
- if segment:
- binding['segment'] = segment
- if ml2_bindings:
- md = sa.MetaData()
- sa.Table('ml2_port_bindings', md, autoload=True, autoload_with=engine)
- op.bulk_insert(md.tables['ml2_port_bindings'], ml2_bindings)
-
-
-def upgrade():
- bind = op.get_bind()
-
- _migrate_vlan_allocations()
- _migrate_network_segments(bind)
- _migrate_port_bindings(bind)
-
- op.drop_table('hyperv_vlan_allocations')
- op.drop_table('hyperv_network_bindings')
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""ML2 hierarchical binding
-
-Revision ID: 2d2a8a565438
-Revises: 4119216b7365
-Create Date: 2014-08-24 21:56:36.422885
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '2d2a8a565438'
-down_revision = '4119216b7365'
-
-from alembic import op
-import sqlalchemy as sa
-from sqlalchemy.engine import reflection
-
-port_binding_tables = ['ml2_port_bindings', 'ml2_dvr_port_bindings']
-
-
-def upgrade():
-
- inspector = reflection.Inspector.from_engine(op.get_bind())
- fk_name = [fk['name'] for fk in
- inspector.get_foreign_keys('ml2_port_bindings')
- if 'segment' in fk['constrained_columns']]
- fk_name_dvr = [fk['name'] for fk in
- inspector.get_foreign_keys('ml2_dvr_port_bindings')
- if 'segment' in fk['constrained_columns']]
-
- op.create_table(
- 'ml2_port_binding_levels',
- sa.Column('port_id', sa.String(length=36), nullable=False),
- sa.Column('host', sa.String(length=255), nullable=False),
- sa.Column('level', sa.Integer(), autoincrement=False, nullable=False),
- sa.Column('driver', sa.String(length=64), nullable=True),
- sa.Column('segment_id', sa.String(length=36), nullable=True),
- sa.ForeignKeyConstraint(['port_id'], ['ports.id'], ondelete='CASCADE'),
- sa.ForeignKeyConstraint(['segment_id'], ['ml2_network_segments.id'],
- ondelete='SET NULL'),
- sa.PrimaryKeyConstraint('port_id', 'host', 'level')
- )
-
- for table in port_binding_tables:
- op.execute((
- "INSERT INTO ml2_port_binding_levels "
- "SELECT port_id, host, 0 AS level, driver, segment AS segment_id "
- "FROM %s "
- "WHERE host <> '' "
- "AND driver <> '';"
- ) % table)
-
- op.drop_constraint(fk_name_dvr[0], 'ml2_dvr_port_bindings', 'foreignkey')
- op.drop_column('ml2_dvr_port_bindings', 'cap_port_filter')
- op.drop_column('ml2_dvr_port_bindings', 'segment')
- op.drop_column('ml2_dvr_port_bindings', 'driver')
-
- op.drop_constraint(fk_name[0], 'ml2_port_bindings', 'foreignkey')
- op.drop_column('ml2_port_bindings', 'driver')
- op.drop_column('ml2_port_bindings', 'segment')
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""sync with cisco repo
-
-Revision ID: 341ee8a4ccb5
-Revises: f15b1fb526dd
-Create Date: 2015-03-10 17:19:57.047080
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '341ee8a4ccb5'
-down_revision = 'f15b1fb526dd'
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- op.create_table(
- 'ml2_nexus_vxlan_allocations',
- sa.Column('vxlan_vni', sa.Integer(), nullable=False,
- autoincrement=False),
- sa.Column('allocated', sa.Boolean(), nullable=False,
- server_default=sa.sql.false()),
- sa.PrimaryKeyConstraint('vxlan_vni')
- )
-
- op.create_table(
- 'ml2_nexus_vxlan_mcast_groups',
- sa.Column('id', sa.String(length=36), nullable=False),
- sa.Column('mcast_group', sa.String(length=64), nullable=False),
- sa.Column('associated_vni', sa.Integer(), nullable=False),
- sa.PrimaryKeyConstraint('id'),
- sa.ForeignKeyConstraint(['associated_vni'],
- ['ml2_nexus_vxlan_allocations.vxlan_vni'],
- ondelete='CASCADE')
- )
-
- op.create_table(
- 'cisco_ml2_nexus_nve',
- sa.Column('vni', sa.Integer(), nullable=False),
- sa.Column('switch_ip', sa.String(length=255), nullable=True),
- sa.Column('device_id', sa.String(length=255), nullable=True),
- sa.Column('mcast_group', sa.String(length=255), nullable=True),
- sa.PrimaryKeyConstraint('vni', 'switch_ip', 'device_id'))
-
- op.add_column(
- 'cisco_ml2_nexusport_bindings',
- sa.Column('vni', sa.Integer(), nullable=True))
-
- op.add_column('cisco_ml2_nexusport_bindings', sa.Column(
- 'is_provider_vlan', sa.Boolean(), nullable=False,
- server_default=sa.sql.false()))
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""add port-security in ml2
-
-Revision ID: 35a0f3365720
-Revises: 341ee8a4ccb5
-Create Date: 2014-09-30 09:41:14.146519
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '35a0f3365720'
-down_revision = '341ee8a4ccb5'
-
-from alembic import op
-
-
-def upgrade():
- context = op.get_context()
-
- if context.bind.dialect.name == 'ibm_db_sa':
- # NOTE(junxie): DB2 stores booleans as 0 and 1.
- op.execute('INSERT INTO networksecuritybindings (network_id, '
- 'port_security_enabled) SELECT id, 1 FROM networks '
- 'WHERE id NOT IN (SELECT network_id FROM '
- 'networksecuritybindings);')
-
- op.execute('INSERT INTO portsecuritybindings (port_id, '
- 'port_security_enabled) SELECT id, 1 FROM ports '
- 'WHERE id NOT IN (SELECT port_id FROM '
- 'portsecuritybindings);')
- else:
- op.execute('INSERT INTO networksecuritybindings (network_id, '
- 'port_security_enabled) SELECT id, True FROM networks '
- 'WHERE id NOT IN (SELECT network_id FROM '
- 'networksecuritybindings);')
-
- op.execute('INSERT INTO portsecuritybindings (port_id, '
- 'port_security_enabled) SELECT id, True FROM ports '
- 'WHERE id NOT IN (SELECT port_id FROM '
- 'portsecuritybindings);')
+++ /dev/null
-# Copyright 2014 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""ml2_tunnel_endpoints_table
-
-Revision ID: 38495dc99731
-Revises: 57086602ca0a
-Create Date: 2014-12-22 00:03:33.643799
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '38495dc99731'
-down_revision = '57086602ca0a'
-
-from alembic import op
-import sqlalchemy as sa
-
-CONSTRAINT_NAME_GRE = 'unique_ml2_gre_endpoints0host'
-CONSTRAINT_NAME_VXLAN = 'unique_ml2_vxlan_endpoints0host'
-
-
-def upgrade():
-
- op.add_column('ml2_gre_endpoints',
- sa.Column('host', sa.String(length=255), nullable=True))
- op.create_unique_constraint(
- constraint_name=CONSTRAINT_NAME_GRE,
- table_name='ml2_gre_endpoints',
- columns=['host']
- )
-
- op.add_column('ml2_vxlan_endpoints',
- sa.Column('host', sa.String(length=255), nullable=True))
- op.create_unique_constraint(
- constraint_name=CONSTRAINT_NAME_VXLAN,
- table_name='ml2_vxlan_endpoints',
- columns=['host']
- )
+++ /dev/null
-# Copyright 2014 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""remove ryu plugin
-
-Revision ID: 408cfbf6923c
-Revises: 1f71e54a85e7
-Create Date: 2014-11-10 13:17:12.709642
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '408cfbf6923c'
-down_revision = '1f71e54a85e7'
-
-from alembic import op
-
-
-def upgrade():
- op.drop_table('tunnelkeylasts')
- op.drop_table('tunnelkeys')
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Add index on tenant_id column
-
-Revision ID: 4119216b7365
-Revises: 28c0ffb8ebbd
-Create Date: 2014-12-19 12:21:54.439723
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '4119216b7365'
-down_revision = 'bebba223288'
-
-from alembic import op
-
-TABLES = ['floatingips', 'networkconnections', 'networkgatewaydevices',
- 'networks', 'packetfilters', 'ports', 'qosqueues', 'routers',
- 'securitygrouprules', 'securitygroups', 'subnets', 'meteringlabels',
- 'arista_provisioned_nets', 'arista_provisioned_tenants',
- 'arista_provisioned_vms', 'cisco_hosting_devices',
- 'cisco_ml2_apic_contracts', 'ml2_brocadenetworks',
- 'ml2_brocadeports']
-
-
-def upgrade():
- for table in TABLES:
- op.create_index(op.f('ix_%s_tenant_id' % table),
- table, ['tenant_id'], unique=False)
+++ /dev/null
-# Copyright 2014 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""L3 DVR SNAT mapping
-
-Revision ID: 41662e32bce2
-Revises: 4dbe243cd84d
-Create Date: 2014-12-22 16:48:56.922833
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '41662e32bce2'
-down_revision = '4dbe243cd84d'
-
-from alembic import op
-from sqlalchemy.engine import reflection
-
-from neutron.db import migration
-
-
-TABLE_NAME = 'csnat_l3_agent_bindings'
-
-
-def upgrade():
- 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(constraint_name=prev_pk_name,
- table_name=TABLE_NAME,
- type_='primary')
-
- op.create_primary_key(constraint_name=None,
- table_name=TABLE_NAME,
- columns=['router_id', 'l3_agent_id'])
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""add mtu attributes to network
-
-Revision ID: 43763a9618fd
-Revises: 16cdf118d31d
-Create Date: 2015-02-05 17:44:14.161377
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '43763a9618fd'
-down_revision = '16cdf118d31d'
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- op.add_column('networks', sa.Column('mtu', sa.Integer(),
- nullable=True))
+++ /dev/null
-# Copyright 2014 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""add_uniqueconstraint_ipavailability_ranges
-
-Revision ID: 44621190bc02
-Revises: juno
-Create Date: 2014-09-23 15:14:15.051921
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '44621190bc02'
-down_revision = 'juno'
-
-from alembic import op
-
-
-TABLE_NAME = 'ipavailabilityranges'
-UC_1_NAME = 'uniq_ipavailabilityranges0first_ip0allocation_pool_id'
-UC_2_NAME = 'uniq_ipavailabilityranges0last_ip0allocation_pool_id'
-
-
-def upgrade():
- op.create_unique_constraint(
- constraint_name=UC_1_NAME,
- table_name=TABLE_NAME,
- columns=['first_ip', 'allocation_pool_id']
- )
-
- op.create_unique_constraint(
- constraint_name=UC_2_NAME,
- table_name=TABLE_NAME,
- columns=['last_ip', 'allocation_pool_id']
- )
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Initial operations for subnetpools
-
-Revision ID: 51c54792158e
-Revises: 341ee8a4ccb5
-Create Date: 2015-01-27 13:07:50.713838
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '51c54792158e'
-down_revision = '1955efc66455'
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- op.create_table('subnetpools',
- sa.Column('tenant_id',
- sa.String(length=255),
- nullable=True,
- index=True),
- sa.Column('id', sa.String(length=36), nullable=False),
- sa.Column('name', sa.String(length=255), nullable=True),
- sa.Column('ip_version', sa.Integer(), nullable=False),
- sa.Column('default_prefixlen',
- sa.Integer(),
- nullable=False),
- sa.Column('min_prefixlen', sa.Integer(), nullable=False),
- sa.Column('max_prefixlen', sa.Integer(), nullable=False),
- sa.Column('shared', sa.Boolean(), nullable=False),
- sa.Column('allow_overlap', sa.Boolean(), nullable=False),
- sa.PrimaryKeyConstraint('id'))
- op.create_table('subnetpoolprefixes',
- sa.Column('cidr', sa.String(length=64), nullable=False),
- sa.Column('subnetpool_id',
- sa.String(length=36),
- nullable=False),
- sa.ForeignKeyConstraint(['subnetpool_id'],
- ['subnetpools.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('cidr', 'subnetpool_id'))
+++ /dev/null
-# Copyright 2014 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""scrap_nsx_adv_svcs_models
-
-Revision ID: 57086602ca0a
-Revises: 28c0ffb8ebbd
-Create Date: 2014-12-17 22:33:30.465392
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '57086602ca0a'
-down_revision = '28c0ffb8ebbd'
-
-from alembic import op
-
-
-def upgrade():
- op.drop_table('vcns_edge_pool_bindings')
- op.drop_table('vcns_firewall_rule_bindings')
- op.drop_table('vcns_edge_monitor_bindings')
- op.drop_table('vcns_edge_vip_bindings')
- op.drop_table(u'routerservicetypebindings')
- op.drop_table(u'servicerouterbindings')
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""nuage_kilo_migrate
-
-Revision ID: 57dd745253a6
-Revises: 2b801560a332
-Create Date: 2015-02-12 18:32:27.343786
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '57dd745253a6'
-down_revision = '2b801560a332'
-
-from alembic import op
-import sqlalchemy as sa
-
-CONSTRAINT_NAME_NR = 'uniq_nuage_net_partition_router_mapping0nuage_router_id'
-CONSTRAINT_NAME_NS = 'uniq_nuage_subnet_l2dom_mapping0nuage_subnet_id'
-
-
-def upgrade():
- op.add_column('nuage_net_partition_router_mapping',
- sa.Column('nuage_rtr_rd', sa.String(length=36), nullable=True))
- op.add_column('nuage_net_partition_router_mapping',
- sa.Column('nuage_rtr_rt', sa.String(length=36), nullable=True))
- op.add_column('nuage_net_partitions',
- sa.Column('isolated_zone', sa.String(length=64), nullable=True))
- op.add_column('nuage_net_partitions',
- sa.Column('shared_zone', sa.String(length=64), nullable=True))
- op.add_column('nuage_subnet_l2dom_mapping',
- sa.Column('nuage_managed_subnet', sa.Boolean(), nullable=True))
- op.create_unique_constraint(
- constraint_name=CONSTRAINT_NAME_NR,
- table_name='nuage_net_partition_router_mapping',
- columns=['nuage_router_id'])
- op.create_unique_constraint(
- constraint_name=CONSTRAINT_NAME_NS,
- table_name='nuage_subnet_l2dom_mapping',
- columns=['nuage_subnet_id'])
+++ /dev/null
-# Copyright 2015 Cisco Systems, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Cisco N1kv ML2 driver tables
-
-Revision ID: 589f9237ca0e
-Revises: 51c54792158e
-Create Date: 2014-08-13 13:31:43.537460
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = '589f9237ca0e'
-down_revision = '51c54792158e'
-
-
-from alembic import op
-import sqlalchemy as sa
-
-network_profile_type = sa.Enum('vlan', 'vxlan',
- name='network_profile_type')
-
-
-def upgrade():
-
- op.create_table(
- 'cisco_ml2_n1kv_policy_profiles',
- sa.Column('id', sa.String(length=36), nullable=False),
- sa.Column('name', sa.String(length=255), nullable=False),
- sa.Column('vsm_ip', sa.String(length=16), nullable=False),
- sa.PrimaryKeyConstraint('id', 'vsm_ip'),
- )
-
- op.create_table(
- 'cisco_ml2_n1kv_network_profiles',
- sa.Column('id', sa.String(length=36), nullable=False),
- sa.Column('name', sa.String(length=255), nullable=False),
- sa.Column('segment_type', network_profile_type, nullable=False),
- sa.Column('segment_range', sa.String(length=255), nullable=True),
- sa.Column('multicast_ip_index', sa.Integer(), nullable=True),
- sa.Column('multicast_ip_range', sa.String(length=255), nullable=True),
- sa.Column('sub_type', sa.String(length=255), nullable=True),
- sa.Column('physical_network', sa.String(length=255), nullable=True),
- sa.PrimaryKeyConstraint('id'),
- )
-
- op.create_table(
- 'cisco_ml2_n1kv_port_bindings',
- sa.Column('port_id', sa.String(length=36), nullable=False),
- sa.Column('profile_id', sa.String(length=36), nullable=False),
- sa.ForeignKeyConstraint(['port_id'], ['ports.id'], ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('port_id'),
- )
-
- op.create_table(
- 'cisco_ml2_n1kv_network_bindings',
- sa.Column('network_id', sa.String(length=36), nullable=False),
- sa.Column('network_type', sa.String(length=32), nullable=False),
- sa.Column('segmentation_id', sa.Integer(), autoincrement=False),
- sa.Column('profile_id', sa.String(length=36), nullable=False),
- sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
- ondelete='CASCADE'),
- sa.ForeignKeyConstraint(['profile_id'],
- ['cisco_ml2_n1kv_network_profiles.id']),
- sa.PrimaryKeyConstraint('network_id')
- )
-
- op.create_table(
- 'cisco_ml2_n1kv_vxlan_allocations',
- sa.Column('vxlan_id', sa.Integer(), autoincrement=False,
- nullable=False),
- sa.Column('allocated', sa.Boolean(), nullable=False),
- sa.Column('network_profile_id', sa.String(length=36), nullable=False),
- sa.ForeignKeyConstraint(['network_profile_id'],
- ['cisco_ml2_n1kv_network_profiles.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('vxlan_id')
- )
-
- op.create_table(
- 'cisco_ml2_n1kv_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(), autoincrement=False,
- nullable=False),
- sa.Column('network_profile_id', sa.String(length=36), nullable=False),
- sa.ForeignKeyConstraint(['network_profile_id'],
- ['cisco_ml2_n1kv_network_profiles.id'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('physical_network', 'vlan_id')
- )
- # Bugfix for 1463301: PostgreSQL creates type when Enum assigned to column,
- # but type profile_type was already created in cisco_init_opts, so it needs
- # to be reused. MySQL do not create type for Enums.
- if op.get_context().dialect.name == 'postgresql':
- profile_type = sa.dialects.postgresql.ENUM('network', 'policy',
- name='profile_type',
- create_type=False)
- else:
- profile_type = sa.Enum('network', 'policy', name='profile_type')
- op.create_table(
- 'cisco_ml2_n1kv_profile_bindings',
- sa.Column('profile_type', profile_type, nullable=True),
- sa.Column('tenant_id', sa.String(length=36), nullable=False,
- server_default='tenant_id_not_set'),
- sa.Column('profile_id', sa.String(length=36), nullable=False),
- sa.PrimaryKeyConstraint('tenant_id', 'profile_id')
- )
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Add vlan transparent property to network
-
-Revision ID: bebba223288
-Revises: 43763a9618fd
-Create Date: 2015-02-04 18:07:29.670554
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = 'bebba223288'
-down_revision = '43763a9618fd'
-
-from alembic import op
-import sqlalchemy as sa
-
-
-def upgrade():
- op.add_column('networks', sa.Column('vlan_transparent', sa.Boolean(),
- nullable=True))
+++ /dev/null
-# Copyright 2015 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""Cascade Floating IP Floating Port deletion
-
-Revision ID: f15b1fb526dd
-Revises: 57dd745253a6
-Create Date: 2014-08-24 21:56:36.422885
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = 'f15b1fb526dd'
-down_revision = '57dd745253a6'
-
-from alembic import op
-from sqlalchemy.engine import reflection
-
-
-def _drop_constraint():
- inspector = reflection.Inspector.from_engine(op.get_bind())
- fk_name = [fk['name'] for fk in
- inspector.get_foreign_keys('floatingips')
- if 'floating_port_id' in fk['constrained_columns']]
- op.drop_constraint(fk_name[0], 'floatingips', 'foreignkey')
-
-
-def upgrade():
- _drop_constraint()
- op.create_foreign_key(
- constraint_name=None,
- source_table='floatingips', referent_table='ports',
- local_cols=['floating_port_id'], remote_cols=['id'], ondelete='CASCADE'
- )
# under the License.
#
-"""juno_initial
+"""kilo_initial
-Revision ID: juno
+Revision ID: kilo
Revises: None
"""
# revision identifiers, used by Alembic.
-revision = 'juno'
+revision = 'kilo'
down_revision = None
from neutron.db.migration.alembic_migrations import loadbalancer_init_ops
from neutron.db.migration.alembic_migrations import metering_init_ops
from neutron.db.migration.alembic_migrations import ml2_init_ops
-from neutron.db.migration.alembic_migrations import mlnx_init_ops
from neutron.db.migration.alembic_migrations import nec_init_ops
+from neutron.db.migration.alembic_migrations import nsxv_initial_opts
from neutron.db.migration.alembic_migrations import nuage_init_opts
from neutron.db.migration.alembic_migrations import other_extensions_init_ops
from neutron.db.migration.alembic_migrations import other_plugins_init_ops
from neutron.db.migration.alembic_migrations import ovs_init_ops
from neutron.db.migration.alembic_migrations import portsec_init_ops
-from neutron.db.migration.alembic_migrations import ryu_init_ops
from neutron.db.migration.alembic_migrations import secgroup_init_ops
from neutron.db.migration.alembic_migrations import vmware_init_ops
from neutron.db.migration.alembic_migrations import vpn_init_ops
metering_init_ops.upgrade()
brocade_init_ops.upgrade()
cisco_init_ops.upgrade()
- mlnx_init_ops.upgrade()
nec_init_ops.upgrade()
other_plugins_init_ops.upgrade()
- ryu_init_ops.upgrade()
vmware_init_ops.upgrade()
nuage_init_opts.upgrade()
+ nsxv_initial_opts.upgrade()
+++ /dev/null
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-"""kilo
-
-Revision ID: kilo
-Revises: 20c469a5f920
-Create Date: 2015-04-16 00:00:00.000000
-
-"""
-
-# revision identifiers, used by Alembic.
-revision = 'kilo'
-down_revision = '20c469a5f920'
-
-
-def upgrade():
- """A no-op migration for marking the Kilo release."""
- pass
sa.Column('lswitch_id', sa.String(length=36), nullable=False),
sa.PrimaryKeyConstraint('router_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'],
- ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('pool_id', 'edge_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'],
- ondelete='CASCADE'),
- 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'], ),
- sa.PrimaryKeyConstraint('rule_id', 'edge_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'], ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('vip_id'))
-
op.create_table(
'networkgateways',
sa.Column('id', sa.String(length=36), nullable=False),
op.create_table(
'networkconnections',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('network_gateway_id', sa.String(length=36), nullable=True),
sa.Column('network_id', sa.String(length=36), nullable=True),
sa.Column('segmentation_type', l2gw_segmentation_type, nullable=True),
op.create_table(
'qosqueues',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=255), nullable=True),
sa.Column('default', sa.Boolean(), nullable=True,
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('neutron_id'),
)
- # Execute statement to a record in nsx_router_mappings for
- # each record in routers
- op.execute("INSERT INTO neutron_nsx_router_mappings SELECT id,id "
- "from routers")
op.create_table(
'neutron_nsx_security_group_mappings',
sa.ForeignKeyConstraint(['neutron_id'], ['securitygroups.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('neutron_id', 'nsx_id'))
- # Execute statement to add a record in security group mappings for
- # each record in securitygroups
- op.execute("INSERT INTO neutron_nsx_security_group_mappings SELECT id,id "
- "from securitygroups")
+
op.create_table(
'networkgatewaydevicereferences',
sa.Column('id', sa.String(length=36), nullable=False),
op.create_table(
'networkgatewaydevices',
- sa.Column('tenant_id', sa.String(length=255), nullable=True),
+ sa.Column('tenant_id', sa.String(length=255), nullable=True,
+ index=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('nsx_id', sa.String(length=36), nullable=True),
sa.Column('name', sa.String(length=255), nullable=True),
from sqlalchemy import event
import sqlalchemy.types as types
-from neutron.api.v2 import attributes as attr
import neutron.db.migration as migration_help
from neutron.db.migration.alembic_migrations import external
from neutron.db.migration import cli as migration
pass
-class TestSanityCheck(test_base.DbTestCase):
-
- def setUp(self):
- super(TestSanityCheck, self).setUp()
- self.alembic_config = migration.get_neutron_config()
- self.alembic_config.neutron_config = cfg.CONF
-
- def test_check_sanity_14be42f3d0a5(self):
- SecurityGroup = sqlalchemy.Table(
- 'securitygroups', sqlalchemy.MetaData(),
- sqlalchemy.Column('id', sqlalchemy.String(length=36),
- nullable=False),
- sqlalchemy.Column('name', sqlalchemy.String(attr.NAME_MAX_LEN)),
- sqlalchemy.Column('tenant_id',
- sqlalchemy.String(attr.TENANT_ID_MAX_LEN)))
-
- with self.engine.connect() as conn:
- SecurityGroup.create(conn)
- conn.execute(SecurityGroup.insert(), [
- {'id': '123d4s', 'tenant_id': 'sssda1', 'name': 'default'},
- {'id': '123d4', 'tenant_id': 'sssda1', 'name': 'default'}
- ])
- script_dir = alembic_script.ScriptDirectory.from_config(
- self.alembic_config)
- script = script_dir.get_revision("14be42f3d0a5").module
- self.assertRaises(script.DuplicateSecurityGroupsNamedDefault,
- script.check_sanity, conn)
-
-
class TestWalkMigrations(test_base.DbTestCase):
def setUp(self):