Stringify instance UUID
oslo.versionedobjects merged a patch [1] resulting in the referenced bug. A second patch [2] was merged that was supposed to fix the issue. If coerce's value arg is a unicode string, then the method will return unicode [3]. Subsequent checks for isinstance(str) [4] will fail and a TypeError will be raised trying to handle the uuid as an int in the else block. This change ensures that the uuid is an instance of str so that it is handled properly. This problem was fixed in pypowervm 1.1.15 [5] and the minimum version was bumped for master. However, we can't backport the pypowervm requirements bump to the stable branches so we have to fix it here. [1] https://review.openstack.org/#/c/559815/ [2] https://review.openstack.org/#/c/561674/ [3] https://review.openstack.org/#/c/561674/2/oslo_versionedobjects/fields.py@367 [4] https://github.com/powervm/pypowervm/blob/1.1.10/pypowervm/utils/uuid.py#L50-L56 [5] https://github.com/powervm/pypowervm/commit/d55b4c84 Change-Id: I1baef962b4b8074f3f9b9ad5402970edc9a3a776 Related-Bug: #1766692
This commit is contained in:
parent
00c2497209
commit
2386e015ef
|
@ -111,7 +111,11 @@ def get_pvm_uuid(instance):
|
|||
:param instance: nova.objects.instance.Instance.
|
||||
:return: The PowerVM UUID for the LPAR corresponding to the instance.
|
||||
"""
|
||||
return pvm_uuid.convert_uuid_to_pvm(instance.uuid).upper()
|
||||
# NOTE(esberglu): To work around bug ##1766692, we explicitly use str()
|
||||
# rather than six.text_type here because of this pypowervm check for
|
||||
# isinstance(..., str) at L50 of
|
||||
# https://github.com/powervm/pypowervm/blob/1.1.10/pypowervm/utils/uuid.py
|
||||
return pvm_uuid.convert_uuid_to_pvm(str(instance.uuid)).upper()
|
||||
|
||||
|
||||
def get_instance_wrapper(adapter, instance):
|
||||
|
|
Loading…
Reference in New Issue