diff --git a/tests/ansible/lib/callback/nice_stdout.py b/tests/ansible/lib/callback/nice_stdout.py index 1f7d7c89..1884ee5d 100644 --- a/tests/ansible/lib/callback/nice_stdout.py +++ b/tests/ansible/lib/callback/nice_stdout.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals import os import io +from ansible import constants as C from ansible.module_utils import six try: @@ -65,3 +66,34 @@ class CallbackModule(DefaultModule): import traceback traceback.print_exc() raise + + def v2_runner_on_failed(self, result, ignore_errors=False): + delegated_vars = result._result.get('_ansible_delegated_vars') + self._clean_results(result._result, result._task.action) + + if self._play.strategy == 'free' and self._last_task_banner != result._task._uuid: + self._print_task_banner(result._task) + + self._handle_exception(result._result) + self._handle_warnings(result._result) + + if result._task.loop and 'results' in result._result: + return + + if delegated_vars: + msg = "[%s -> %s]: FAILED! => %s" % ( + result._host.get_name(), + delegated_vars['ansible_host'], + self._dump_results(result._result), + ) + else: + msg = "[%s]: FAILED! => %s" % ( + result._host.get_name(), + self._dump_results(result._result), + ) + + s = "fatal: %s: %s" % ( + result._task.get_path() or '(dynamic task)', + msg, + ) + self._display.display(s, color=C.COLOR_ERROR)