diff options
| author | Naveed Massjouni <naveedm9@gmail.com> | 2012-02-09 03:51:24 +0000 |
|---|---|---|
| committer | Naveed Massjouni <naveedm9@gmail.com> | 2012-02-13 17:31:34 +0000 |
| commit | 2a22d5bd3a85c9cb2376a78cbe1a792ca84a0a52 (patch) | |
| tree | defe163939d45d463660048ff0af0b5b0e067b15 | |
| parent | df687ab091311c13ca4bad5c67613483d65adf44 (diff) | |
| download | nova-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
| -rw-r--r-- | nova/api/openstack/compute/views/servers.py | 2 | ||||
| -rw-r--r-- | nova/tests/api/openstack/compute/test_servers.py | 6 | ||||
| -rw-r--r-- | 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 = [] |
