diff --git a/glanceclient/v1/images.py b/glanceclient/v1/images.py index 60e7bf05..da84dc85 100644 --- a/glanceclient/v1/images.py +++ b/glanceclient/v1/images.py @@ -58,12 +58,14 @@ class ImageManager(base.Manager): def _image_meta_from_headers(self, headers): meta = {'properties': {}} + ensure_unicode = utils.ensure_unicode for key, value in headers.iteritems(): + value = ensure_unicode(value, incoming='utf-8') if key.startswith('x-image-meta-property-'): - _key = key[22:] + _key = ensure_unicode(key[22:], incoming='utf-8') meta['properties'][_key] = value elif key.startswith('x-image-meta-'): - _key = key[13:] + _key = ensure_unicode(key[13:], incoming='utf-8') meta[_key] = value for key in ['is_public', 'protected', 'deleted']: diff --git a/tests/v1/test_images.py b/tests/v1/test_images.py index 43291f26..c314cee3 100644 --- a/tests/v1/test_images.py +++ b/tests/v1/test_images.py @@ -311,6 +311,7 @@ class ImageManagerTest(testtools.TestCase): self.assertEqual(image.is_public, False) self.assertEqual(image.protected, False) self.assertEqual(image.deleted, False) + self.assertEqual(image.properties, {u'arch': u'x86_64'}) def test_data(self): data = ''.join([b for b in self.mgr.data('1', do_checksum=False)])