From a999159607908ac9a82fdab979eaa52f289586b7 Mon Sep 17 00:00:00 2001 From: Federico Ceratto Date: Thu, 4 Feb 2016 21:02:19 +0000 Subject: [PATCH] Switch "managed" fields from unicode to string Change-Id: I8c6e921dab3084d4006567b98da3d6fa85e96574 Closes-Bug: 1533193 --- designate/backend/impl_powerdns/tables.py | 6 +- .../cache/impl_sqlalchemy/tables.py | 2 +- .../083_change_managed_column_types.py | 39 +++++++++++ designate/storage/impl_sqlalchemy/tables.py | 68 +++++++++---------- 4 files changed, 77 insertions(+), 38 deletions(-) create mode 100644 designate/storage/impl_sqlalchemy/migrate_repo/versions/083_change_managed_column_types.py diff --git a/designate/backend/impl_powerdns/tables.py b/designate/backend/impl_powerdns/tables.py index 1b8cdf608..3146469f1 100644 --- a/designate/backend/impl_powerdns/tables.py +++ b/designate/backend/impl_powerdns/tables.py @@ -28,12 +28,12 @@ domains = Table( 'domains', metadata, Column('id', Integer, primary_key=True, autoincrement=True), - Column('designate_id', UUID(), nullable=False), + Column('designate_id', UUID, nullable=False), Column('name', String(255), nullable=False, unique=True), Column('master', String(255), nullable=True), - Column('last_check', Integer(), default=None, nullable=True), + Column('last_check', Integer, default=None, nullable=True), Column('type', String(6), nullable=False), - Column('notified_serial', Integer(), default=None, nullable=True), + Column('notified_serial', Integer, default=None, nullable=True), Column('account', String(40), default=None, nullable=True), mysql_engine='InnoDB', mysql_charset='utf8') diff --git a/designate/pool_manager/cache/impl_sqlalchemy/tables.py b/designate/pool_manager/cache/impl_sqlalchemy/tables.py index 97383f542..a70f8f402 100644 --- a/designate/pool_manager/cache/impl_sqlalchemy/tables.py +++ b/designate/pool_manager/cache/impl_sqlalchemy/tables.py @@ -29,7 +29,7 @@ metadata = MetaData() pool_manager_statuses = Table( 'pool_manager_statuses', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), Column('nameserver_id', UUID, nullable=False), diff --git a/designate/storage/impl_sqlalchemy/migrate_repo/versions/083_change_managed_column_types.py b/designate/storage/impl_sqlalchemy/migrate_repo/versions/083_change_managed_column_types.py new file mode 100644 index 000000000..ebce3c2c6 --- /dev/null +++ b/designate/storage/impl_sqlalchemy/migrate_repo/versions/083_change_managed_column_types.py @@ -0,0 +1,39 @@ +# Copyright 2016 Hewlett Packard Enterprise Development Company LP +# +# Author: Federico Ceratto +# +# 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. + +""" +Switch managed_* column types from Unicode to String +Bug #276448 +""" + +from oslo_log import log as logging +from sqlalchemy.schema import MetaData, Table +from sqlalchemy import String + +LOG = logging.getLogger() +meta = MetaData() + + +def upgrade(migrate_engine): + meta.bind = migrate_engine + records = Table('records', meta, autoload=True) + + records.columns.managed_extra.alter(type=String(100)) + records.columns.managed_plugin_type.alter(type=String(50)) + records.columns.managed_plugin_name.alter(type=String(50)) + records.columns.managed_resource_type.alter(type=String(50)) + records.columns.managed_resource_region.alter(type=String(100)) + records.columns.managed_tenant_id.alter(type=String(36)) diff --git a/designate/storage/impl_sqlalchemy/tables.py b/designate/storage/impl_sqlalchemy/tables.py index 979f192cf..81b83ee55 100644 --- a/designate/storage/impl_sqlalchemy/tables.py +++ b/designate/storage/impl_sqlalchemy/tables.py @@ -51,13 +51,13 @@ def default_shard(context, id_col): quotas = Table('quotas', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), Column('tenant_id', String(36), default=None, nullable=True), Column('resource', String(32), nullable=False), - Column('hard_limit', Integer(), nullable=False), + Column('hard_limit', Integer, nullable=False), mysql_engine='InnoDB', mysql_charset='utf8', @@ -65,7 +65,7 @@ quotas = Table('quotas', metadata, tlds = Table('tlds', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), @@ -78,14 +78,14 @@ tlds = Table('tlds', metadata, zones = Table('zones', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), Column('deleted', CHAR(32), nullable=False, default='0', server_default='0'), Column('deleted_at', DateTime, nullable=True, default=None), - Column('shard', SmallInteger(), nullable=False, + Column('shard', SmallInteger, nullable=False, default=lambda ctxt: default_shard(ctxt, 'id')), Column('tenant_id', String(36), default=None, nullable=True), @@ -120,14 +120,14 @@ zones = Table('zones', metadata, ) zone_attributes = Table('zone_attributes', metadata, - Column('id', UUID(), default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('id', UUID, default=utils.generate_uuid, primary_key=True), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), Column('key', Enum(name='key', *ZONE_ATTRIBUTE_KEYS)), Column('value', String(255), nullable=False), - Column('zone_id', UUID(), nullable=False), + Column('zone_id', UUID, nullable=False), UniqueConstraint('key', 'value', 'zone_id', name='unique_attributes'), ForeignKeyConstraint(['zone_id'], ['zones.id'], ondelete='CASCADE'), @@ -138,10 +138,10 @@ zone_attributes = Table('zone_attributes', metadata, recordsets = Table('recordsets', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), - Column('zone_shard', SmallInteger(), nullable=False, + Column('zone_shard', SmallInteger, nullable=False, default=lambda ctxt: default_shard(ctxt, 'zone_id')), Column('tenant_id', String(36), default=None, nullable=True), @@ -161,10 +161,10 @@ recordsets = Table('recordsets', metadata, records = Table('records', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), - Column('zone_shard', SmallInteger(), nullable=False, + Column('zone_shard', SmallInteger, nullable=False, default=lambda ctxt: default_shard(ctxt, 'zone_id')), Column('tenant_id', String(36), default=None, nullable=True), @@ -174,19 +174,19 @@ records = Table('records', metadata, Column('description', Unicode(160), nullable=True), Column('hash', String(32), nullable=False, unique=True), Column('managed', Boolean, default=False), - Column('managed_extra', Unicode(100), default=None, nullable=True), - Column('managed_plugin_type', Unicode(50), default=None, nullable=True), - Column('managed_plugin_name', Unicode(50), default=None, nullable=True), - Column('managed_resource_type', Unicode(50), default=None, nullable=True), - Column('managed_resource_region', Unicode(100), default=None, + Column('managed_extra', String(100), default=None, nullable=True), + Column('managed_plugin_type', String(50), default=None, nullable=True), + Column('managed_plugin_name', String(50), default=None, nullable=True), + Column('managed_resource_type', String(50), default=None, nullable=True), + Column('managed_resource_region', String(100), default=None, nullable=True), Column('managed_resource_id', UUID, default=None, nullable=True), - Column('managed_tenant_id', Unicode(36), default=None, nullable=True), + Column('managed_tenant_id', String(36), default=None, nullable=True), Column('status', Enum(name='resource_statuses', *RESOURCE_STATUSES), server_default='PENDING', default='PENDING', nullable=False), Column('action', Enum(name='actions', *ACTIONS), default='CREATE', server_default='CREATE', nullable=False), - Column('serial', Integer(), server_default='1', nullable=False), + Column('serial', Integer, server_default='1', nullable=False), UniqueConstraint('hash', name='unique_record'), ForeignKeyConstraint(['zone_id'], ['zones.id'], ondelete='CASCADE'), @@ -199,7 +199,7 @@ records = Table('records', metadata, tsigkeys = Table('tsigkeys', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), @@ -216,7 +216,7 @@ tsigkeys = Table('tsigkeys', metadata, blacklists = Table('blacklists', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), @@ -231,7 +231,7 @@ pools = Table('pools', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('name', String(50), nullable=False, unique=True), Column('description', Unicode(160), nullable=True), @@ -246,14 +246,14 @@ pools = Table('pools', metadata, ) pool_attributes = Table('pool_attributes', metadata, - Column('id', UUID(), default=utils.generate_uuid, primary_key=True), + Column('id', UUID, default=utils.generate_uuid, primary_key=True), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('key', String(255), nullable=False), Column('value', String(255), nullable=False), - Column('pool_id', UUID(), nullable=False), + Column('pool_id', UUID, nullable=False), ForeignKeyConstraint(['pool_id'], ['pools.id'], ondelete='CASCADE'), @@ -262,13 +262,13 @@ pool_attributes = Table('pool_attributes', metadata, ) pool_ns_records = Table('pool_ns_records', metadata, - Column('id', UUID(), default=utils.generate_uuid, primary_key=True), + Column('id', UUID, default=utils.generate_uuid, primary_key=True), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), - Column('pool_id', UUID(), nullable=False), - Column('priority', Integer(), nullable=False), + Column('pool_id', UUID, nullable=False), + Column('priority', Integer, nullable=False), Column('hostname', String(255), nullable=False), ForeignKeyConstraint(['pool_id'], ['pools.id'], ondelete='CASCADE'), @@ -279,7 +279,7 @@ pool_ns_records = Table('pool_ns_records', metadata, zone_transfer_requests = Table('zone_transfer_requests', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), @@ -300,7 +300,7 @@ zone_transfer_requests = Table('zone_transfer_requests', metadata, zone_transfer_accepts = Table('zone_transfer_accepts', metadata, Column('id', UUID, default=utils.generate_uuid, primary_key=True), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), @@ -322,13 +322,13 @@ zone_transfer_accepts = Table('zone_transfer_accepts', metadata, ) zone_tasks = Table('zone_tasks', metadata, - Column('id', UUID(), default=utils.generate_uuid, primary_key=True), + Column('id', UUID, default=utils.generate_uuid, primary_key=True), Column('created_at', DateTime, default=lambda: timeutils.utcnow()), Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()), - Column('version', Integer(), default=1, nullable=False), + Column('version', Integer, default=1, nullable=False), Column('tenant_id', String(36), default=None, nullable=True), - Column('zone_id', UUID(), nullable=True), + Column('zone_id', UUID, nullable=True), Column('task_type', Enum(name='task_types', *ZONE_TASK_TYPES), nullable=True), Column('message', String(160), nullable=True),