From dd3d21ee9e8b3539584d8921c15284d66c46d7c7 Mon Sep 17 00:00:00 2001 From: Chris Alfonso Date: Wed, 9 May 2012 09:45:15 -0400 Subject: [PATCH] Fix stack creation - CREATE_FAILED issue The stack creation call to validate the stack was resetting the stack template attribute. I've made a copy of the stack purely for validation purposes. --- heat/engine/manager.py | 6 +++++- heat/tests/test_resources.py | 3 --- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/heat/engine/manager.py b/heat/engine/manager.py index 74cecaa41d..9c5499a42d 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -126,7 +126,11 @@ class EngineManager(manager.Manager): metadata_server = config.FLAGS.heat_metadata_server_url stack = parser.Stack(stack_name, template, 0, params, metadata_server=metadata_server) - response = stack.validate() + # We don't want to reset the stack template, so we are making + # an instance just for validation. + stack_validator = parser.Stack(stack_name, template, 0, params, + metadata_server=metadata_server) + response = stack_validator.validate() if 'Malformed Query Response' in response['ValidateTemplateResult']['Description']: return response['ValidateTemplateResult']['Description'] rt = {} diff --git a/heat/tests/test_resources.py b/heat/tests/test_resources.py index 91358527b4..dc5f7f10bd 100644 --- a/heat/tests/test_resources.py +++ b/heat/tests/test_resources.py @@ -64,7 +64,6 @@ class instancesTest(unittest.TestCase): # need to resolve the template functions server_userdata = instance._build_userdata(\ instance.t['Properties']['UserData']) - self.m.StubOutWithMock(self.fc.servers, 'create') self.fc.servers.create(image=1, flavor=1, key_name='test',\ name='test_resource_name', security_groups=None,\ @@ -115,7 +114,6 @@ class instancesTest(unittest.TestCase): # need to resolve the template functions server_userdata = instance._build_userdata(\ instance.t['Properties']['UserData']) - self.m.StubOutWithMock(self.fc.servers, 'create') self.fc.servers.create(image=1, flavor=1, key_name='test',\ name='test_resource_name', security_groups=None,\ @@ -128,7 +126,6 @@ class instancesTest(unittest.TestCase): instance.create() # this makes sure the auto increment worked on instance creation - assert(instance.id > 0) instance.delete()