diff options
Diffstat (limited to 'ironic/tests/unit/drivers/modules/drac/test_inspect.py')
-rw-r--r-- | ironic/tests/unit/drivers/modules/drac/test_inspect.py | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/ironic/tests/unit/drivers/modules/drac/test_inspect.py b/ironic/tests/unit/drivers/modules/drac/test_inspect.py index 5456344c5..cb6638b5a 100644 --- a/ironic/tests/unit/drivers/modules/drac/test_inspect.py +++ b/ironic/tests/unit/drivers/modules/drac/test_inspect.py @@ -125,6 +125,20 @@ class DracInspectionTestCase(db_base.DbTestCase): 'speed': '1000 Mbps', 'duplex': 'full duplex', 'media_type': 'Base T'}] + bios_boot_settings = {'BootMode': {'current_value': 'Bios'}} + uefi_boot_settings = {'BootMode': {'current_value': 'Uefi'}, + 'PxeDev1EnDis': {'current_value': 'Enabled'}, + 'PxeDev2EnDis': {'current_value': 'Disabled'}, + 'PxeDev3EnDis': {'current_value': 'Disabled'}, + 'PxeDev4EnDis': {'current_value': 'Disabled'}, + 'PxeDev1Interface': { + 'current_value': 'NIC.Embedded.1-1-1'}, + 'PxeDev2Interface': None, + 'PxeDev3Interface': None, + 'PxeDev4Interface': None} + nic_settings = {'LegacyBootProto': {'current_value': 'PXE'}, + 'FQDD': 'NIC.Embedded.1-1-1'} + self.memory = [test_utils.dict_to_namedtuple(values=m) for m in memory] self.cpus = [test_utils.dict_to_namedtuple(values=c) for c in cpus] self.virtual_disks = [test_utils.dict_to_namedtuple(values=vd) @@ -132,6 +146,9 @@ class DracInspectionTestCase(db_base.DbTestCase): self.physical_disks = [test_utils.dict_to_namedtuple(values=pd) for pd in physical_disks] self.nics = [test_utils.dict_to_namedtuple(values=n) for n in nics] + self.bios_boot_settings = test_utils.dict_of_object(bios_boot_settings) + self.uefi_boot_settings = test_utils.dict_of_object(uefi_boot_settings) + self.nic_settings = test_utils.dict_of_object(nic_settings) def test_get_properties(self): expected = drac_common.COMMON_PROPERTIES @@ -153,6 +170,7 @@ class DracInspectionTestCase(db_base.DbTestCase): mock_client.list_cpus.return_value = self.cpus mock_client.list_virtual_disks.return_value = self.virtual_disks mock_client.list_nics.return_value = self.nics + mock_client.list_bios_settings.return_value = self.uefi_boot_settings with task_manager.acquire(self.context, self.node.uuid, shared=True) as task: @@ -197,6 +215,7 @@ class DracInspectionTestCase(db_base.DbTestCase): mock_client.list_virtual_disks.return_value = [] mock_client.list_physical_disks.return_value = self.physical_disks mock_client.list_nics.return_value = self.nics + mock_client.list_bios_settings.return_value = self.uefi_boot_settings with task_manager.acquire(self.context, self.node.uuid, shared=True) as task: @@ -241,6 +260,8 @@ class DracInspectionTestCase(db_base.DbTestCase): mock_client.list_cpus.return_value = self.cpus mock_client.list_virtual_disks.return_value = self.virtual_disks mock_client.list_nics.return_value = self.nics + mock_client.list_bios_settings.return_value = self.uefi_boot_settings + mock_port_create.side_effect = exception.MACAlreadyExists("boom") with task_manager.acquire(self.context, self.node.uuid, @@ -259,3 +280,84 @@ class DracInspectionTestCase(db_base.DbTestCase): self.physical_disks) self.assertEqual(285888, root_disk.size_mb) + + @mock.patch.object(drac_common, 'get_drac_client', spec_set=True, + autospec=True) + def test__get_pxe_dev_nics_with_UEFI_boot_mode(self, mock_get_drac_client): + expected_pxe_nic = self.uefi_boot_settings[ + 'PxeDev1Interface'].current_value + mock_client = mock.Mock() + mock_get_drac_client.return_value = mock_client + mock_client.list_bios_settings.return_value = self.uefi_boot_settings + with task_manager.acquire(self.context, self.node.uuid, + shared=True) as task: + pxe_dev_nics = task.driver.inspect._get_pxe_dev_nics( + mock_client, self.nics, self.node) + + self.assertEqual(expected_pxe_nic, pxe_dev_nics[0]) + + @mock.patch.object(drac_common, 'get_drac_client', spec_set=True, + autospec=True) + def test__get_pxe_dev_nics_with_BIOS_boot_mode(self, mock_get_drac_client): + expected_pxe_nic = self.nic_settings['FQDD'] + mock_client = mock.Mock() + mock_get_drac_client.return_value = mock_client + mock_client.list_bios_settings.return_value = self.bios_boot_settings + mock_client.list_nic_settings.return_value = self.nic_settings + with task_manager.acquire(self.context, self.node.uuid, + shared=True) as task: + pxe_dev_nics = task.driver.inspect._get_pxe_dev_nics( + mock_client, self.nics, self.node) + + self.assertEqual(expected_pxe_nic, pxe_dev_nics[0]) + + @mock.patch.object(drac_common, 'get_drac_client', spec_set=True, + autospec=True) + def test__get_pxe_dev_nics_list_boot_setting_failure(self, + mock_get_drac_client): + mock_client = mock.Mock() + mock_get_drac_client.return_value = mock_client + mock_client.list_bios_settings.side_effect = ( + drac_exceptions.BaseClientException('foo')) + + with task_manager.acquire(self.context, self.node.uuid, + shared=True) as task: + self.assertRaises(exception.HardwareInspectionFailure, + task.driver.inspect._get_pxe_dev_nics, + mock_client, + self.nics, + self.node) + + @mock.patch.object(drac_common, 'get_drac_client', spec_set=True, + autospec=True) + def test__get_pxe_dev_nics_list_nic_setting_failure(self, + mock_get_drac_client): + mock_client = mock.Mock() + mock_get_drac_client.return_value = mock_client + mock_client.list_bios_settings.return_value = self.bios_boot_settings + mock_client.list_nic_settings.side_effect = ( + drac_exceptions.BaseClientException('bar')) + + with task_manager.acquire(self.context, self.node.uuid, + shared=True) as task: + self.assertRaises(exception.HardwareInspectionFailure, + task.driver.inspect._get_pxe_dev_nics, + mock_client, + self.nics, + self.node) + + @mock.patch.object(drac_common, 'get_drac_client', spec_set=True, + autospec=True) + def test__get_pxe_dev_nics_with_empty_list(self, mock_get_drac_client): + expected_pxe_nic = [] + nic_setting = [] + mock_client = mock.Mock() + mock_get_drac_client.return_value = mock_client + mock_client.list_bios_settings.return_value = self.bios_boot_settings + mock_client.list_nic_settings.return_value = nic_setting + with task_manager.acquire(self.context, self.node.uuid, + shared=True) as task: + pxe_dev_nics = task.driver.inspect._get_pxe_dev_nics( + mock_client, self.nics, self.node) + + self.assertEqual(expected_pxe_nic, pxe_dev_nics) |