From 2a22d5bd3a85c9cb2376a78cbe1a792ca84a0a52 Mon Sep 17 00:00:00 2001 From: Naveed Massjouni Date: Thu, 9 Feb 2012 03:51:24 +0000 Subject: 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 --- nova/api/openstack/compute/views/servers.py | 2 +- nova/tests/api/openstack/compute/test_servers.py | 6 +----- nova/tests/api/openstack/fakes.py | 2 +- 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 = [] -- cgit