summaryrefslogtreecommitdiff
path: root/ironic/drivers
diff options
context:
space:
mode:
authorShivanand Tendulker <stendulker@gmail.com>2020-09-23 10:07:41 -0400
committerShivanand Tendulker <stendulker@gmail.com>2020-09-25 05:05:50 +0000
commit76a6fca8d7c662779097ceeab5acc869d7a08437 (patch)
treeea638e6a8f6d598339dbf158f07225bd9db20bfd /ironic/drivers
parent484dcd5b60ae71d4647d31b87628f48bf947d05c (diff)
downloadironic-76a6fca8d7c662779097ceeab5acc869d7a08437.tar.gz
Use correct error handler instead of calling process_event('fail')
Drivers should be using error handler deploying_error_handler() or cleaning_error_handler() from conductor.utils for handling the failures of deploy or clean step instead of directly calling process_event('fail'). These handlers perform necessary cleaning before moving the node to failed state. Change-Id: I5d9b6831137cdef171a9929f144956f741390953
Diffstat (limited to 'ironic/drivers')
-rw-r--r--ironic/drivers/modules/ilo/management.py8
-rw-r--r--ironic/drivers/modules/ilo/raid.py6
2 files changed, 6 insertions, 8 deletions
diff --git a/ironic/drivers/modules/ilo/management.py b/ironic/drivers/modules/ilo/management.py
index 1baf82106..ef0dcddd1 100644
--- a/ironic/drivers/modules/ilo/management.py
+++ b/ironic/drivers/modules/ilo/management.py
@@ -791,10 +791,6 @@ class Ilo5Management(IloManagement):
task.node.driver_internal_info = driver_internal_info
task.node.save()
- def _set_clean_failed(self, task, msg):
- task.node.last_error = msg
- task.process_event('fail')
-
def _wait_for_disk_erase_status(self, node):
"""Wait for out-of-band sanitize disk erase to be completed."""
interval = CONF.ilo.oob_erase_devices_job_status_interval
@@ -932,7 +928,7 @@ class Ilo5Management(IloManagement):
'ilo_disk_erase_ssd_check',
'cleaning_reboot',
'skip_current_clean_step')
- self._set_clean_failed(task, ilo_exception)
+ manager_utils.cleaning_error_handler(task, ilo_exception)
@base.clean_step(priority=0, abortable=False)
def one_button_secure_erase(self, task):
@@ -968,4 +964,4 @@ class Ilo5Management(IloManagement):
LOG.error("One button secure erase job failed for node "
"%(node)s. Message: '%(message)s'.",
{'node': task.node.uuid, 'message': ilo_exception})
- self._set_clean_failed(task, ilo_exception)
+ manager_utils.cleaning_error_handler(task, ilo_exception)
diff --git a/ironic/drivers/modules/ilo/raid.py b/ironic/drivers/modules/ilo/raid.py
index 1b528fc0e..aa0e69855 100644
--- a/ironic/drivers/modules/ilo/raid.py
+++ b/ironic/drivers/modules/ilo/raid.py
@@ -72,8 +72,10 @@ class Ilo5RAID(base.RAIDInterface):
LOG.error("RAID configuration job failed for node %(node)s. "
"Message: '%(message)s'.",
{'node': task.node.uuid, 'message': msg})
- task.node.last_error = msg
- task.process_event('fail')
+ if task.node.provision_state == states.DEPLOYING:
+ manager_utils.deploying_error_handler(task, msg)
+ else:
+ manager_utils.cleaning_error_handler(task, msg)
def _set_driver_internal_true_value(self, task, *keys):
driver_internal_info = task.node.driver_internal_info