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 Related-Bug: #1766692 Change-Id: Ic3b11b071a055177bbcfb0555e2a391ba419d191
This commit is contained in:
parent
e62fae699d
commit
49330fcf28
|
@ -790,7 +790,12 @@ def get_pvm_uuid(instance):
|
|||
uuid.
|
||||
:return: pvm_uuid.
|
||||
"""
|
||||
inst_uuid = instance if uuidutils.is_uuid_like(instance) else instance.uuid
|
||||
# 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
|
||||
inst_uuid = (instance if uuidutils.is_uuid_like(instance)
|
||||
else str(instance.uuid))
|
||||
return pvm_uuid.convert_uuid_to_pvm(inst_uuid).upper()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue