From c2777769a6541ef5fbf1ed0eafa0c51c97036953 Mon Sep 17 00:00:00 2001 From: tengqm Date: Wed, 11 Mar 2015 21:36:10 +0800 Subject: [PATCH] Undo commit ee6b7a8b --- .../migrate_repo/versions/001_first_version.py | 2 +- senlin/db/sqlalchemy/models.py | 2 +- senlin/drivers/heat_v1.py | 12 +++--------- senlin/engine/service.py | 2 +- senlin/openstack/orchestration/v1/stack.py | 2 ++ senlin/profiles/base.py | 12 ++++++------ senlin/profiles/os/heat/stack.py | 1 - 7 files changed, 14 insertions(+), 19 deletions(-) diff --git a/senlin/db/sqlalchemy/migrate_repo/versions/001_first_version.py b/senlin/db/sqlalchemy/migrate_repo/versions/001_first_version.py index 6eae6bcd8..0580f4ec3 100644 --- a/senlin/db/sqlalchemy/migrate_repo/versions/001_first_version.py +++ b/senlin/db/sqlalchemy/migrate_repo/versions/001_first_version.py @@ -25,7 +25,7 @@ def upgrade(migrate_engine): primary_key=True, nullable=False), sqlalchemy.Column('name', sqlalchemy.String(255)), sqlalchemy.Column('type', sqlalchemy.String(255)), - sqlalchemy.Column('identifier', sqlalchemy.String(255)), + sqlalchemy.Column('context', types.Dict), sqlalchemy.Column('spec', types.Dict), sqlalchemy.Column('permission', sqlalchemy.String(32)), sqlalchemy.Column('tags', types.Dict), diff --git a/senlin/db/sqlalchemy/models.py b/senlin/db/sqlalchemy/models.py index 0f6913e79..fe60de788 100644 --- a/senlin/db/sqlalchemy/models.py +++ b/senlin/db/sqlalchemy/models.py @@ -218,8 +218,8 @@ class Profile(BASE, SenlinBase, SoftDelete): id = sqlalchemy.Column('id', sqlalchemy.String(36), primary_key=True, default=lambda: str(uuid.uuid4())) name = sqlalchemy.Column(sqlalchemy.String(255)) - identifier = sqlalchemy.Column(sqlalchemy.String(255)) type = sqlalchemy.Column(sqlalchemy.String(255)) + context = sqlalchemy.Column(types.Dict) spec = sqlalchemy.Column(types.Dict) permission = sqlalchemy.Column(sqlalchemy.String(32)) tags = sqlalchemy.Column(types.Dict) diff --git a/senlin/drivers/heat_v1.py b/senlin/drivers/heat_v1.py index 84f845109..b791cf2c4 100644 --- a/senlin/drivers/heat_v1.py +++ b/senlin/drivers/heat_v1.py @@ -12,8 +12,7 @@ from senlin.common import sdk from senlin.drivers import base -from openstack.auth import service_filter -from openstack.orchestration import orchestration_service +from openstack import user_preference from senlin.openstack.orchestration.v1 import stack @@ -21,18 +20,13 @@ class HeatClient(base.DriverBase): '''Heat V1 driver.''' def __init__(self, context): + # TODO(Qi): construct a proper user_preference object and pass it + # to the create_connection call conn = sdk.create_connection(context) self.session = conn.session self.auth = self.session.authenticator def stack_create(self, **params): - if params["identifier"]: - default = orchestration_service.OrchestrationService() - preference = service_filter.ServiceFilter('orchestration', region=params["identifier"]) - service = preference.join(default) - else: - service = orchestration_service.OrchestrationService() - stack.Stack.service = service obj = stack.Stack.new(**params) try: return obj.create(self.session) diff --git a/senlin/engine/service.py b/senlin/engine/service.py index 8d675ceae..dde31c35c 100644 --- a/senlin/engine/service.py +++ b/senlin/engine/service.py @@ -196,7 +196,7 @@ class EngineService(service.Service): kwargs = { 'spec': spec, 'permission': perm, - 'tags': tags + 'tags': tags, } profile = plugin(type, name, **kwargs) profile.validate() diff --git a/senlin/openstack/orchestration/v1/stack.py b/senlin/openstack/orchestration/v1/stack.py index 2f98728e8..631f747d0 100644 --- a/senlin/openstack/orchestration/v1/stack.py +++ b/senlin/openstack/orchestration/v1/stack.py @@ -12,6 +12,7 @@ from openstack import exceptions +from openstack.orchestration import orchestration_service from openstack import resource from openstack import utils @@ -20,6 +21,7 @@ class Stack(resource.Resource): resource_key = 'stack' resources_key = 'stacks' base_path = '/stacks' + service = orchestration_service.OrchestrationService() # capabilities allow_list = True diff --git a/senlin/profiles/base.py b/senlin/profiles/base.py index 8c9bf62d5..36efdfd3a 100644 --- a/senlin/profiles/base.py +++ b/senlin/profiles/base.py @@ -14,6 +14,7 @@ import datetime from oslo_log import log as logging +from senlin.common import context from senlin.common import exception from senlin.common import schema from senlin.db import api as db_api @@ -41,7 +42,6 @@ class Profile(object): self.name = name self.type = type_name self.id = kwargs.get('id', None) - self.identifier = kwargs.get('identifier', None) self.context = kwargs.get('context', None) @@ -55,7 +55,7 @@ class Profile(object): self.deleted_time = kwargs.get('deleted_time', None) @classmethod - def from_db_record(cls, context, record): + def from_db_record(cls, record): '''Construct a profile object from database record. :param context: the context used for DB operations. @@ -64,13 +64,12 @@ class Profile(object): kwargs = { 'id': record.id, 'spec': record.spec, + 'context': context.RequestContext.from_dict(record.context), 'permission': record.permission, 'tags': record.tags, - 'identifier': record.identifier, 'created_time': record.created_time, 'updated_time': record.updated_time, 'deleted_time': record.deleted_time, - 'context': context, } return cls(record.type, record.name, **kwargs) @@ -83,7 +82,7 @@ class Profile(object): if profile is None: raise exception.ProfileNotFound(profile=profile_id) - return cls.from_db_record(context, profile) + return cls.from_db_record(profile) @classmethod def load_all(cls, context, limit=None, sort_keys=None, marker=None, @@ -97,7 +96,7 @@ class Profile(object): show_deleted=show_deleted) for record in records: - yield cls.from_db_record(context, record) + yield cls.from_db_record(record) @classmethod def delete(cls, context, profile_id): @@ -110,6 +109,7 @@ class Profile(object): values = { 'name': self.name, 'type': self.type, + 'context': self.context.to_dict(), 'spec': self.spec, 'permission': self.permission, 'tags': self.tags, diff --git a/senlin/profiles/os/heat/stack.py b/senlin/profiles/os/heat/stack.py index 13d874d83..cbe2a26fc 100644 --- a/senlin/profiles/os/heat/stack.py +++ b/senlin/profiles/os/heat/stack.py @@ -147,7 +147,6 @@ class StackProfile(base.Profile): kwargs = { 'stack_name': obj.name, - 'identifier': self.identifier, 'template': self.spec_data[self.TEMPLATE], 'timeout_mins': self.spec_data[self.TIMEOUT], 'disable_rollback': self.spec_data[self.DISABLE_ROLLBACK],