From 2ba27f66cf14e1cb111ebc93d094c6e77c55245f Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Thu, 27 Sep 2012 13:59:29 -0700 Subject: 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 --- nova/api/openstack/compute/contrib/cloudpipe.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'nova/api') 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) -- cgit