From 126bc40ecf7ce5956397e163eaf9bbd35c13494b Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Fri, 27 May 2016 10:29:49 -0700 Subject: [PATCH] Do not remove exception from result, hide output. This allows all callback plugins access to exception details. --- lib/ansible/plugins/callback/__init__.py | 4 ++++ lib/ansible/plugins/callback/default.py | 6 ------ lib/ansible/plugins/callback/minimal.py | 3 --- lib/ansible/plugins/callback/oneline.py | 3 --- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/lib/ansible/plugins/callback/__init__.py b/lib/ansible/plugins/callback/__init__.py index 903bc53014..2eb0a805d2 100644 --- a/lib/ansible/plugins/callback/__init__.py +++ b/lib/ansible/plugins/callback/__init__.py @@ -103,6 +103,10 @@ class CallbackBase: if self._display.verbosity < 3 and 'diff' in result: del abridged_result['diff'] + # remove exception from screen output + if 'exception' in abridged_result: + del abridged_result['exception'] + return json.dumps(abridged_result, indent=indent, ensure_ascii=False, sort_keys=sort_keys) def _handle_warnings(self, res): diff --git a/lib/ansible/plugins/callback/default.py b/lib/ansible/plugins/callback/default.py index 63fc6bc743..63ef5288fb 100644 --- a/lib/ansible/plugins/callback/default.py +++ b/lib/ansible/plugins/callback/default.py @@ -46,9 +46,6 @@ class CallbackModule(CallbackBase): self._display.display(msg, color=C.COLOR_ERROR) - # finally, remove the exception from the result so it's not shown every time - del result._result['exception'] - if result._task.loop and 'results' in result._result: self._process_items(result) @@ -193,9 +190,6 @@ class CallbackModule(CallbackBase): self._display.display(msg, color=C.COLOR_ERROR) - # finally, remove the exception from the result so it's not shown every time - del result._result['exception'] - msg = "failed: " if delegated_vars: msg += "[%s -> %s]" % (result._host.get_name(), delegated_vars['ansible_host']) diff --git a/lib/ansible/plugins/callback/minimal.py b/lib/ansible/plugins/callback/minimal.py index 9fa257af74..33ddb16641 100644 --- a/lib/ansible/plugins/callback/minimal.py +++ b/lib/ansible/plugins/callback/minimal.py @@ -55,9 +55,6 @@ class CallbackModule(CallbackBase): self._display.display(msg, color=C.COLOR_ERROR) - # finally, remove the exception from the result so it's not shown every time - del result._result['exception'] - if result._task.action in C.MODULE_NO_JSON: self._display.display(self._command_generic_msg(result._host.get_name(), result._result, "FAILED"), color=C.COLOR_ERROR) else: diff --git a/lib/ansible/plugins/callback/oneline.py b/lib/ansible/plugins/callback/oneline.py index 0f6283fd44..c952f5df25 100644 --- a/lib/ansible/plugins/callback/oneline.py +++ b/lib/ansible/plugins/callback/oneline.py @@ -56,9 +56,6 @@ class CallbackModule(CallbackBase): else: self._display.display(msg, color=C.COLOR_ERROR) - # finally, remove the exception from the result so it's not shown every time - del result._result['exception'] - self._display.display("%s | FAILED! => %s" % (result._host.get_name(), self._dump_results(result._result, indent=0).replace('\n','')), color=C.COLOR_ERROR) def v2_runner_on_ok(self, result):