From: Oleg Bondarev Date: Fri, 26 Jul 2013 09:39:45 +0000 (+0400) Subject: Fix lbaas db migration X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=b23ccdabd5f8271d6d05108e1ca7de0a5fc2abf5;p=openstack-build%2Fneutron-build.git Fix lbaas db migration Currently the migration is skipped in all cases. Added * to run migration for all plugins until we have proper handling for service plugins in migration framework Fixes bug 1183705 Also fixes bug 1205250 Change-Id: Ib019408b8822e3e128c7c271b92875b542413fcf --- diff --git a/neutron/db/migration/alembic_migrations/versions/176a85fc7d79_add_portbindings_db.py b/neutron/db/migration/alembic_migrations/versions/176a85fc7d79_add_portbindings_db.py index 6834838c7..6d21ab474 100644 --- a/neutron/db/migration/alembic_migrations/versions/176a85fc7d79_add_portbindings_db.py +++ b/neutron/db/migration/alembic_migrations/versions/176a85fc7d79_add_portbindings_db.py @@ -18,14 +18,14 @@ """Add portbindings db Revision ID: 176a85fc7d79 -Revises: grizzly +Revises: f489cf14a79c Create Date: 2013-03-21 14:59:53.052600 """ # revision identifiers, used by Alembic. revision = '176a85fc7d79' -down_revision = 'grizzly' +down_revision = 'f489cf14a79c' # Change to ['*'] if this migration applies to all plugins diff --git a/neutron/db/migration/alembic_migrations/versions/f489cf14a79c_lbaas_havana.py b/neutron/db/migration/alembic_migrations/versions/f489cf14a79c_lbaas_havana.py new file mode 100644 index 000000000..1a8f0fcae --- /dev/null +++ b/neutron/db/migration/alembic_migrations/versions/f489cf14a79c_lbaas_havana.py @@ -0,0 +1,160 @@ +# 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. +# + +"""DB support for load balancing service (havana) + +Revision ID: f489cf14a79c +Revises: grizzly +Create Date: 2013-02-04 16:32:32.048731 + +""" + +# revision identifiers, used by Alembic. +revision = 'f489cf14a79c' +down_revision = 'grizzly' + +migration_for_plugins = ['*'] + +from alembic import op +import sqlalchemy as sa + +from neutron.db import migration + + +def upgrade(active_plugin=None, options=None): + if not migration.should_run(active_plugin, migration_for_plugins): + return + + op.create_table( + u'vips', + sa.Column(u'tenant_id', sa.String(255), nullable=True), + sa.Column(u'id', sa.String(36), nullable=False), + sa.Column(u'name', sa.String(255), nullable=True), + sa.Column(u'description', sa.String(255), nullable=True), + sa.Column(u'port_id', sa.String(36), nullable=True), + sa.Column(u'protocol_port', sa.Integer(), nullable=False), + sa.Column(u'protocol', + sa.Enum("HTTP", "HTTPS", "TCP", name="lb_protocols"), + nullable=False), + sa.Column(u'pool_id', sa.String(36), nullable=False), + sa.Column(u'status', sa.String(16), nullable=False), + sa.Column(u'admin_state_up', sa.Boolean(), nullable=False), + sa.Column(u'connection_limit', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['port_id'], ['ports.id'], ), + sa.UniqueConstraint('pool_id'), + sa.PrimaryKeyConstraint(u'id') + ) + op.create_table( + u'sessionpersistences', + sa.Column(u'vip_id', sa.String(36), nullable=False), + sa.Column(u'type', + sa.Enum("SOURCE_IP", + "HTTP_COOKIE", + "APP_COOKIE", + name="sesssionpersistences_type"), + nullable=False), + sa.Column(u'cookie_name', sa.String(1024), nullable=True), + sa.ForeignKeyConstraint(['vip_id'], [u'vips.id'], ), + sa.PrimaryKeyConstraint(u'vip_id') + ) + op.create_table( + u'pools', + sa.Column(u'tenant_id', sa.String(255), nullable=True), + sa.Column(u'id', sa.String(36), nullable=False), + sa.Column(u'vip_id', sa.String(36), nullable=True), + sa.Column(u'name', sa.String(255), nullable=True), + sa.Column(u'description', sa.String(255), nullable=True), + sa.Column(u'subnet_id', sa.String(36), nullable=False), + sa.Column(u'protocol', + sa.Enum("HTTP", "HTTPS", "TCP", name="lb_protocols"), + nullable=False), + sa.Column(u'lb_method', + sa.Enum("ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP", + name="pools_lb_method"), + nullable=False), + sa.Column(u'status', sa.String(16), nullable=False), + sa.Column(u'admin_state_up', sa.Boolean(), nullable=False), + sa.ForeignKeyConstraint(['vip_id'], [u'vips.id'], ), + sa.PrimaryKeyConstraint(u'id') + ) + op.create_table( + u'healthmonitors', + sa.Column(u'tenant_id', sa.String(255), nullable=True), + sa.Column(u'id', sa.String(36), nullable=False), + sa.Column(u'type', + sa.Enum("PING", + "TCP", + "HTTP", + "HTTPS", + name="healthmontiors_type"), + nullable=False), + sa.Column(u'delay', sa.Integer(), nullable=False), + sa.Column(u'timeout', sa.Integer(), nullable=False), + sa.Column(u'max_retries', sa.Integer(), nullable=False), + sa.Column(u'http_method', sa.String(16), nullable=True), + sa.Column(u'url_path', sa.String(255), nullable=True), + sa.Column(u'expected_codes', sa.String(64), nullable=True), + sa.Column(u'status', sa.String(16), nullable=False), + sa.Column(u'admin_state_up', sa.Boolean(), nullable=False), + sa.PrimaryKeyConstraint(u'id') + ) + op.create_table( + u'poolmonitorassociations', + sa.Column(u'pool_id', sa.String(36), nullable=False), + sa.Column(u'monitor_id', sa.String(36), nullable=False), + sa.ForeignKeyConstraint(['monitor_id'], [u'healthmonitors.id'], ), + sa.ForeignKeyConstraint(['pool_id'], [u'pools.id'], ), + sa.PrimaryKeyConstraint(u'pool_id', u'monitor_id') + ) + op.create_table( + u'members', + sa.Column(u'tenant_id', sa.String(255), nullable=True), + sa.Column(u'id', sa.String(36), nullable=False), + sa.Column(u'pool_id', sa.String(36), nullable=False), + sa.Column(u'address', sa.String(64), nullable=False), + sa.Column(u'protocol_port', sa.Integer(), nullable=False), + sa.Column(u'weight', sa.Integer(), nullable=False), + sa.Column(u'status', sa.String(16), nullable=False), + sa.Column(u'admin_state_up', sa.Boolean(), nullable=False), + sa.ForeignKeyConstraint(['pool_id'], [u'pools.id'], ), + sa.PrimaryKeyConstraint(u'id') + ) + op.create_table( + u'poolstatisticss', + sa.Column(u'pool_id', sa.String(36), nullable=False), + sa.Column(u'bytes_in', sa.Integer(), nullable=False), + sa.Column(u'bytes_out', sa.Integer(), nullable=False), + sa.Column(u'active_connections', sa.Integer(), nullable=False), + sa.Column(u'total_connections', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['pool_id'], [u'pools.id'], ), + sa.PrimaryKeyConstraint(u'pool_id') + ) + + +def downgrade(active_plugin=None, options=None): + if not migration.should_run(active_plugin, migration_for_plugins): + return + + op.drop_table(u'poolstatisticss') + op.drop_table(u'members') + op.drop_table(u'poolmonitorassociations') + op.drop_table(u'healthmonitors') + op.drop_table(u'pools') + op.drop_table(u'sessionpersistences') + op.drop_table(u'vips')