Merge "Ensure parameter timeout_mins available in update"

This commit is contained in:
Jenkins 2014-04-07 00:36:52 +00:00 committed by Gerrit Code Review
commit 5e7344b2e3
4 changed files with 32 additions and 4 deletions

View File

@ -573,6 +573,7 @@ class Stack(collections.Mapping):
self.parameters = newstack.parameters
self.t.files = newstack.t.files
self.disable_rollback = newstack.disable_rollback
self.timeout_mins = newstack.timeout_mins
self._set_param_stackid()
try:

View File

@ -565,6 +565,8 @@ class EngineService(service.Service):
message=exception.StackResourceLimitExceeded.msg_fmt)
stack_name = current_stack.name
common_params = api.extract_args(args)
common_params.setdefault(rpc_api.PARAM_TIMEOUT,
current_stack.timeout_mins)
env = environment.Environment(params)
updated_stack = parser.Stack(cnxt, stack_name, tmpl,
env, **common_params)

View File

@ -813,7 +813,7 @@ class StackServiceCreateUpdateDeleteTest(HeatTestCase):
parser.Template(template, files=None).AndReturn(stack.t)
environment.Environment(params).AndReturn(stack.env)
parser.Stack(self.ctx, stack.name,
stack.t, stack.env).AndReturn(stack)
stack.t, stack.env, timeout_mins=60).AndReturn(stack)
self.m.StubOutWithMock(stack, 'validate')
stack.validate().AndReturn(None)
@ -858,7 +858,7 @@ class StackServiceCreateUpdateDeleteTest(HeatTestCase):
parser.Template(template, files=None).AndReturn(stack.t)
environment.Environment(params).AndReturn(stack.env)
parser.Stack(self.ctx, stack.name,
stack.t, stack.env).AndReturn(stack)
stack.t, stack.env, timeout_mins=60).AndReturn(stack)
self.m.StubOutWithMock(stack, 'validate')
stack.validate().AndReturn(None)
@ -1061,7 +1061,7 @@ class StackServiceCreateUpdateDeleteTest(HeatTestCase):
parser.Template(template, files=None).AndReturn(stack.t)
environment.Environment(params).AndReturn(stack.env)
parser.Stack(self.ctx, stack.name,
stack.t, stack.env).AndReturn(stack)
stack.t, stack.env, timeout_mins=60).AndReturn(stack)
self.m.StubOutWithMock(stack, 'validate')
stack.validate().AndRaise(exception.StackValidationFailed(
@ -1119,7 +1119,8 @@ class StackServiceCreateUpdateDeleteTest(HeatTestCase):
parser.Template(template, files=None).AndReturn(old_stack.t)
environment.Environment(params).AndReturn(old_stack.env)
parser.Stack(self.ctx, old_stack.name,
old_stack.t, old_stack.env).AndReturn(old_stack)
old_stack.t, old_stack.env,
timeout_mins=60).AndReturn(old_stack)
self.m.ReplayAll()

View File

@ -1621,6 +1621,30 @@ class StackTest(HeatTestCase):
self.assertEqual('BTemplate',
self.stack.t[self.stack.t.DESCRIPTION])
@utils.stack_delete_after
def test_update_timeout(self):
tmpl = {'HeatTemplateFormatVersion': '2012-12-12',
'Description': 'ATemplate',
'Resources': {'AResource': {'Type': 'GenericResourceType'}}}
self.stack = parser.Stack(self.ctx, 'update_test_stack',
template.Template(tmpl), timeout_mins=60)
self.stack.store()
self.stack.create()
self.assertEqual((parser.Stack.CREATE, parser.Stack.COMPLETE),
self.stack.state)
tmpl2 = {'HeatTemplateFormatVersion': '2012-12-12',
'Description': 'ATemplate',
'Resources': {'AResource': {'Type': 'GenericResourceType'}}}
updated_stack = parser.Stack(self.ctx, 'updated_stack',
template.Template(tmpl2), timeout_mins=30)
self.stack.update(updated_stack)
self.assertEqual((parser.Stack.UPDATE, parser.Stack.COMPLETE),
self.stack.state)
self.assertEqual(30, self.stack.timeout_mins)
@utils.stack_delete_after
def test_update_disable_rollback(self):
tmpl = {'Description': 'ATemplate',