From 752b7ab29ddc75d8ae54c52d824ecc94a9551b56 Mon Sep 17 00:00:00 2001 From: Akihiro MOTOKI Date: Tue, 24 Sep 2013 12:19:41 +0900 Subject: [PATCH] Ensure nullable=False for netid in packetfilters table From the initial commit of NEC plugin, network_id of packetfilters table is nullable=False, but in folsom_initial db migration script nullable is set to True. This commit ensure nullable=False for network_id in packetfilters table in any migration revision. Change-Id: I2f1ebc16b57d8d6548255079c66d326d97fda5b6 Closes-Bug: #1229508 --- .../versions/2528ceb28230_nec_pf_netid_fix.py | 61 +++++++++++++++++++ .../versions/folsom_initial.py | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 neutron/db/migration/alembic_migrations/versions/2528ceb28230_nec_pf_netid_fix.py diff --git a/neutron/db/migration/alembic_migrations/versions/2528ceb28230_nec_pf_netid_fix.py b/neutron/db/migration/alembic_migrations/versions/2528ceb28230_nec_pf_netid_fix.py new file mode 100644 index 000000000..c2f130109 --- /dev/null +++ b/neutron/db/migration/alembic_migrations/versions/2528ceb28230_nec_pf_netid_fix.py @@ -0,0 +1,61 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 +# +# Copyright 2013 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. +# + +"""NEC PacketFilter network_id nullable fix + +Revision ID: 2528ceb28230 +Revises: 1064e98b7917 +Create Date: 2013-09-24 12:07:43.124256 + +""" + +# revision identifiers, used by Alembic. +revision = '2528ceb28230' +down_revision = '1064e98b7917' + +# Change to ['*'] if this migration applies to all plugins + +migration_for_plugins = [ + 'neutron.plugins.nec.nec_plugin.NECPluginV2' +] + +from alembic import op +import sqlalchemy as sa + +from neutron.db import migration + + +def upgrade(active_plugins=None, options=None): + if not migration.should_run(active_plugins, migration_for_plugins): + return + + op.alter_column('packetfilters', 'network_id', + existing_type=sa.String(length=36), + nullable=False) + + +def downgrade(active_plugins=None, options=None): + if not migration.should_run(active_plugins, migration_for_plugins): + return + + # NOTE(amotoki): There is a bug that nullable of network_id is + # set to True by mistake in folsom_initial (bug 1229508). + # To make sure nullable=False in any revision, nullable is set + # to False in both upgrade and downgrade. + op.alter_column('packetfilters', 'network_id', + existing_type=sa.String(length=36), + nullable=False) diff --git a/neutron/db/migration/alembic_migrations/versions/folsom_initial.py b/neutron/db/migration/alembic_migrations/versions/folsom_initial.py index bf972551c..13f23c4b8 100644 --- a/neutron/db/migration/alembic_migrations/versions/folsom_initial.py +++ b/neutron/db/migration/alembic_migrations/versions/folsom_initial.py @@ -321,7 +321,7 @@ def upgrade_nec(): 'packetfilters', sa.Column('tenant_id', sa.String(length=255), nullable=True), sa.Column('id', sa.String(length=36), nullable=False), - sa.Column('network_id', sa.String(length=36), nullable=True), + sa.Column('network_id', sa.String(length=36), nullable=False), sa.Column('priority', sa.Integer(), nullable=False), sa.Column('action', sa.String(16), nullable=False), sa.Column('in_port', sa.String(36), nullable=False),