From cd70f514d6615d954dcc7e80c6438078a945b46e Mon Sep 17 00:00:00 2001 From: Lucas Alvares Gomes Date: Wed, 15 Jul 2015 15:23:45 +0100 Subject: [PATCH] Make the erase_devices clean step abortable This patches updates the get_clean_steps() method to make the erase_devices step abortable. Erasing devices is something that can be cancelled without damaging the machine. When a clean step is aborted the provision state of the Ironic node will go to CLEANFAIL state. The operator can then do what is needed to fix the problem (i.e network booting issues) and restart the cleaning later on. Partial-Bug: #1455825 Change-Id: Ic181ac3712810c6f6925e8b627ee79e77ecf4d83 --- ironic_python_agent/hardware.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ironic_python_agent/hardware.py b/ironic_python_agent/hardware.py index 49473ac2b..ebde7b018 100644 --- a/ironic_python_agent/hardware.py +++ b/ironic_python_agent/hardware.py @@ -234,6 +234,12 @@ class HardwareManager(object): 'reboot_requested': Whether the agent should request Ironic reboots the node via the power driver after the operation completes. + 'abortable': Boolean value. Whether the clean step can be + stopped by the operator or not. Some clean step may + cause non-reversible damage to a machine if interrupted + (i.e firmware update), for such steps this parameter + should be set to False. If no value is set for this + parameter, Ironic will consider False (non-abortable). } If multiple hardware managers return the same step name, the priority @@ -257,7 +263,8 @@ class HardwareManager(object): 'step': 'erase_devices', 'priority': 10, 'interface': 'deploy', - 'reboot_requested': False + 'reboot_requested': False, + 'abortable': True } ]