summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorNaveed Massjouni <naveedm9@gmail.com>2011-07-21 23:36:40 -0400
committerNaveed Massjouni <naveedm9@gmail.com>2011-07-21 23:36:40 -0400
commitc83546c0c9d077fb69caf1d782e8cb420e399a20 (patch)
tree859cd88a731faffe4784ddebbc212cb1aabf5365 /nova/api
parent16aa079b933a8788c926745e0794d85558d442a8 (diff)
Correctly add xml namespaces to extensions xml.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/extensions.py33
-rw-r--r--nova/api/openstack/wsgi.py1
2 files changed, 19 insertions, 15 deletions
diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py
index ad03a6ac9..cc889703e 100644
--- a/nova/api/openstack/extensions.py
+++ b/nova/api/openstack/extensions.py
@@ -470,31 +470,36 @@ class ResourceExtension(object):
class ExtensionsXMLSerializer(wsgi.XMLDictSerializer):
+ def show(self, ext_dict):
+ ext = self._create_ext_elem(ext_dict['extension'])
+ return self._to_xml(ext)
+
+ def index(self, exts_dict):
+ exts = ElementTree.Element('extensions')
+ for ext_dict in exts_dict['extensions']:
+ exts.append(self._create_ext_elem(ext_dict))
+ return self._to_xml(exts)
+
def _create_ext_elem(self, ext_dict):
- ext_elem = ElementTree.Element('extension');
- ext_elem.set('xmlns', wsgi.XMLNS_V11)
- ext_elem.set('xmlns:atom', wsgi.XMLNS_ATOM)
+ """Create an extension xml element from a dict."""
+ ext_elem = ElementTree.Element('extension')
ext_elem.set('name', ext_dict['name'])
ext_elem.set('namespace', ext_dict['namespace'])
ext_elem.set('alias', ext_dict['alias'])
ext_elem.set('updated', ext_dict['updated'])
- desc = ElementTree.Element('description');
+ desc = ElementTree.Element('description')
desc.text = ext_dict['description']
ext_elem.append(desc)
for link in ext_dict.get('links', []):
- elem = ElementTree.Element('atom:link');
+ elem = ElementTree.Element('atom:link')
elem.set('rel', link['rel'])
elem.set('href', link['href'])
elem.set('type', link['type'])
ext_elem.append(elem)
return ext_elem
- def show(self, ext_dict):
- ext = self._create_ext_elem(ext_dict['extension'])
- return ElementTree.tostring(ext, encoding='UTF-8')
-
- def index(self, exts_dict):
- exts = ElementTree.Element('extensions');
- for ext_dict in exts_dict['extensions']:
- exts.append(self._create_ext_elem(ext_dict))
- return ElementTree.tostring(exts, encoding='UTF-8')
+ def _to_xml(self, root):
+ """Convert the xml tree object to an xml string."""
+ root.set('xmlns', wsgi.XMLNS_V11)
+ root.set('xmlns:atom', wsgi.XMLNS_ATOM)
+ return ElementTree.tostring(root, encoding='UTF-8')
diff --git a/nova/api/openstack/wsgi.py b/nova/api/openstack/wsgi.py
index d9993282f..ee1572c4f 100644
--- a/nova/api/openstack/wsgi.py
+++ b/nova/api/openstack/wsgi.py
@@ -355,7 +355,6 @@ class XMLDictSerializer(DictSerializer):
link_node.setAttribute('href', link['href'])
if link.get('type'):
link_node.setAttribute('type', link['type'])
-
link_nodes.append(link_node)
return link_nodes