From 3cbbafd3c2fd321941722eea598aead1dd3d481b Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Tue, 16 Oct 2012 13:19:27 +0100 Subject: [PATCH] heat API : ValidateTemplate fix response format Fix CFN API ValidateTemplate response format, missing the ValidateTemplateResponse wrapper, required by boto to parse the response Change-Id: I89464df402346ff87041496652d2b4d39cc35fc6 Signed-off-by: Steven Hardy --- heat/api/cfn/v1/stacks.py | 3 ++- heat/engine/manager.py | 2 +- heat/tests/test_api_openstack_v1.py | 19 ++++++++----------- heat/tests/test_validate.py | 8 ++++---- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/heat/api/cfn/v1/stacks.py b/heat/api/cfn/v1/stacks.py index 2b8aa65b..6cc48961 100644 --- a/heat/api/cfn/v1/stacks.py +++ b/heat/api/cfn/v1/stacks.py @@ -379,7 +379,8 @@ class StackController(object): logger.info('validate_template') try: - return self.engine_rpcapi.validate_template(con, template) + res = self.engine_rpcapi.validate_template(con, template) + return api_utils.format_response('ValidateTemplate', res) except rpc_common.RemoteError as ex: return exception.map_remote_error(ex) diff --git a/heat/engine/manager.py b/heat/engine/manager.py index 88fea7b7..c525606c 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -217,7 +217,7 @@ class EngineManager(manager.Manager): 'Description': template.get('Description', ''), 'Parameters': parameters, } - return {'ValidateTemplateResult': result} + return result def get_template(self, context, stack_identity): """ diff --git a/heat/tests/test_api_openstack_v1.py b/heat/tests/test_api_openstack_v1.py index d7a7fa60..23115185 100644 --- a/heat/tests/test_api_openstack_v1.py +++ b/heat/tests/test_api_openstack_v1.py @@ -675,17 +675,14 @@ class StackControllerTest(unittest.TestCase): req = self._post('/validate', json.dumps(body)) engine_response = { - u'ValidateTemplateResult': { - u'Description': u'blah', - u'Parameters': [ - { - u'NoEcho': u'false', - u'ParameterKey': u'InstanceType', - u'Description': u'Instance type' - } - ] - - } + u'Description': u'blah', + u'Parameters': [ + { + u'NoEcho': u'false', + u'ParameterKey': u'InstanceType', + u'Description': u'Instance type' + } + ] } self.m.StubOutWithMock(rpc, 'call') diff --git a/heat/tests/test_validate.py b/heat/tests/test_validate.py index 38a54168..122f3dc4 100644 --- a/heat/tests/test_validate.py +++ b/heat/tests/test_validate.py @@ -267,7 +267,7 @@ class validateTest(unittest.TestCase): manager = managers.EngineManager() res = dict(manager. - validate_template(None, t)['ValidateTemplateResult']) + validate_template(None, t)) print 'res %s' % res self.assertEqual(res['Description'], 'test.') @@ -284,7 +284,7 @@ class validateTest(unittest.TestCase): manager = managers.EngineManager() res = dict(manager. - validate_template(None, t)['ValidateTemplateResult']) + validate_template(None, t)) self.assertNotEqual(res['Description'], 'Successfully validated') def test_validate_findinmap_valid(self): @@ -300,7 +300,7 @@ class validateTest(unittest.TestCase): manager = managers.EngineManager() res = dict(manager. - validate_template(None, t)['ValidateTemplateResult']) + validate_template(None, t)) self.assertEqual(res['Description'], 'test.') def test_validate_findinmap_invalid(self): @@ -316,7 +316,7 @@ class validateTest(unittest.TestCase): manager = managers.EngineManager() res = dict(manager. - validate_template(None, t)['ValidateTemplateResult']) + validate_template(None, t)) self.assertNotEqual(res['Description'], 'Successfully validated') # allows testing of the test directly, shown below -- 2.45.2