summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorDan Smith <danms@us.ibm.com>2012-09-27 13:59:29 -0700
committerMauro S. M. Rodrigues <maurosr@linux.vnet.ibm.com>2012-09-28 10:00:51 -0400
commit2ba27f66cf14e1cb111ebc93d094c6e77c55245f (patch)
tree1f1564de2bcad83ae74ffe3437b64370ffa0e959 /nova/api
parent0d565de78b5cc8ecdd18e10444ec731db46b48eb (diff)
downloadnova-2ba27f66cf14e1cb111ebc93d094c6e77c55245f.tar.gz
nova-2ba27f66cf14e1cb111ebc93d094c6e77c55245f.tar.xz
nova-2ba27f66cf14e1cb111ebc93d094c6e77c55245f.zip
Fix CloudPipe extension XML serialization
It is completely broken right now and this fixes it to properly traverse a list of cloudpipe instance dictionaries, resulting in XML output that matches the API spec. Fixes bug: 1056242 Change-Id: Ic768afeaa76d776fd55a4f618d14fa41ed4c8a63
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/compute/contrib/cloudpipe.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/nova/api/openstack/compute/contrib/cloudpipe.py b/nova/api/openstack/compute/contrib/cloudpipe.py
index f38a1b12a..48b641348 100644
--- a/nova/api/openstack/compute/contrib/cloudpipe.py
+++ b/nova/api/openstack/compute/contrib/cloudpipe.py
@@ -37,15 +37,21 @@ authorize = extensions.extension_authorizer('compute', 'cloudpipe')
class CloudpipeTemplate(xmlutil.TemplateBuilder):
def construct(self):
- return xmlutil.MasterTemplate(xmlutil.make_flat_dict('cloudpipe'), 1)
+ root = xmlutil.TemplateElement('cloudpipe')
+ elem = xmlutil.SubTemplateElement(root, 'instance_id',
+ selector='instance_id')
+ elem.text = str
+ return xmlutil.MasterTemplate(root, 1)
class CloudpipesTemplate(xmlutil.TemplateBuilder):
def construct(self):
root = xmlutil.TemplateElement('cloudpipes')
- elem = xmlutil.make_flat_dict('cloudpipe', selector='cloudpipes',
- subselector='cloudpipe')
- root.append(elem)
+ elem1 = xmlutil.SubTemplateElement(root, 'cloudpipe',
+ selector='cloudpipes')
+ elem2 = xmlutil.SubTemplateElement(elem1, xmlutil.Selector(0),
+ selector=xmlutil.get_items)
+ elem2.text = 1
return xmlutil.MasterTemplate(root, 1)