Extend root device hints to support device name
This patch is extending the root device hints to also look at the device name. This patch also refactors the tests for root device hints making it easier to test a different hint per test. Change-Id: I48d6456c75bbe6ddf16ac6561e5461ca51eb9c37 Partial-Bug: #1526732
This commit is contained in:
parent
1e30946835
commit
6752ce8032
@ -461,7 +461,8 @@ class GenericHardwareManager(HardwareManager):
|
||||
|
||||
def check_device_attrs(device):
|
||||
for key in ('model', 'wwn', 'serial', 'vendor',
|
||||
'wwn_with_extension', 'wwn_vendor_extension'):
|
||||
'wwn_with_extension', 'wwn_vendor_extension',
|
||||
'name'):
|
||||
if key not in root_device_hints:
|
||||
continue
|
||||
|
||||
|
@ -304,14 +304,10 @@ class TestGenericHardwareManager(test_base.BaseTestCase):
|
||||
|
||||
@mock.patch.object(hardware, 'list_all_block_devices')
|
||||
@mock.patch.object(utils, 'parse_root_device_hints')
|
||||
def test_get_os_install_device_root_device_hints(self, mock_root_device,
|
||||
mock_dev):
|
||||
def _get_os_install_device_root_device_hints(self, hints, expected_device,
|
||||
mock_root_device, mock_dev):
|
||||
model = 'fastable sd131 7'
|
||||
mock_root_device.return_value = {'model': model,
|
||||
'wwn': 'fake-wwn',
|
||||
'serial': 'fake-serial',
|
||||
'vendor': 'fake-vendor',
|
||||
'size': 10}
|
||||
mock_root_device.return_value = hints
|
||||
mock_dev.return_value = [
|
||||
hardware.BlockDevice(name='/dev/sda',
|
||||
model='TinyUSB Drive',
|
||||
@ -333,10 +329,35 @@ class TestGenericHardwareManager(test_base.BaseTestCase):
|
||||
serial='fake-serial'),
|
||||
]
|
||||
|
||||
self.assertEqual('/dev/sdb', self.hardware.get_os_install_device())
|
||||
self.assertEqual(expected_device,
|
||||
self.hardware.get_os_install_device())
|
||||
mock_root_device.assert_called_once_with()
|
||||
mock_dev.assert_called_once_with()
|
||||
|
||||
def test_get_os_install_device_root_device_hints_model(self):
|
||||
self._get_os_install_device_root_device_hints(
|
||||
{'model': 'fastable sd131 7'}, '/dev/sdb')
|
||||
|
||||
def test_get_os_install_device_root_device_hints_wwn(self):
|
||||
self._get_os_install_device_root_device_hints(
|
||||
{'wwn': 'wwn0'}, '/dev/sda')
|
||||
|
||||
def test_get_os_install_device_root_device_hints_serial(self):
|
||||
self._get_os_install_device_root_device_hints(
|
||||
{'serial': 'serial0'}, '/dev/sda')
|
||||
|
||||
def test_get_os_install_device_root_device_hints_size(self):
|
||||
self._get_os_install_device_root_device_hints(
|
||||
{'size': 10}, '/dev/sdb')
|
||||
|
||||
def test_get_os_install_device_root_device_hints_vendor(self):
|
||||
self._get_os_install_device_root_device_hints(
|
||||
{'vendor': 'fake-vendor'}, '/dev/sdb')
|
||||
|
||||
def test_get_os_install_device_root_device_hints_name(self):
|
||||
self._get_os_install_device_root_device_hints(
|
||||
{'name': '/dev/sdb'}, '/dev/sdb')
|
||||
|
||||
@mock.patch.object(hardware, 'list_all_block_devices')
|
||||
@mock.patch.object(utils, 'parse_root_device_hints')
|
||||
def test_get_os_install_device_root_device_hints_no_device_found(
|
||||
|
@ -0,0 +1,3 @@
|
||||
---
|
||||
features:
|
||||
- Root device hints extended to support the device name.
|
Loading…
Reference in New Issue
Block a user