Merge "Include empty devices when listing block devices"

This commit is contained in:
Zuul 2019-07-15 17:18:20 +00:00 committed by Gerrit Code Review
commit 21a742751a
2 changed files with 13 additions and 11 deletions

View File

@ -265,7 +265,7 @@ def list_all_block_devices(block_type='disk',
"Cause: %(error)s", {'path': disk_by_path_dir, 'error': e})
columns = ['KNAME', 'MODEL', 'SIZE', 'ROTA', 'TYPE']
report = utils.execute('lsblk', '-Pbi', '-o{}'.format(','.join(columns)),
report = utils.execute('lsblk', '-Pbia', '-o{}'.format(','.join(columns)),
check_exit_code=[0])[0]
lines = report.splitlines()
context = pyudev.Context()
@ -289,10 +289,12 @@ def list_all_block_devices(block_type='disk',
# Other possible type values, which we skip recording:
# lvm, part, rom, loop
if devtype != block_type:
if devtype is not None and 'raid' in devtype and not ignore_raid:
if (devtype is not None and
any(x in devtype for x in ['raid', 'md']) and
not ignore_raid):
LOG.debug(
"TYPE detected to contain 'raid', signifying a RAID "
"volume. Found: {!r}".format(line))
"TYPE detected to contain 'raid or 'md', signifying a "
"RAID volume. Found: {!r}".format(line))
else:
LOG.debug(
"TYPE did not match. Wanted: {!r} but found: {!r}".format(
@ -338,7 +340,7 @@ def list_all_block_devices(block_type='disk',
devices.append(BlockDevice(name=name,
model=device['MODEL'],
size=int(device['SIZE']),
size=int(device['SIZE'] or 0),
rotational=bool(int(device['ROTA'])),
vendor=_get_device_info(device['KNAME'],
'block', 'vendor'),

View File

@ -1103,7 +1103,7 @@ class TestGenericHardwareManager(base.IronicAgentTest):
mocked_execute.return_value = (BLK_DEVICE_TEMPLATE, '')
self.assertEqual('/dev/sdb', self.hardware.get_os_install_device())
mocked_execute.assert_called_once_with(
'lsblk', '-Pbi', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
'lsblk', '-Pbia', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
check_exit_code=[0])
mock_cached_node.assert_called_once_with()
@ -1125,7 +1125,7 @@ class TestGenericHardwareManager(base.IronicAgentTest):
# should always be smaller
self.assertEqual('/dev/md0', self.hardware.get_os_install_device())
mocked_execute.assert_called_once_with(
'lsblk', '-Pbi', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
'lsblk', '-Pbia', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
check_exit_code=[0])
mock_cached_node.assert_called_once_with()
@ -1144,7 +1144,7 @@ class TestGenericHardwareManager(base.IronicAgentTest):
ex = self.assertRaises(errors.DeviceNotFound,
self.hardware.get_os_install_device)
mocked_execute.assert_called_once_with(
'lsblk', '-Pbi', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
'lsblk', '-Pbia', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
check_exit_code=[0])
self.assertIn(str(4 * units.Gi), ex.details)
mock_cached_node.assert_called_once_with()
@ -3051,7 +3051,7 @@ class TestModuleFunctions(base.IronicAgentTest):
mocked_execute.return_value = (BLK_DEVICE_TEMPLATE_SMALL, '')
result = hardware.list_all_block_devices()
mocked_execute.assert_called_once_with(
'lsblk', '-Pbi', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
'lsblk', '-Pbia', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
check_exit_code=[0])
self.assertEqual(BLK_DEVICE_TEMPLATE_SMALL_DEVICES, result)
mocked_udev.assert_called_once_with()
@ -3070,7 +3070,7 @@ class TestModuleFunctions(base.IronicAgentTest):
mocked_execute.return_value = (RAID_BLK_DEVICE_TEMPLATE, '')
result = hardware.list_all_block_devices()
mocked_execute.assert_called_once_with(
'lsblk', '-Pbi', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
'lsblk', '-Pbia', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
check_exit_code=[0])
self.assertEqual(RAID_BLK_DEVICE_TEMPLATE_DEVICES, result)
mocked_udev.assert_called_once_with()
@ -3083,7 +3083,7 @@ class TestModuleFunctions(base.IronicAgentTest):
mocked_execute.return_value = ('TYPE="foo" MODEL="model"', '')
result = hardware.list_all_block_devices()
mocked_execute.assert_called_once_with(
'lsblk', '-Pbi', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
'lsblk', '-Pbia', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
check_exit_code=[0])
self.assertEqual([], result)
mocked_udev.assert_called_once_with()