summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorAlex Meade <alex.meade@rackspace.com>2011-08-25 21:50:18 -0400
committerAlex Meade <alex.meade@rackspace.com>2011-08-25 21:50:18 -0400
commit39169914aa43a911735267577e60bc977bcd5117 (patch)
tree6212a7ac351696d72e067cb56c2358fe33230ab9 /nova/api
parentd51a2ab1796417cf591ac3acc884566a18f120c7 (diff)
Updated server and image XML serializers to take advantage of the addresses and metadata serializers
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/common.py9
-rw-r--r--nova/api/openstack/images.py10
-rw-r--r--nova/api/openstack/ips.py8
-rw-r--r--nova/api/openstack/servers.py20
4 files changed, 21 insertions, 26 deletions
diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py
index 1d1c56459..c3379cd11 100644
--- a/nova/api/openstack/common.py
+++ b/nova/api/openstack/common.py
@@ -290,7 +290,7 @@ class MetadataXMLSerializer(wsgi.XMLDictSerializer):
def __init__(self, xmlns=wsgi.XMLNS_V11):
super(MetadataXMLSerializer, self).__init__(xmlns=xmlns)
- def _populate_metadata(self, metadata_elem, meta_dict):
+ def populate_metadata(self, metadata_elem, meta_dict):
for (key, value) in meta_dict.items():
elem = etree.SubElement(metadata_elem, 'meta')
elem.set('key', str(key))
@@ -301,21 +301,20 @@ class MetadataXMLSerializer(wsgi.XMLDictSerializer):
(key, value) = meta_item_dict.items()[0]
meta_elem.set('key', str(key))
meta_elem.text = value
- return meta_elem
def index(self, metadata_dict):
metadata = etree.Element('metadata', nsmap=self.NSMAP)
- self._populate_metadata(metadata, metadata_dict.get('metadata', {}))
+ self.populate_metadata(metadata, metadata_dict.get('metadata', {}))
return self._to_xml(metadata)
def create(self, metadata_dict):
metadata = etree.Element('metadata', nsmap=self.NSMAP)
- self._populate_metadata(metadata, metadata_dict.get('metadata', {}))
+ self.populate_metadata(metadata, metadata_dict.get('metadata', {}))
return self._to_xml(metadata)
def update_all(self, metadata_dict):
metadata = etree.Element('metadata', nsmap=self.NSMAP)
- self._populate_metadata(metadata, metadata_dict.get('metadata', {}))
+ self.populate_metadata(metadata, metadata_dict.get('metadata', {}))
return self._to_xml(metadata)
def show(self, meta_item_dict):
diff --git a/nova/api/openstack/images.py b/nova/api/openstack/images.py
index 48c53d6d5..893674f21 100644
--- a/nova/api/openstack/images.py
+++ b/nova/api/openstack/images.py
@@ -209,13 +209,13 @@ class ImageXMLSerializer(wsgi.XMLDictSerializer):
NSMAP = {None: xmlutil.XMLNS_V11, 'atom': xmlutil.XMLNS_ATOM}
+ def __init__(self):
+ self.metadata_serializer = common.MetadataXMLSerializer()
+
def _create_metadata_node(self, metadata_dict):
metadata_elem = etree.Element('metadata', nsmap=self.NSMAP)
- for (key, value) in metadata_dict.items():
- elem = etree.SubElement(metadata_elem, 'meta')
- elem.set('key', key)
- elem.text = value
-
+ self.metadata_serializer.populate_metadata(metadata_elem,
+ metadata_dict)
return metadata_elem
def _create_server_node(self, server_dict):
diff --git a/nova/api/openstack/ips.py b/nova/api/openstack/ips.py
index d5a715dda..7e644ba04 100644
--- a/nova/api/openstack/ips.py
+++ b/nova/api/openstack/ips.py
@@ -109,12 +109,10 @@ class IPXMLSerializer(wsgi.XMLDictSerializer):
def __init__(self, xmlns=wsgi.XMLNS_V11):
super(IPXMLSerializer, self).__init__(xmlns=xmlns)
- def _create_addresses_node(self, addresses_dict):
- addresses_elem = etree.Element('addresses', nsmap=self.NSMAP)
+ def populate_addresses_node(self, addresses_elem, addresses_dict):
for (network_id, ip_dicts) in addresses_dict.items():
network_elem = self._create_network_node(network_id, ip_dicts)
addresses_elem.append(network_elem)
- return addresses_elem
def _create_network_node(self, network_id, ip_dicts):
network_elem = etree.Element('network', nsmap=self.NSMAP)
@@ -131,7 +129,9 @@ class IPXMLSerializer(wsgi.XMLDictSerializer):
return self._to_xml(network)
def index(self, addresses_dict):
- addresses = self._create_addresses_node(addresses_dict['addresses'])
+ addresses = etree.Element('addresses', nsmap=self.NSMAP)
+ self.populate_addresses_node(addresses,
+ addresses_dict.get('addresses', {}))
return self._to_xml(addresses)
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index fa5b7c023..bb403845d 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -838,13 +838,14 @@ class ServerXMLSerializer(wsgi.XMLDictSerializer):
NSMAP = {None: xmlutil.XMLNS_V11, 'atom': xmlutil.XMLNS_ATOM}
+ def __init__(self):
+ self.metadata_serializer = common.MetadataXMLSerializer()
+ self.addresses_serializer = ips.IPXMLSerializer()
+
def _create_metadata_node(self, metadata_dict):
metadata_elem = etree.Element('metadata', nsmap=self.NSMAP)
- for (key, value) in metadata_dict.items():
- elem = etree.SubElement(metadata_elem, 'meta')
- elem.set('key', key)
- elem.text = value
-
+ self.metadata_serializer.populate_metadata(metadata_elem,
+ metadata_dict)
return metadata_elem
def _create_image_node(self, image_dict):
@@ -869,13 +870,8 @@ class ServerXMLSerializer(wsgi.XMLDictSerializer):
def _create_addresses_node(self, addresses_dict):
addresses_elem = etree.Element('addresses', nsmap=self.NSMAP)
- for (network_id, ip_dicts) in addresses_dict.items():
- network_node = etree.SubElement(addresses_elem, 'network')
- network_node.set('id', str(network_id))
- for ip_dict in ip_dicts:
- ip_elem = etree.SubElement(network_node, 'ip')
- ip_elem.set('version', str(ip_dict['version']))
- ip_elem.set('addr', ip_dict['addr'])
+ self.addresses_serializer.populate_addresses_node(addresses_elem,
+ addresses_dict)
return addresses_elem
def _populate_server(self, server_elem, server_dict, detailed=False):