]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
heat API : Escape JSON TemplateBody XML serialization
authorSteven Hardy <shardy@redhat.com>
Mon, 25 Jun 2012 09:16:06 +0000 (10:16 +0100)
committerSteven Hardy <shardy@redhat.com>
Mon, 25 Jun 2012 09:16:06 +0000 (10:16 +0100)
AWS API defines JSON templates returned inside XML "wrapper"
this change escapes XML serialization of TemplateBody content
ref #152

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

index 992870a72d9128a6cd4b0170a01b9d72e645eb55..24d0d0cfce1a4871546ae3fc3cdff168b7618065 100644 (file)
@@ -446,7 +446,13 @@ class XMLResponseSerializer(object):
         elif isinstance(obj, dict):
             for key, value in obj.items():
                 subelement = etree.SubElement(element, key)
-                self.object_to_element(value, subelement)
+                if key == "TemplateBody":
+                    # Escape serialization for TemplateBody key, as
+                    # AWS api defines JSON-template-inside-XML format
+                    # ref to GetTemplate AWS CFN API docs
+                    subelement.text = str(value)
+                else:
+                    self.object_to_element(value, subelement)
         else:
             element.text = str(obj)