Merge "Extend root device hints to support device name"

This commit is contained in:
Jenkins 2016-02-03 01:58:04 +00:00 committed by Gerrit Code Review
commit 3ce3b16803
3 changed files with 34 additions and 9 deletions

View File

@ -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

View File

@ -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(

View File

@ -0,0 +1,3 @@
---
features:
- Root device hints extended to support the device name.