Merge "Use new template for resource update reparse"
This commit is contained in:
commit
cbcfe1cedf
@ -144,8 +144,10 @@ class StackUpdate(object):
|
||||
|
||||
# Note the new resource snippet is resolved in the context
|
||||
# of the existing stack (which is the stack being updated)
|
||||
# but with the template of the new stack (in case the update
|
||||
# is switching template implementations)
|
||||
new_snippet = new_res.t.reparse(self.existing_stack,
|
||||
self.existing_stack.t)
|
||||
self.new_stack.t)
|
||||
|
||||
return existing_res.update(new_snippet, existing_snippet,
|
||||
prev_resource=prev_res)
|
||||
|
@ -3005,6 +3005,50 @@ class StackTest(HeatTestCase):
|
||||
|
||||
self.assertEqual(resource_id, self.stack['AResource'].id)
|
||||
|
||||
def test_update_template_format_version(self):
|
||||
tmpl = {
|
||||
'HeatTemplateFormatVersion': '2012-12-12',
|
||||
'Parameters': {
|
||||
'AParam': {'Type': 'String', 'Default': 'abc'}},
|
||||
'Resources': {
|
||||
'AResource': {
|
||||
'Type': 'ResourceWithPropsType',
|
||||
'Properties': {'Foo': {'Ref': 'AParam'}}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
self.stack = parser.Stack(self.ctx, 'update_test_stack',
|
||||
template.Template(tmpl))
|
||||
self.stack.store()
|
||||
self.stack.create()
|
||||
self.assertEqual((parser.Stack.CREATE, parser.Stack.COMPLETE),
|
||||
self.stack.state)
|
||||
self.assertEqual('abc', self.stack['AResource'].properties['Foo'])
|
||||
|
||||
tmpl2 = {
|
||||
'heat_template_version': '2013-05-23',
|
||||
'parameters': {
|
||||
'AParam': {'type': 'string', 'default': 'foo'}},
|
||||
'resources': {
|
||||
'AResource': {
|
||||
'type': 'ResourceWithPropsType',
|
||||
'properties': {'Foo': {'get_param': 'AParam'}}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updated_stack = parser.Stack(self.ctx, 'updated_stack',
|
||||
template.Template(tmpl2))
|
||||
|
||||
self.m.ReplayAll()
|
||||
|
||||
self.stack.update(updated_stack)
|
||||
self.assertEqual((parser.Stack.UPDATE, parser.Stack.COMPLETE),
|
||||
self.stack.state)
|
||||
self.assertEqual('foo', self.stack['AResource'].properties['Foo'])
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_stack_create_timeout(self):
|
||||
self.m.StubOutWithMock(scheduler.DependencyTaskGroup, '__call__')
|
||||
self.m.StubOutWithMock(scheduler, 'wallclock')
|
||||
|
Loading…
Reference in New Issue
Block a user