]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
ReST API: Format output as JSON
authorZane Bitter <zbitter@redhat.com>
Fri, 19 Oct 2012 15:14:12 +0000 (17:14 +0200)
committerZane Bitter <zbitter@redhat.com>
Fri, 19 Oct 2012 15:34:38 +0000 (17:34 +0200)
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 <zbitter@redhat.com>
heat/api/openstack/v1/stacks.py
heat/tests/test_api_openstack_v1.py

index 3e29dbd89da8045253d0bb979ad7011a6c9dda66..59e42672f1351d496aa0667d8d1d3caef8d37520 100644 (file)
@@ -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)
index b5a52075ff51f1ad4d249a7dbce038ba9604b654..7ac056a5f7da7a4ca1b018a0bb6d4a113d37c011 100644 (file)
@@ -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):