summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorNaveed Massjouni <naveedm9@gmail.com>2012-02-09 03:51:24 +0000
committerNaveed Massjouni <naveedm9@gmail.com>2012-02-13 17:31:34 +0000
commit2a22d5bd3a85c9cb2376a78cbe1a792ca84a0a52 (patch)
treedefe163939d45d463660048ff0af0b5b0e067b15 /nova
parentdf687ab091311c13ca4bad5c67613483d65adf44 (diff)
downloadnova-2a22d5bd3a85c9cb2376a78cbe1a792ca84a0a52.tar.gz
nova-2a22d5bd3a85c9cb2376a78cbe1a792ca84a0a52.tar.xz
nova-2a22d5bd3a85c9cb2376a78cbe1a792ca84a0a52.zip
Fixing a unicode related metadata bug.
When a server had metadata with unicode characters in the values, doing a GET on servers details would return a 500 error. This fixes that bug. bug: 929281 Change-Id: I6162532c9a5a615802eb23e7bf9a80d3faf6e7a0
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/compute/views/servers.py2
-rw-r--r--nova/tests/api/openstack/compute/test_servers.py6
-rw-r--r--nova/tests/api/openstack/fakes.py2
3 files changed, 3 insertions, 7 deletions
diff --git a/nova/api/openstack/compute/views/servers.py b/nova/api/openstack/compute/views/servers.py
index e923c8286..b226dc33f 100644
--- a/nova/api/openstack/compute/views/servers.py
+++ b/nova/api/openstack/compute/views/servers.py
@@ -136,7 +136,7 @@ class ViewBuilder(common.ViewBuilder):
@staticmethod
def _get_metadata(instance):
metadata = instance.get("metadata", [])
- return dict((item['key'], str(item['value'])) for item in metadata)
+ return dict((item['key'], item['value']) for item in metadata)
@staticmethod
def _get_vm_state(instance):
diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py
index 2c1c6be99..a9ec67b22 100644
--- a/nova/tests/api/openstack/compute/test_servers.py
+++ b/nova/tests/api/openstack/compute/test_servers.py
@@ -3229,7 +3229,6 @@ class ServersViewBuilderTest(test.TestCase):
metadata = []
metadata.append(InstanceMetadata(key="Open", value="Stack"))
- metadata.append(InstanceMetadata(key="Number", value=1))
self.instance['metadata'] = metadata
image_bookmark = "http://localhost/fake/images/5"
@@ -3274,10 +3273,7 @@ class ServersViewBuilderTest(test.TestCase):
{'version': 6, 'addr': 'fe80::dcad:beff:feef:1'}
]
},
- "metadata": {
- "Open": "Stack",
- "Number": "1",
- },
+ "metadata": {"Open": "Stack"},
"config_drive": None,
"links": [
{
diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py
index ba8892306..7d5d429e4 100644
--- a/nova/tests/api/openstack/fakes.py
+++ b/nova/tests/api/openstack/fakes.py
@@ -469,7 +469,7 @@ def stub_instance(id, user_id='fake', project_id='fake', host=None,
include_fake_metadata=True,
power_state=None, nw_cache=None):
if include_fake_metadata:
- metadata = [models.InstanceMetadata(key='seq', value=id)]
+ metadata = [models.InstanceMetadata(key='seq', value=str(id))]
else:
metadata = []