Tap-as-a-Service is a project to introduce the functionality of port mirroring in OpenStack Neutron provisioned networks.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

61 lines
1.9 KiB

# Copyright 2016-17
#
# 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.
from alembic import op
from sqlalchemy.engine import reflection
import sqlalchemy as sa
from neutron.db import migration
"""Alter TapIdAssociations to support tap id reuse
Revision ID: bac61f603e39
Revises: 4086b3cffc01
Create Date: 2016-07-27 09:31:54.200165
"""
# revision identifiers, used by Alembic.
revision = 'bac61f603e39'
down_revision = '4086b3cffc01'
# milestone identifier, used by neutron-db-manage
neutron_milestone = [
migration.PIKE,
migration.QUEENS,
migration.ROCKY,
migration.STEIN,
]
TABLE_NAME = 'tap_id_associations'
def upgrade():
inspector = reflection.Inspector.from_engine(op.get_bind())
fk_constraints = inspector.get_foreign_keys(TABLE_NAME)
for fk in fk_constraints:
op.drop_constraint(fk['name'], TABLE_NAME, type_='foreignkey')
op.create_foreign_key('fk_tap_id_assoc_tap_service', TABLE_NAME,
'tap_services', ['tap_service_id'], ['id'],
ondelete='SET NULL')
op.alter_column(TABLE_NAME, 'taas_id', autoincrement=False,
existing_type=sa.INTEGER, nullable=False)
op.alter_column(TABLE_NAME, 'tap_service_id',
existing_type=sa.String(36), nullable=True)
op.create_unique_constraint('unique_taas_id', TABLE_NAME,
['taas_id'])