Add missing versioned mechanism to Stack object
Few object methods misses _from_db_object. To enable it to make schema valid, we need to fix that. Change-Id: I2e5ff22cd40be56ebc5f3a7095887be773ddb809 Closes-Bug: #1431353
This commit is contained in:
parent
9727d00f9b
commit
9b4511d0a0
|
@ -66,7 +66,7 @@ class Stack(
|
|||
objects.raw_template.RawTemplate.get_by_id(
|
||||
context, db_stack['raw_template_id']))
|
||||
else:
|
||||
stack[field] = db_stack[field]
|
||||
stack[field] = db_stack.__dict__.get(field)
|
||||
stack._context = context
|
||||
stack.obj_reset_changes()
|
||||
return stack
|
||||
|
@ -81,20 +81,45 @@ class Stack(
|
|||
|
||||
@classmethod
|
||||
def get_by_name_and_owner_id(cls, context, stack_name, owner_id):
|
||||
return db_api.stack_get_by_name_and_owner_id(context, stack_name,
|
||||
owner_id)
|
||||
db_stack = db_api.stack_get_by_name_and_owner_id(
|
||||
context,
|
||||
stack_name,
|
||||
owner_id
|
||||
)
|
||||
if not db_stack:
|
||||
return db_stack
|
||||
stack = cls._from_db_object(context, cls(context), db_stack)
|
||||
return stack
|
||||
|
||||
@classmethod
|
||||
def get_by_name(cls, context, stack_name):
|
||||
return db_api.stack_get_by_name(context, stack_name)
|
||||
db_stack = db_api.stack_get_by_name(context, stack_name)
|
||||
if not db_stack:
|
||||
return db_stack
|
||||
stack = cls._from_db_object(context, cls(context), db_stack)
|
||||
return stack
|
||||
|
||||
@classmethod
|
||||
def get_all(cls, context, *args, **kwargs):
|
||||
return db_api.stack_get_all(context, *args, **kwargs)
|
||||
db_stacks = db_api.stack_get_all(context, *args, **kwargs)
|
||||
stacks = map(
|
||||
lambda db_stack: cls._from_db_object(
|
||||
context,
|
||||
cls(context),
|
||||
db_stack),
|
||||
db_stacks)
|
||||
return stacks
|
||||
|
||||
@classmethod
|
||||
def get_all_by_owner_id(cls, context, owner_id):
|
||||
return db_api.stack_get_all_by_owner_id(context, owner_id)
|
||||
db_stacks = db_api.stack_get_all_by_owner_id(context, owner_id)
|
||||
stacks = map(
|
||||
lambda db_stack: cls._from_db_object(
|
||||
context,
|
||||
cls(context),
|
||||
db_stack),
|
||||
db_stacks)
|
||||
return stacks
|
||||
|
||||
@classmethod
|
||||
def count_all(cls, context, **kwargs):
|
||||
|
|
|
@ -1682,7 +1682,7 @@ class StackServiceTest(common.HeatTestCase):
|
|||
'added in new version'))
|
||||
|
||||
@mock.patch.object(service_stack_watch.StackWatch, 'start_watch_task')
|
||||
@mock.patch.object(service.db_api, 'stack_get_all')
|
||||
@mock.patch.object(service.stack_object.Stack, 'get_all')
|
||||
@mock.patch.object(service.service.Service, 'start')
|
||||
def test_start_watches_all_stacks(self, mock_super_start, mock_get_all,
|
||||
start_watch_task):
|
||||
|
@ -3077,7 +3077,7 @@ class StackServiceTest(common.HeatTestCase):
|
|||
self._preview_stack)
|
||||
self.assertEqual(exception.StackValidationFailed, ex.exc_info[0])
|
||||
|
||||
@mock.patch.object(service.db_api, 'stack_get_by_name')
|
||||
@mock.patch.object(service.stack_object.Stack, 'get_by_name')
|
||||
def test_validate_new_stack_checks_existing_stack(self, mock_stack_get):
|
||||
mock_stack_get.return_value = 'existing_db_stack'
|
||||
tmpl = templatem.Template(
|
||||
|
|
Loading…
Reference in New Issue