Merge "Add service_type to the instances table"

This commit is contained in:
Jenkins 2013-07-15 23:46:20 +00:00 committed by Gerrit Code Review
commit 5cca5ef444
4 changed files with 45 additions and 1 deletions

View File

@ -0,0 +1,37 @@
# Copyright 2012 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.
from sqlalchemy.schema import Column
from sqlalchemy.schema import MetaData
from trove.db.sqlalchemy.migrate_repo.schema import Integer
from trove.db.sqlalchemy.migrate_repo.schema import String
from trove.db.sqlalchemy.migrate_repo.schema import Table
def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
instances = Table('instances', meta, autoload=True)
service_type = Column('service_type', String(36))
instances.create_column(service_type)
instances.update().values({'service_type': 'mysql'}).execute()
def downgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
# modify column:
instances = Table('instances', meta, autoload=True)
instances.drop_column('service_type')

View File

@ -221,6 +221,10 @@ class SimpleInstance(object):
def volume_size(self): def volume_size(self):
return self.db_info.volume_size return self.db_info.volume_size
@property
def service_type(self):
return self.db_info.service_type
class DetailInstance(SimpleInstance): class DetailInstance(SimpleInstance):
"""A detailed view of an Instnace. """A detailed view of an Instnace.
@ -448,6 +452,7 @@ class Instance(BuiltInstance):
db_info = DBInstance.create(name=name, flavor_id=flavor_id, db_info = DBInstance.create(name=name, flavor_id=flavor_id,
tenant_id=context.tenant, tenant_id=context.tenant,
volume_size=volume_size, volume_size=volume_size,
service_type=service_type,
task_status=InstanceTasks.BUILDING) task_status=InstanceTasks.BUILDING)
LOG.debug(_("Tenant %s created new Trove instance %s...") LOG.debug(_("Tenant %s created new Trove instance %s...")
% (context.tenant, db_info.id)) % (context.tenant, db_info.id))
@ -675,7 +680,7 @@ class DBInstance(dbmodels.DatabaseModelBase):
_data_fields = ['name', 'created', 'compute_instance_id', _data_fields = ['name', 'created', 'compute_instance_id',
'task_id', 'task_description', 'task_start_time', 'task_id', 'task_description', 'task_start_time',
'volume_id', 'deleted', 'tenant_id'] 'volume_id', 'deleted', 'tenant_id', 'service_type']
def __init__(self, task_status, **kwargs): def __init__(self, task_status, **kwargs):
kwargs["task_id"] = task_status.code kwargs["task_id"] = task_status.code

View File

@ -50,6 +50,7 @@ class ResizeTestBase(TestCase):
flavor_id=OLD_FLAVOR_ID, flavor_id=OLD_FLAVOR_ID,
tenant_id=999, tenant_id=999,
volume_size=None, volume_size=None,
service_type='mysql',
task_status=InstanceTasks.RESIZING) task_status=InstanceTasks.RESIZING)
self.server = self.mock.CreateMock(Server) self.server = self.mock.CreateMock(Server)
self.instance = models.BuiltInstanceTasks(context, self.instance = models.BuiltInstanceTasks(context,

View File

@ -50,6 +50,7 @@ class MgmtInstanceBase(object):
flavor_id=1, flavor_id=1,
tenant_id=self.tenant_id, tenant_id=self.tenant_id,
volume_size=None, volume_size=None,
service_type='mysql',
task_status=InstanceTasks.NONE) task_status=InstanceTasks.NONE)
self.server = self.mock.CreateMock(Server) self.server = self.mock.CreateMock(Server)
self.instance = imodels.Instance(self.context, self.instance = imodels.Instance(self.context,