summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorAlex Meade <alex.meade@rackspace.com>2011-07-17 14:50:44 -0400
committerAlex Meade <alex.meade@rackspace.com>2011-07-17 14:50:44 -0400
commit712493f65415a7a5fc727f6b316c66ef90f1cad5 (patch)
tree6c3c1e7f5e1590d4b66b67667ffe1abd55c5feee /nova/api
parentc538d38d890e74382e928d225e8abdc57da9760e (diff)
added index to servers xml serializer
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/servers.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index 1a85fda58..8d59c8626 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -661,6 +661,16 @@ class ServerXMLSerializer(wsgi.XMLDictSerializer):
if 'progress' in server:
node.setAttribute('progress', str(server['progress']))
+ def _server_to_xml(self, xml_doc, server):
+ server_node = xml_doc.createElement('server')
+ server_node.setAttribute('id', str(server['id']))
+ server_node.setAttribute('name', server['name'])
+ link_nodes = self._create_link_nodes(xml_doc,
+ server['links'])
+ for link_node in link_nodes:
+ server_node.appendChild(link_node)
+ return server_node
+
def _server_to_xml_detailed(self, xml_doc, server):
server_node = xml_doc.createElement('server')
self._add_server_attributes(server_node, server)
@@ -693,6 +703,25 @@ class ServerXMLSerializer(wsgi.XMLDictSerializer):
return server_node
+ def _server_list_to_xml(self, xml_doc, servers, detailed):
+ container_node = xml_doc.createElement('servers')
+ if detailed:
+ server_to_xml = self._server_to_xml_detailed
+ else:
+ server_to_xml = self._server_to_xml
+
+ for server in servers:
+ item_node = server_to_xml(xml_doc, server)
+ container_node.appendChild(item_node)
+ return container_node
+
+ def index(self, servers_dict):
+ xml_doc = minidom.Document()
+ node = self._server_list_to_xml(xml_doc,
+ servers_dict['servers'],
+ detailed=False)
+ return self.to_xml_string(node, True)
+
def show(self, server_dict):
xml_doc = minidom.Document()
node = self._server_to_xml_detailed(xml_doc,