Handle different device outputs for multipath

In some cases the output of the multipath can differ
and we would return a wrong parent device.

Closes-Bug: 2043992
Change-Id: I848d7df798cc736bd5a55eed8fa46110caea1dc3
This commit is contained in:
Iury Gregory Melo Ferreira
2023-11-20 22:38:48 -03:00
parent 845df338f8
commit 0a29206b8d
3 changed files with 13 additions and 4 deletions

View File

@@ -273,9 +273,13 @@ def _get_multipath_parent_device(device):
# size=56G features='1 retain_attached_hw_handler' hwhandler='0' wp=rw # size=56G features='1 retain_attached_hw_handler' hwhandler='0' wp=rw
# `-+- policy='service-time 0' prio=1 status=active # `-+- policy='service-time 0' prio=1 status=active
# `- 0:0:0:0 sda 8:0 active ready running # `- 0:0:0:0 sda 8:0 active ready running
# Other format:
# mpathat (wwid/alias) device_name vendor,product
try: try:
lines = out.splitlines() lines = out.splitlines()
mpath_device = lines[0].split(' ')[1] mpath_device_out = lines[0].split(' ')
for mpath_device in mpath_device_out:
if mpath_device.startswith("dm"):
# give back something like dm-0 so we can log it. # give back something like dm-0 so we can log it.
return mpath_device return mpath_device
except IndexError: except IndexError:

View File

@@ -1764,7 +1764,7 @@ MULTIPATH_VALID_PATH = '%s is a valid multipath device path'
MULTIPATH_INVALID_PATH = '%s is not a valid multipath device path' MULTIPATH_INVALID_PATH = '%s is not a valid multipath device path'
MULTIPATH_LINKS_DM = ( MULTIPATH_LINKS_DM = (
'SUPER_FRIENDLY_NAME %s ATA,INTEL SSDSC2CT06\n' 'SUPER_FRIENDLY_ NAME (12345) %s ATA, INTEL SSDSC2CT06\n'
'size=56G features=\'1 retain_attached_hw_handler\' hwhandler=\'0\' wp=rw\n' # noqa 'size=56G features=\'1 retain_attached_hw_handler\' hwhandler=\'0\' wp=rw\n' # noqa
' `-+- policy=\'service-time 0\' prio=1 status=active\n' ' `-+- policy=\'service-time 0\' prio=1 status=active\n'
' `- 0:0:0:0 device s 8:0 active ready running\n' ' `- 0:0:0:0 device s 8:0 active ready running\n'

View File

@@ -0,0 +1,5 @@
---
fixes:
- |
Fix the logic to detect the right parent device for a given multipath
device.