Add a column for uuid to aggregate_hosts

Related to blueprint generic-resource-pools

Change-Id: Ia834f9597c72cdd0bd244f0929fc137e65433335
This commit is contained in:
Dan Smith 2016-02-19 10:55:14 -08:00
parent 9386801ce2
commit 8f1201676b
3 changed files with 38 additions and 1 deletions

View File

@ -0,0 +1,32 @@
# 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.
"""Database migrations for resource-providers."""
from sqlalchemy import Column
from sqlalchemy import Index
from sqlalchemy import MetaData
from sqlalchemy import String
from sqlalchemy import Table
def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
for table_prefix in ('', 'shadow_'):
uuid_column = Column('uuid', String(36))
aggregates = Table('%saggregates' % table_prefix, meta)
if not hasattr(aggregates.c, 'uuid'):
aggregates.create_column(uuid_column)
if not table_prefix:
index = Index('aggregate_uuid_idx', aggregates.c.uuid)
index.create()

View File

@ -1103,8 +1103,9 @@ class AggregateMetadata(BASE, NovaBase, models.SoftDeleteMixin):
class Aggregate(BASE, NovaBase, models.SoftDeleteMixin):
"""Represents a cluster of hosts that exists in this zone."""
__tablename__ = 'aggregates'
__table_args__ = ()
__table_args__ = (Index('aggregate_uuid_idx', 'uuid'),)
id = Column(Integer, primary_key=True, autoincrement=True)
uuid = Column(String(36))
name = Column(String(255))
_hosts = orm.relationship(AggregateHost,
primaryjoin='and_('

View File

@ -851,6 +851,10 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync,
self.assertColumnExists(engine, 'compute_nodes',
'disk_allocation_ratio')
def _check_317(self, engine, data):
self.assertColumnExists(engine, 'aggregates', 'uuid')
self.assertColumnExists(engine, 'shadow_aggregates', 'uuid')
class TestNovaMigrationsSQLite(NovaMigrationsCheckers,
test_base.DbTestCase,