diff options
author | Shivanand Tendulker <stendulker@gmail.com> | 2020-09-23 10:07:41 -0400 |
---|---|---|
committer | Shivanand Tendulker <stendulker@gmail.com> | 2020-09-25 05:05:50 +0000 |
commit | 76a6fca8d7c662779097ceeab5acc869d7a08437 (patch) | |
tree | ea638e6a8f6d598339dbf158f07225bd9db20bfd /ironic/drivers/modules/ilo | |
parent | 484dcd5b60ae71d4647d31b87628f48bf947d05c (diff) | |
download | ironic-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/modules/ilo')
-rw-r--r-- | ironic/drivers/modules/ilo/management.py | 8 | ||||
-rw-r--r-- | ironic/drivers/modules/ilo/raid.py | 6 |
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 |