diff --git a/actions/get_formatted_error.py b/actions/get_formatted_error.py index 24b9db2..e452c38 100644 --- a/actions/get_formatted_error.py +++ b/actions/get_formatted_error.py @@ -25,6 +25,16 @@ def __init__(self, config): """ super(GetFormattedError, self).__init__(config) + def parse_errors_list(self, errors): + error_string = "" + for error in errors: + if isinstance(error, dict): + error_string += error['error'] + else: + error_string += error + + return error_string + def run(self, **kwargs): st2_exe_id = kwargs['st2_exe_id'] @@ -43,6 +53,9 @@ def run(self, **kwargs): if html_tags: errors += self.format_error_strings(self.get_error_message(exe.result)) else: + errors = self.get_error_message(exe.result) + if isinstance(errors, list): + errors += self.parse_errors_list(errors) errors += self.get_error_message(exe.result) return errors diff --git a/actions/lib/base_action.py b/actions/lib/base_action.py index 845a464..cacb137 100644 --- a/actions/lib/base_action.py +++ b/actions/lib/base_action.py @@ -171,9 +171,9 @@ def get_error_message(self, error_result): return error_result['error'] # Bolt plans (https://github.com/StackStorm-Exchange/stackstorm-bolt) - if ('result' in error_result and - error_result['result'] and - error_result['result'] != 'None'): + if ('result' in error_result + and error_result['result'] + and error_result['result'] != 'None'): if 'details' in error_result['result']: if 'result_set' in error_result['result']['details']: result_set = error_result['result']['details']['result_set'][0]