Exceptit (#21864)
* more centralized exception handling * only remove when verboxse
This commit is contained in:
parent
89bf14e467
commit
b3251c9585
3 changed files with 19 additions and 28 deletions
|
@ -109,6 +109,20 @@ class CallbackBase:
|
|||
self._display.deprecated(**warning)
|
||||
del res['deprecations']
|
||||
|
||||
def _handle_exception(self, result):
|
||||
|
||||
if 'exception' in result:
|
||||
msg = "An exception occurred during task execution. "
|
||||
if self._display.verbosity < 3:
|
||||
# extract just the actual error message from the exception text
|
||||
error = result['exception'].strip().split('\n')[-1]
|
||||
msg += "To see the full traceback, use -vvv. The error was: %s" % error
|
||||
else:
|
||||
msg = "The full traceback is:\n" + result['exception']
|
||||
del result['exception']
|
||||
|
||||
self._display.display(msg, color=C.COLOR_ERROR)
|
||||
|
||||
def _get_diff(self, difflist):
|
||||
|
||||
if not isinstance(difflist, list):
|
||||
|
@ -197,6 +211,7 @@ class CallbackBase:
|
|||
if 'invocation' in result and task_name in ['debug']:
|
||||
del result['invocation']
|
||||
|
||||
|
||||
def set_play_context(self, play_context):
|
||||
pass
|
||||
|
||||
|
|
|
@ -46,16 +46,7 @@ class CallbackModule(CallbackBase):
|
|||
self._print_task_banner(result._task)
|
||||
|
||||
delegated_vars = result._result.get('_ansible_delegated_vars', None)
|
||||
if 'exception' in result._result:
|
||||
if self._display.verbosity < 3:
|
||||
# extract just the actual error message from the exception text
|
||||
error = result._result['exception'].strip().split('\n')[-1]
|
||||
msg = "An exception occurred during task execution. To see the full traceback, use -vvv. The error was: %s" % error
|
||||
else:
|
||||
msg = "An exception occurred during task execution. The full traceback is:\n" + result._result['exception']
|
||||
|
||||
self._display.display(msg, color=C.COLOR_ERROR)
|
||||
|
||||
self._handle_exception(result._result)
|
||||
self._handle_warnings(result._result)
|
||||
|
||||
if result._task.loop and 'results' in result._result:
|
||||
|
@ -212,16 +203,9 @@ class CallbackModule(CallbackBase):
|
|||
self._display.display(msg, color=color)
|
||||
|
||||
def v2_runner_item_on_failed(self, result):
|
||||
delegated_vars = result._result.get('_ansible_delegated_vars', None)
|
||||
if 'exception' in result._result:
|
||||
if self._display.verbosity < 3:
|
||||
# extract just the actual error message from the exception text
|
||||
error = result._result['exception'].strip().split('\n')[-1]
|
||||
msg = "An exception occurred during task execution. To see the full traceback, use -vvv. The error was: %s" % error
|
||||
else:
|
||||
msg = "An exception occurred during task execution. The full traceback is:\n" + result._result['exception']
|
||||
|
||||
self._display.display(msg, color=C.COLOR_ERROR)
|
||||
delegated_vars = result._result.get('_ansible_delegated_vars', None)
|
||||
self._handle_exception(result._result)
|
||||
|
||||
msg = "failed: "
|
||||
if delegated_vars:
|
||||
|
|
|
@ -45,16 +45,8 @@ class CallbackModule(CallbackBase):
|
|||
return buf + "\n"
|
||||
|
||||
def v2_runner_on_failed(self, result, ignore_errors=False):
|
||||
if 'exception' in result._result:
|
||||
if self._display.verbosity < 3:
|
||||
# extract just the actual error message from the exception text
|
||||
error = result._result['exception'].strip().split('\n')[-1]
|
||||
msg = "An exception occurred during task execution. To see the full traceback, use -vvv. The error was: %s" % error
|
||||
else:
|
||||
msg = "An exception occurred during task execution. The full traceback is:\n" + result._result['exception']
|
||||
|
||||
self._display.display(msg, color=C.COLOR_ERROR)
|
||||
|
||||
self._handle_exception(result._result)
|
||||
self._handle_warnings(result._result)
|
||||
|
||||
if result._task.action in C.MODULE_NO_JSON and 'module_stderr' not in result._result:
|
||||
|
|
Loading…
Reference in a new issue