From 9044733fb0aff698875080caf1ffd9e44470ec0e Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Thu, 23 Jun 2011 10:53:09 -0400 Subject: adding metadata container to /images/detail and /images/ calls --- nova/api/openstack/views/images.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'nova/api') diff --git a/nova/api/openstack/views/images.py b/nova/api/openstack/views/images.py index 2773c9c13..e7472b5cd 100644 --- a/nova/api/openstack/views/images.py +++ b/nova/api/openstack/views/images.py @@ -109,6 +109,9 @@ class ViewBuilderV11(ViewBuilder): image = ViewBuilder.build(self, image_obj, detail) href = self.generate_href(image_obj["id"]) + if detail: + image["metadata"] = image_obj.get("properties", {}) + image["links"] = [{ "rel": "self", "href": href, -- cgit From b186f7ae1515b8296f5fdb7f86b67c07973bb463 Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Thu, 23 Jun 2011 12:41:57 -0400 Subject: fixing 500 on None metadata value --- nova/api/openstack/image_metadata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nova/api') diff --git a/nova/api/openstack/image_metadata.py b/nova/api/openstack/image_metadata.py index 90cbfe04c..639e4320d 100644 --- a/nova/api/openstack/image_metadata.py +++ b/nova/api/openstack/image_metadata.py @@ -111,7 +111,7 @@ class ImageMetadataXMLSerializer(wsgi.XMLDictSerializer): def _meta_item_to_xml(self, doc, key, value): node = doc.createElement('meta') node.setAttribute('key', key) - text = doc.createTextNode(value) + text = doc.createTextNode(str(value)) node.appendChild(text) return node -- cgit From 1b5cde761bd699f6fec207f4b1b41d8c63ea1ec7 Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Thu, 23 Jun 2011 15:48:49 -0400 Subject: fixing 500 error on v1.0 images xml --- nova/api/openstack/images.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nova/api') diff --git a/nova/api/openstack/images.py b/nova/api/openstack/images.py index 31b2e1c37..ed1811779 100644 --- a/nova/api/openstack/images.py +++ b/nova/api/openstack/images.py @@ -262,7 +262,7 @@ def create_resource(version='1.0'): } xml_serializer = { - '1.0': wsgi.XMLDictSerializer(wsgi.XMLNS_V10, metadata), + '1.0': wsgi.XMLDictSerializer(metadata, wsgi.XMLNS_V10), '1.1': ImageXMLSerializer(), }[version] -- cgit From 8df250af09b6319d5dc70d42469121f04401548f Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Mon, 27 Jun 2011 11:29:29 -0400 Subject: making key in images metadata xml serialization test null as well --- nova/api/openstack/image_metadata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nova/api') diff --git a/nova/api/openstack/image_metadata.py b/nova/api/openstack/image_metadata.py index 7b138dc27..d72a9e0a4 100644 --- a/nova/api/openstack/image_metadata.py +++ b/nova/api/openstack/image_metadata.py @@ -117,7 +117,7 @@ class ImageMetadataXMLSerializer(wsgi.XMLDictSerializer): def _meta_item_to_xml(self, doc, key, value): node = doc.createElement('meta') - node.setAttribute('key', key) + node.setAttribute('key', str(key)) text = doc.createTextNode(str(value)) node.appendChild(text) return node -- cgit From 2ba837877344bc791d7361f622be288c1870ffda Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Tue, 28 Jun 2011 11:59:46 -0400 Subject: adding unicode support to image metadata --- nova/api/openstack/image_metadata.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'nova/api') diff --git a/nova/api/openstack/image_metadata.py b/nova/api/openstack/image_metadata.py index d72a9e0a4..638b1ec15 100644 --- a/nova/api/openstack/image_metadata.py +++ b/nova/api/openstack/image_metadata.py @@ -117,8 +117,9 @@ class ImageMetadataXMLSerializer(wsgi.XMLDictSerializer): def _meta_item_to_xml(self, doc, key, value): node = doc.createElement('meta') - node.setAttribute('key', str(key)) - text = doc.createTextNode(str(value)) + doc.appendChild(node) + node.setAttribute('key', '%s' % key) + text = doc.createTextNode('%s' % value) node.appendChild(text) return node @@ -133,8 +134,9 @@ class ImageMetadataXMLSerializer(wsgi.XMLDictSerializer): xml_doc = minidom.Document() items = metadata_dict['metadata'].items() container_node = self.meta_list_to_xml(xml_doc, items) + xml_doc.appendChild(container_node) self._add_xmlns(container_node) - return container_node.toprettyxml(indent=' ') + return xml_doc.toprettyxml(indent=' ', encoding='UTF-8') def index(self, metadata_dict): return self._meta_list_to_xml_string(metadata_dict) @@ -146,8 +148,9 @@ class ImageMetadataXMLSerializer(wsgi.XMLDictSerializer): xml_doc = minidom.Document() item_key, item_value = meta_item_dict.items()[0] item_node = self._meta_item_to_xml(xml_doc, item_key, item_value) + xml_doc.appendChild(item_node) self._add_xmlns(item_node) - return item_node.toprettyxml(indent=' ') + return xml_doc.toprettyxml(indent=' ', encoding='UTF-8') def show(self, meta_item_dict): return self._meta_item_to_xml_string(meta_item_dict['meta']) -- cgit