summaryrefslogtreecommitdiff
path: root/ironic/drivers/modules/drac
diff options
context:
space:
mode:
Diffstat (limited to 'ironic/drivers/modules/drac')
-rw-r--r--ironic/drivers/modules/drac/management.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/ironic/drivers/modules/drac/management.py b/ironic/drivers/modules/drac/management.py
index 96e8dd5b5..56e233257 100644
--- a/ironic/drivers/modules/drac/management.py
+++ b/ironic/drivers/modules/drac/management.py
@@ -545,9 +545,21 @@ class DracRedfishManagement(redfish_management.RedfishManagement):
info.pop('import_task_monitor_url', None)
node.driver_internal_info = info
+ succeeded = False
if (import_task.task_state == sushy.TASK_STATE_COMPLETED
and import_task.task_status in
[sushy.HEALTH_OK, sushy.HEALTH_WARNING]):
+
+ # Task could complete with errors (partial success)
+ # iDRAC 5.00.00.00 has stopped reporting Critical messages
+ # so checking also by message_id
+ succeeded = not any(m.message for m in import_task.messages
+ if (m.severity
+ and m.severity != sushy.SEVERITY_OK)
+ or (m.message_id and 'SYS055'
+ in m.message_id))
+
+ if succeeded:
LOG.info('Configuration import %(task_monitor_url)s '
'successful for node %(node)s',
{'node': node.uuid,
@@ -577,7 +589,11 @@ class DracRedfishManagement(redfish_management.RedfishManagement):
# Select all messages, skipping OEM messages that don't have
# `message` field populated.
messages = [m.message for m in import_task.messages
- if m.message is not None]
+ if m.message is not None
+ and ((m.severity
+ and m.severity != sushy.SEVERITY_OK)
+ or (m.message_id
+ and 'SYS055' in m.message_id))]
error_msg = (_("Failed import configuration task: "
"%(task_monitor_url)s. Message: '%(message)s'.")
% {'task_monitor_url': task_monitor_url,