]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
heat API: bugfix to XMLResponseSerializer
authorSteven Hardy <shardy@redhat.com>
Mon, 9 Jul 2012 16:54:59 +0000 (17:54 +0100)
committerSteven Hardy <shardy@redhat.com>
Mon, 9 Jul 2012 17:33:30 +0000 (18:33 +0100)
JSON wrapped in XML responses needs to be serialized
with json.dumps not str() or quotes get mangled and
json.loads fails to parse the result

Change-Id: I65c6ddf0be383e71bf8d05e7293b514269a27213
Signed-off-by: Steven Hardy <shardy@redhat.com>
heat/common/wsgi.py

index 07924f93dbe0751176d9bbba871a3b1e8d4dfab6..0118f14f06492a8cd65fe7d5a8748bbfc3c0155d 100644 (file)
@@ -455,7 +455,12 @@ class XMLResponseSerializer(object):
                 subelement = etree.SubElement(element, key)
                 if key in JSON_ONLY_KEYS:
                     if value:
-                        subelement.text = str(value)
+                        # Need to use json.dumps for the JSON inside XML
+                        # otherwise quotes get mangled and json.loads breaks
+                        try:
+                            subelement.text = json.dumps(value)
+                        except:
+                            subelement.text = str(value)
                 else:
                     self.object_to_element(value, subelement)
         else: