diff options
| author | Brian Waldon <brian.waldon@rackspace.com> | 2011-06-23 12:41:57 -0400 |
|---|---|---|
| committer | Brian Waldon <brian.waldon@rackspace.com> | 2011-06-23 12:41:57 -0400 |
| commit | b186f7ae1515b8296f5fdb7f86b67c07973bb463 (patch) | |
| tree | 5caf4a6fe2912ea4d149b04cb093465bf440b5d1 | |
| parent | 8feaa2394cd4c4d9709568c7d294fa0a75f790bc (diff) | |
| download | nova-b186f7ae1515b8296f5fdb7f86b67c07973bb463.tar.gz nova-b186f7ae1515b8296f5fdb7f86b67c07973bb463.tar.xz nova-b186f7ae1515b8296f5fdb7f86b67c07973bb463.zip | |
fixing 500 on None metadata value
| -rw-r--r-- | nova/api/openstack/image_metadata.py | 2 | ||||
| -rw-r--r-- | nova/tests/api/openstack/test_image_metadata.py | 20 |
2 files changed, 21 insertions, 1 deletions
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 diff --git a/nova/tests/api/openstack/test_image_metadata.py b/nova/tests/api/openstack/test_image_metadata.py index 9495eadec..52905056d 100644 --- a/nova/tests/api/openstack/test_image_metadata.py +++ b/nova/tests/api/openstack/test_image_metadata.py @@ -130,6 +130,26 @@ class ImageMetaDataTest(unittest.TestCase): self.assertEqual(expected.toxml(), actual.toxml()) + def test_index_xml_null_value(self): + serializer = openstack.image_metadata.ImageMetadataXMLSerializer() + fixture = { + 'metadata': { + 'three': None, + }, + } + output = serializer.index(fixture) + actual = minidom.parseString(output.replace(" ", "")) + + expected = minidom.parseString(""" + <metadata xmlns="http://docs.openstack.org/compute/api/v1.1"> + <meta key="three"> + None + </meta> + </metadata> + """.replace(" ", "")) + + self.assertEqual(expected.toxml(), actual.toxml()) + def test_show(self): req = webob.Request.blank('/v1.1/images/1/meta/key1') req.environ['api.version'] = '1.1' |
