From 0168e46f24d80718efd8eff4900f750b33aeb20e Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Mon, 13 May 2019 13:35:03 -0400 Subject: [PATCH] Isolate individual node errors in ipmi plugin If an individual node experiences an unexpected error, isolate the fallout to that specific node. --- .../confluent/plugins/hardwaremanagement/ipmi.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py index 8d0e610d..d18fb651 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py @@ -36,6 +36,8 @@ console = eventlet.import_patched('pyghmi.ipmi.console') ipmicommand = eventlet.import_patched('pyghmi.ipmi.command') import socket import ssl +import traceback + if not hasattr(ssl, 'SSLEOFError'): ssl.SSLEOFError = None @@ -229,7 +231,6 @@ def _ipmi_evtloop(): waiter = _ipmiwaiters.pop() waiter.send() except: # TODO(jbjohnso): log the trace into the log - import traceback traceback.print_exc() @@ -431,8 +432,8 @@ def perform_request(operator, node, element, except pygexc.InvalidParameterValue as e: results.put(msg.ConfluentNodeError(node, str(e))) except Exception as e: - results.put(e) - raise + results.put(msg.ConfluentNodeError(node, 'Unexpected Error')) + traceback.print_exc() finally: results.put('Done')