This commit is contained in:
tengqm 2015-03-11 21:36:10 +08:00
parent a3670ae764
commit c2777769a6
7 changed files with 14 additions and 19 deletions

View File

@ -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),

View File

@ -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)

View File

@ -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)

View File

@ -196,7 +196,7 @@ class EngineService(service.Service):
kwargs = {
'spec': spec,
'permission': perm,
'tags': tags
'tags': tags,
}
profile = plugin(type, name, **kwargs)
profile.validate()

View File

@ -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

View File

@ -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,

View File

@ -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],