summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorNaveed Massjouni <naveedm9@gmail.com>2011-07-21 22:35:26 -0400
committerNaveed Massjouni <naveedm9@gmail.com>2011-07-21 22:35:26 -0400
commit16aa079b933a8788c926745e0794d85558d442a8 (patch)
tree7c0f165728e2d80860b6cf2db1360c2e67f15a51 /nova/api
parentaf5c549d7795fcf9fdcb7d8e9193aa985f121fc6 (diff)
Added xml serialization for GET => /extensions. Added corresponding tests.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/extensions.py43
1 files changed, 23 insertions, 20 deletions
diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py
index e500e51fa..ad03a6ac9 100644
--- a/nova/api/openstack/extensions.py
+++ b/nova/api/openstack/extensions.py
@@ -470,28 +470,31 @@ class ResourceExtension(object):
class ExtensionsXMLSerializer(wsgi.XMLDictSerializer):
- def _add_extension_attributes(self, node, extension):
- node.setAttribute('name', extension['name'])
- node.setAttribute('namespace', extension['namespace'])
- node.setAttribute('alias', extension['alias'])
- node.setAttribute('updated', extension['updated'])
-
- def show(self, ext_dict):
- root = ElementTree.Element('extension');
- extension = ext_dict['extension']
- root.set('xmlns', wsgi.XMLNS_V11)
- root.set('xmlns:atom', wsgi.XMLNS_ATOM)
- root.set('name', extension['name'])
- root.set('namespace', extension['namespace'])
- root.set('alias', extension['alias'])
- root.set('updated', extension['updated'])
+ 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)
+ 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.text = extension['description']
- root.append(desc)
- for link in extension.get('links', []):
+ desc.text = ext_dict['description']
+ ext_elem.append(desc)
+ for link in ext_dict.get('links', []):
elem = ElementTree.Element('atom:link');
elem.set('rel', link['rel'])
elem.set('href', link['href'])
elem.set('type', link['type'])
- root.append(elem)
- return ElementTree.tostring(root)
+ 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')