Merge "Handle servicing failures in the Redfish BIOS interface"
This commit is contained in:
commit
7d1bc77861
@ -1561,6 +1561,22 @@ def reboot_to_finish_step(task, timeout=None):
|
|||||||
return get_async_step_return_state(task.node)
|
return get_async_step_return_state(task.node)
|
||||||
|
|
||||||
|
|
||||||
|
def step_error_handler(task, logmsg, errmsg=None):
|
||||||
|
"""Run the correct handler for the current step.
|
||||||
|
|
||||||
|
:param task: a TaskManager instance.
|
||||||
|
:param logmsg: Message to be logged.
|
||||||
|
:param errmsg: Message for the user. Optional, if not provided `logmsg` is
|
||||||
|
used.
|
||||||
|
"""
|
||||||
|
if task.node.provision_state in [states.CLEANING, states.CLEANWAIT]:
|
||||||
|
manager_utils.cleaning_error_handler(task, logmsg, errmsg=errmsg)
|
||||||
|
elif task.node.provision_state in [states.DEPLOYING, states.DEPLOYWAIT]:
|
||||||
|
manager_utils.deploying_error_handler(task, logmsg, errmsg=errmsg)
|
||||||
|
elif task.node.provision_state in [states.SERVICING, states.SERVICEWAIT]:
|
||||||
|
manager_utils.servicing_error_handler(task, logmsg, errmsg=errmsg)
|
||||||
|
|
||||||
|
|
||||||
def get_root_device_for_deploy(node):
|
def get_root_device_for_deploy(node):
|
||||||
"""Get a root device requested for deployment or None.
|
"""Get a root device requested for deployment or None.
|
||||||
|
|
||||||
|
@ -18,8 +18,6 @@ import sushy
|
|||||||
|
|
||||||
from ironic.common import exception
|
from ironic.common import exception
|
||||||
from ironic.common.i18n import _
|
from ironic.common.i18n import _
|
||||||
from ironic.common import states
|
|
||||||
from ironic.conductor import utils as manager_utils
|
|
||||||
from ironic.drivers import base
|
from ironic.drivers import base
|
||||||
from ironic.drivers.modules import deploy_utils
|
from ironic.drivers.modules import deploy_utils
|
||||||
from ironic.drivers.modules.redfish import utils as redfish_utils
|
from ironic.drivers.modules.redfish import utils as redfish_utils
|
||||||
@ -364,7 +362,4 @@ class RedfishBIOS(base.BIOSInterface):
|
|||||||
last_error = (_('Redfish BIOS apply_configuration step failed. '
|
last_error = (_('Redfish BIOS apply_configuration step failed. '
|
||||||
'Attributes %(attrs)s are not updated.') %
|
'Attributes %(attrs)s are not updated.') %
|
||||||
{'attrs': attrs_not_updated})
|
{'attrs': attrs_not_updated})
|
||||||
if task.node.provision_state in [states.CLEANING, states.CLEANWAIT]:
|
deploy_utils.step_error_handler(task, error_msg, last_error)
|
||||||
manager_utils.cleaning_error_handler(task, last_error)
|
|
||||||
if task.node.provision_state in [states.DEPLOYING, states.DEPLOYWAIT]:
|
|
||||||
manager_utils.deploying_error_handler(task, error_msg, last_error)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user