summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/drivers/modules/drac/test_inspect.py
diff options
context:
space:
mode:
Diffstat (limited to 'ironic/tests/unit/drivers/modules/drac/test_inspect.py')
-rw-r--r--ironic/tests/unit/drivers/modules/drac/test_inspect.py102
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)