Ignore pyudev errors about device number
Pyudev is used to return extra data about a device using the udev interface. Sometimes that lookup doesn't quite work, like on md devices after restarting them. As such, we will now tollerate the failure and continue the process as before. Change-Id: Ibbc1759fe2cd3d7d09019b4e80d3c61d54c844dd Story: 2007281 Task: 38726
This commit is contained in:
parent
48ef7c9188
commit
c1da514645
ironic_python_agent
@ -371,6 +371,11 @@ def list_all_block_devices(block_type='disk',
|
||||
LOG.warning("Device %(dev)s is inaccessible, skipping... "
|
||||
"Error: %(error)s", {'dev': name, 'error': e})
|
||||
extra = {}
|
||||
except pyudev.DeviceNotFoundByNumberError as e:
|
||||
LOG.warning("Device %(dev)s is not supported by pyudev, "
|
||||
"skipping... Error: %(error)s",
|
||||
{'dev': name, 'error': e})
|
||||
extra = {}
|
||||
else:
|
||||
# TODO(lucasagomes): Since lsblk only supports
|
||||
# returning the short serial we are using
|
||||
|
@ -1666,7 +1666,11 @@ class TestGenericHardwareManager(base.IronicAgentTest):
|
||||
mock_listdir.return_value = [os.path.basename(x)
|
||||
for x in sorted(by_path_map)]
|
||||
mocked_execute.return_value = (BLK_DEVICE_TEMPLATE, '')
|
||||
mocked_udev.side_effect = pyudev.DeviceNotFoundByFileError()
|
||||
mocked_udev.side_effect = [pyudev.DeviceNotFoundByFileError(),
|
||||
pyudev.DeviceNotFoundByNumberError('block',
|
||||
1234),
|
||||
pyudev.DeviceNotFoundByFileError(),
|
||||
pyudev.DeviceNotFoundByFileError()]
|
||||
mocked_dev_vendor.return_value = 'Super Vendor'
|
||||
devices = hardware.list_all_block_devices()
|
||||
expected_devices = [
|
||||
|
Loading…
x
Reference in New Issue
Block a user