1
# vim: tabstop=4 shiftwidth=4 softtabstop=4
3
# Copyright 2013 OpenStack LLC
5
# Licensed under the Apache License, Version 2.0 (the "License"); you may
6
# not use this file except in compliance with the License. You may obtain
7
# a copy of the License at
9
# http://www.apache.org/licenses/LICENSE-2.0
11
# Unless required by applicable law or agreed to in writing, software
12
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
# License for the specific language governing permissions and limitations
20
Revision ID: 3cb5d900c5de
22
Create Date: 2013-01-08 00:13:43.051078
26
# revision identifiers, used by Alembic.
27
revision = '3cb5d900c5de'
28
down_revision = '48b6f43f7471'
30
# Change to ['*'] if this migration applies to all plugins
32
migration_for_plugins = [
33
'quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2'
36
from alembic import op
37
import sqlalchemy as sa
38
from sqlalchemy.dialects import mysql
40
from quantum.db import migration
43
def upgrade(active_plugin=None, options=None):
44
if not migration.should_run(active_plugin, migration_for_plugins):
47
### commands auto generated by Alembic - please adjust! ###
50
sa.Column('tenant_id', sa.String(length=255), nullable=True),
51
sa.Column('id', sa.String(length=36), nullable=False),
52
sa.Column('name', sa.String(length=255), nullable=True),
53
sa.Column('description', sa.String(length=255), nullable=True),
54
sa.Column('external_id', sa.Integer(), nullable=True),
55
sa.PrimaryKeyConstraint('id'),
56
sa.UniqueConstraint('external_id')
60
sa.Column('tenant_id', sa.String(length=255), nullable=True),
61
sa.Column('id', sa.String(length=36), nullable=False),
62
sa.Column('external_id', sa.Integer(), nullable=True),
63
sa.Column('security_group_id', sa.String(length=36), nullable=False),
64
sa.Column('source_group_id', sa.String(length=36), nullable=True),
65
sa.Column('direction', sa.Enum('ingress', 'egress'), nullable=True),
66
sa.Column('ethertype', sa.String(length=40), nullable=True),
67
sa.Column('protocol', sa.String(length=40), nullable=True),
68
sa.Column('port_range_min', sa.Integer(), nullable=True),
69
sa.Column('port_range_max', sa.Integer(), nullable=True),
70
sa.Column('source_ip_prefix', sa.String(length=255), nullable=True),
71
sa.ForeignKeyConstraint(['security_group_id'], ['securitygroups.id'],
73
sa.ForeignKeyConstraint(['source_group_id'], ['securitygroups.id'],
75
sa.PrimaryKeyConstraint('id')
78
'securitygroupportbindings',
79
sa.Column('port_id', sa.String(length=36), nullable=False),
80
sa.Column('security_group_id', sa.String(length=36), nullable=False),
81
sa.ForeignKeyConstraint(['port_id'], ['ports.id'], ondelete='CASCADE'),
82
sa.ForeignKeyConstraint(['security_group_id'], ['securitygroups.id']),
83
sa.PrimaryKeyConstraint('port_id', 'security_group_id')
85
### end Alembic commands ###
88
def downgrade(active_plugin=None, options=None):
89
if not migration.should_run(active_plugin, migration_for_plugins):
92
### commands auto generated by Alembic - please adjust! ###
93
op.drop_table('securitygroupportbindings')
94
op.drop_table('securitygrouprules')
95
op.drop_table('securitygroups')
96
### end Alembic commands ###