summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/drivers/modules/ilo/test_boot.py
diff options
context:
space:
mode:
Diffstat (limited to 'ironic/tests/unit/drivers/modules/ilo/test_boot.py')
-rw-r--r--ironic/tests/unit/drivers/modules/ilo/test_boot.py78
1 files changed, 78 insertions, 0 deletions
diff --git a/ironic/tests/unit/drivers/modules/ilo/test_boot.py b/ironic/tests/unit/drivers/modules/ilo/test_boot.py
index 8aa6f78da..8ebaa14fa 100644
--- a/ironic/tests/unit/drivers/modules/ilo/test_boot.py
+++ b/ironic/tests/unit/drivers/modules/ilo/test_boot.py
@@ -1132,6 +1132,45 @@ class IloPXEBootTestCase(test_common.BaseIloTest):
self.assertIsNone(task.node.driver_internal_info.get(
'ilo_uefi_iscsi_boot'))
+ @mock.patch.object(ilo_boot, 'prepare_node_for_deploy', spec_set=True,
+ autospec=True)
+ @mock.patch.object(deploy_utils, 'get_boot_option', autospec=True)
+ @mock.patch.object(deploy_utils, 'is_iscsi_boot',
+ spec_set=True, autospec=True)
+ @mock.patch.object(boot_mode_utils, 'get_boot_mode_for_deploy',
+ spec_set=True, autospec=True)
+ @mock.patch.object(ilo_common, 'update_boot_mode', spec_set=True,
+ autospec=True)
+ @mock.patch.object(pxe.PXEBoot, 'prepare_instance', spec_set=True,
+ autospec=True)
+ def _test_prepare_instance_anaconda(self, pxe_prepare_instance_mock,
+ update_boot_mode_mock,
+ get_boot_mode_mock,
+ is_iscsi_boot_mock,
+ mock_get_boot_opt,
+ mock_prep_node_fr_deploy, prov_state):
+ with task_manager.acquire(self.context, self.node.uuid,
+ shared=False) as task:
+ task.node.provision_state = prov_state
+ mock_get_boot_opt.return_value = 'kickstart'
+ is_iscsi_boot_mock.return_value = False
+ get_boot_mode_mock.return_value = 'uefi'
+ task.driver.boot.prepare_instance(task)
+ update_boot_mode_mock.assert_called_once_with(task)
+ pxe_prepare_instance_mock.assert_called_once_with(mock.ANY, task)
+ self.assertIsNone(task.node.driver_internal_info.get(
+ 'ilo_uefi_iscsi_boot'))
+ mock_prep_node_fr_deploy.assert_called_once_with(task)
+
+ def test_prepare_instance_anaconda_deploying(self):
+ self._test_prepare_instance_anaconda(prov_state=states.DEPLOYING)
+
+ def test_prepare_instance_anaconda_rescuing(self):
+ self._test_prepare_instance_anaconda(prov_state=states.RESCUING)
+
+ def test_prepare_instance_anaconda_cleaning(self):
+ self._test_prepare_instance_anaconda(prov_state=states.CLEANING)
+
@mock.patch.object(deploy_utils, 'is_iscsi_boot',
spec_set=True, autospec=True)
@mock.patch.object(boot_mode_utils, 'get_boot_mode_for_deploy',
@@ -1299,6 +1338,45 @@ class IloiPXEBootTestCase(test_common.BaseIloTest):
self.assertIsNone(task.node.driver_internal_info.get(
'ilo_uefi_iscsi_boot'))
+ @mock.patch.object(ilo_boot, 'prepare_node_for_deploy', spec_set=True,
+ autospec=True)
+ @mock.patch.object(deploy_utils, 'get_boot_option', autospec=True)
+ @mock.patch.object(deploy_utils, 'is_iscsi_boot',
+ spec_set=True, autospec=True)
+ @mock.patch.object(boot_mode_utils, 'get_boot_mode_for_deploy',
+ spec_set=True, autospec=True)
+ @mock.patch.object(ilo_common, 'update_boot_mode', spec_set=True,
+ autospec=True)
+ @mock.patch.object(ipxe.iPXEBoot, 'prepare_instance', spec_set=True,
+ autospec=True)
+ def _test_prepare_instance_anaconda(self, pxe_prepare_instance_mock,
+ update_boot_mode_mock,
+ get_boot_mode_mock,
+ is_iscsi_boot_mock,
+ mock_get_boot_opt,
+ mock_prep_node_fr_deploy, prov_state):
+ with task_manager.acquire(self.context, self.node.uuid,
+ shared=False) as task:
+ task.node.provision_state = prov_state
+ mock_get_boot_opt.return_value = 'kickstart'
+ is_iscsi_boot_mock.return_value = False
+ get_boot_mode_mock.return_value = 'uefi'
+ task.driver.boot.prepare_instance(task)
+ update_boot_mode_mock.assert_called_once_with(task)
+ pxe_prepare_instance_mock.assert_called_once_with(mock.ANY, task)
+ self.assertIsNone(task.node.driver_internal_info.get(
+ 'ilo_uefi_iscsi_boot'))
+ mock_prep_node_fr_deploy.assert_called_once_with(task)
+
+ def test_prepare_instance_anaconda_deploying(self):
+ self._test_prepare_instance_anaconda(prov_state=states.DEPLOYING)
+
+ def test_prepare_instance_anaconda_rescuing(self):
+ self._test_prepare_instance_anaconda(prov_state=states.RESCUING)
+
+ def test_prepare_instance_anaconda_cleaning(self):
+ self._test_prepare_instance_anaconda(prov_state=states.CLEANING)
+
@mock.patch.object(deploy_utils, 'is_iscsi_boot',
spec_set=True, autospec=True)
@mock.patch.object(boot_mode_utils, 'get_boot_mode_for_deploy',