diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-03-04 11:46:53 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-03-04 11:46:53 +0000 |
commit | ee5a245806446caa8a1650bf2b945777fd74b786 (patch) | |
tree | 273a783712419c3a586a68a35276849d54bbb232 | |
parent | b8dfababce7ac463514ac6c6090e723ac96f58fa (diff) | |
parent | 4ab12310978f3f1a912f4f27a85064e791a36e56 (diff) | |
download | ironic-4.2.3.tar.gz |
Merge "Fixes automated cleaning failure in iLO drivers" into stable/liberty4.2.3
-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. |