diff options
-rw-r--r-- | ironic/drivers/modules/ilo/deploy.py | 5 | ||||
-rw-r--r-- | ironic/tests/drivers/ilo/test_deploy.py | 7 | ||||
-rw-r--r-- | releasenotes/notes/ilo-automated-cleaning-fails-14ee438de3dd8690.yaml | 7 |
3 files changed, 17 insertions, 2 deletions
diff --git a/ironic/drivers/modules/ilo/deploy.py b/ironic/drivers/modules/ilo/deploy.py index 14542b329..792e51d26 100644 --- a/ironic/drivers/modules/ilo/deploy.py +++ b/ironic/drivers/modules/ilo/deploy.py @@ -690,6 +690,11 @@ class IloVirtualMediaAgentDeploy(base.DeployInterface): def prepare_cleaning(self, task): """Boot into the agent to prepare for cleaning.""" + + # Powering off the Node before initiating boot for node cleaning. + # If node is in system POST, setting boot device fails. + manager_utils.node_power_action(task, states.POWER_OFF) + # Create cleaning ports if necessary provider = dhcp_factory.DHCPFactory().provider diff --git a/ironic/tests/drivers/ilo/test_deploy.py b/ironic/tests/drivers/ilo/test_deploy.py index 06014bb40..c5e239607 100644 --- a/ironic/tests/drivers/ilo/test_deploy.py +++ b/ironic/tests/drivers/ilo/test_deploy.py @@ -1089,11 +1089,14 @@ class IloVirtualMediaAgentDeployTestCase(db_base.DbTestCase): spec_set=True, autospec=True) @mock.patch.object(ilo_deploy, '_prepare_agent_vmedia_boot', spec_set=True, autospec=True) - def test_prepare_cleaning(self, vmedia_boot_mock, create_port_mock, - delete_mock): + @mock.patch.object(manager_utils, 'node_power_action', spec_set=True, + autospec=True) + def test_prepare_cleaning(self, power_mock, vmedia_boot_mock, + create_port_mock, delete_mock): with task_manager.acquire(self.context, self.node.uuid, shared=False) as task: returned_state = task.driver.deploy.prepare_cleaning(task) + power_mock.assert_called_once_with(task, states.POWER_OFF) vmedia_boot_mock.assert_called_once_with(task) self.assertEqual(states.CLEANWAIT, returned_state) create_port_mock.assert_called_once_with(mock.ANY, task) diff --git a/releasenotes/notes/ilo-automated-cleaning-fails-14ee438de3dd8690.yaml b/releasenotes/notes/ilo-automated-cleaning-fails-14ee438de3dd8690.yaml new file mode 100644 index 000000000..d9ee80aac --- /dev/null +++ b/releasenotes/notes/ilo-automated-cleaning-fails-14ee438de3dd8690.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - Fixes issue where automated cleaning fails for iLO + drivers. + Automated cleaning fails for iLO driver if iLO is + in System POST state. iLO does not allow setting + of boot device when it is in System POST state. |