instance.uuid no longer being a str breaks powervm scsi disconnect
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Eric Fried | ||
nova-powervm |
Fix Released
|
Undecided
|
Eric Fried | ||
pypowervm |
Fix Released
|
Critical
|
Eric Fried |
Bug Description
Long-standing code in pypowervm [1] used isinstance(..., str) to help identify whether an input was a UUID or an integer short ID. This is used with to find SCSI mappings [2] with Instance.uuid [3] when disconnecting a disk during destroy [4].
Then this change in oslo.versionedo
PowerVM error destroying instance.: ValueError: invalid literal for int() with base 10: '4E27E1E6-
Traceback (most recent call last):
File "/opt/stack/
_setup_
File "/opt/stack/
tf_
File "/opt/stack/
return eng.run()
File "/usr/local/
for _state in self.run_
File "/usr/local/
failure.
File "/usr/local/
failures[
File "/usr/local/
six.
File "/usr/local/
result = task.execute(
File "/opt/stack/
self.instance, stg_ftsk=
File "/opt/stack/
match_
File "/usr/local/
is_uuid, client_id = uuid.id_
File "/usr/local/
ret_id = int(an_id)
ValueError: invalid literal for int() with base 10: '4E27E1E6-
(Okay, our bad for using str at all - though to be fair, it's possible that code predates the very existence of py3.)
The right fix is for [1] to use is_uuid_like from oslo.utils. This shall be done. However, since [5] was backported to queens and pike, unless we can get away with backporting requirements changes, we may have to do something backportable in nova-powervm and nova as well.
[1] https:/
[2] https:/
[3] https:/
[4] https:/
[5] https:/
[6] http://
Changed in pypowervm: | |
status: | New → In Progress |
assignee: | nobody → Eric Fried (efried) |
importance: | Undecided → Critical |
Changed in pypowervm: | |
status: | In Progress → Fix Released |
Changed in nova-powervm: | |
assignee: | nobody → Eric Fried (efried) |
The revert is here: https:/ /review. openstack. org/#/q/ I178f14cdc670d7 a696778891e587e f75de208fc2
Hopefully they will avoid the broken version in the stable branches of the requirements project.