Fix error during set unicode metadata key
Change-Id: I2940670b4174dae800e76667ceecc80c568e613f Closes-Bug: #1622631
This commit is contained in:
@@ -491,14 +491,17 @@ class Resource(RequestIdMixin):
|
||||
def _add_details(self, info):
|
||||
for (k, v) in six.iteritems(info):
|
||||
try:
|
||||
setattr(self, k, v)
|
||||
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:
|
||||
return self.__dict__[k]
|
||||
if k in self.__.dict__:
|
||||
return self.__dict__[k]
|
||||
return self._info[k]
|
||||
|
||||
@property
|
||||
def api_version(self):
|
||||
|
@@ -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):
|
||||
|
Reference in New Issue
Block a user