From 0816b2963c4c334efe65f2a0cf2748ae6bc708c0 Mon Sep 17 00:00:00 2001 From: Zane Bitter Date: Fri, 19 Oct 2012 17:14:12 +0200 Subject: [PATCH] ReST API: Format output as JSON Eventually, both XML and JSON will be supported, but for now make the output JSON, the same as the input. Change-Id: If0f00b182c27616a9a6f08b468d732c718b7635a Signed-off-by: Zane Bitter --- heat/api/openstack/v1/stacks.py | 11 +++++++---- heat/tests/test_api_openstack_v1.py | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/heat/api/openstack/v1/stacks.py b/heat/api/openstack/v1/stacks.py index 3e29dbd8..59e42672 100644 --- a/heat/api/openstack/v1/stacks.py +++ b/heat/api/openstack/v1/stacks.py @@ -176,8 +176,9 @@ def format_stack(req, stack, keys=[]): def transform(key, value): if key == engine_api.STACK_ID: return 'URL', stack_url(req, value) - elif key == engine_api.STACK_PARAMETERS: - return key, json.dumps(value) + # TODO(zaneb): ensure parameters can be formatted for XML + #elif key == engine_api.STACK_PARAMETERS: + # return key, json.dumps(value) return key, value @@ -308,7 +309,7 @@ class StackController(object): raise exc.HTTPNotFound() # TODO(zaneb): always set Content-type to application/json - return json.dumps(templ) + return templ @identified_stack def update(self, req, identity, body): @@ -375,5 +376,7 @@ def create_resource(options): """ Stacks resource factory method. """ + # TODO(zaneb) handle XML based on Content-type/Accepts deserializer = wsgi.JSONRequestDeserializer() - return wsgi.Resource(StackController(options), deserializer) + serializer = wsgi.JSONResponseSerializer() + return wsgi.Resource(StackController(options), deserializer, serializer) diff --git a/heat/tests/test_api_openstack_v1.py b/heat/tests/test_api_openstack_v1.py index b5a52075..7ac056a5 100644 --- a/heat/tests/test_api_openstack_v1.py +++ b/heat/tests/test_api_openstack_v1.py @@ -474,7 +474,7 @@ class StackControllerTest(unittest.TestCase): 'stack': { 'URL': self._url(identity), u'updated_time': u'2012-07-09T09:13:11Z', - u'parameters': json.dumps(parameters), + u'parameters': parameters, u'outputs': outputs, u'description': u'blah', u'stack_status_reason': u'Stack successfully created', @@ -527,7 +527,7 @@ class StackControllerTest(unittest.TestCase): stack_name=identity.stack_name, stack_id=identity.stack_id) - self.assertEqual(response, json.dumps(template)) + self.assertEqual(response, template) self.m.VerifyAll() def test_get_template_err_rpcerr(self): -- 2.45.2