Merge "Fix error during set unicode metadata key"

This commit is contained in:
Jenkins
2016-09-26 11:02:53 +00:00
committed by Gerrit Code Review
2 changed files with 11 additions and 5 deletions

View File

@@ -490,15 +490,18 @@ class Resource(RequestIdMixin):
def _add_details(self, info):
for (k, v) in six.iteritems(info):
try:
try:
setattr(self, k, v)
except UnicodeEncodeError:
pass
self._info[k] = v
except AttributeError:
# In this case we already defined the attribute on the class
pass
def __getattr__(self, k):
if k not in self.__dict__:
if k not in self.__dict__ or k not in self._info:
# NOTE(bcwaldon): disallow lazy-loading if already loaded once
if not self.is_loaded():
self.get()
@@ -506,7 +509,9 @@ class Resource(RequestIdMixin):
raise AttributeError(k)
else:
if k in self.__.dict__:
return self.__dict__[k]
return self._info[k]
@property
def api_version(self):

View File

@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2013 OpenStack Foundation
#
# All Rights Reserved.
@@ -171,9 +172,9 @@ class VolumesTest(utils.TestCase):
self._assert_request_id(vol)
def test_set_metadata(self):
vol = cs.volumes.set_metadata(1234, {'k1': 'v2'})
vol = cs.volumes.set_metadata(1234, {'k1': 'v2', 'тест': 'тест'})
cs.assert_called('POST', '/volumes/1234/metadata',
{'metadata': {'k1': 'v2'}})
{'metadata': {'k1': 'v2', 'тест': 'тест'}})
self._assert_request_id(vol)
def test_delete_metadata(self):