From 978dd9f541388c1de41f59cdc342a9349b630322 Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Mon, 5 Aug 2019 10:36:41 -0500 Subject: [PATCH] [stable-2.8] Fix async output with adhoc callbacks. Fixes #15988 (#59935) (cherry picked from commit df6b8d2) Co-authored-by: Matt Martz --- changelogs/fragments/adhoc-command-async-output.yaml | 3 +++ lib/ansible/plugins/callback/minimal.py | 2 +- lib/ansible/plugins/callback/oneline.py | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/adhoc-command-async-output.yaml diff --git a/changelogs/fragments/adhoc-command-async-output.yaml b/changelogs/fragments/adhoc-command-async-output.yaml new file mode 100644 index 00000000000..80da9fcd2b1 --- /dev/null +++ b/changelogs/fragments/adhoc-command-async-output.yaml @@ -0,0 +1,3 @@ +bugfixes: +- async - Fix async callback plugins to allow async output to be displayed + when running command/shell (https://github.com/ansible/ansible/issues/15988) diff --git a/lib/ansible/plugins/callback/minimal.py b/lib/ansible/plugins/callback/minimal.py index 111814f0c95..8d3aef5b725 100644 --- a/lib/ansible/plugins/callback/minimal.py +++ b/lib/ansible/plugins/callback/minimal.py @@ -62,7 +62,7 @@ class CallbackModule(CallbackBase): color = C.COLOR_OK state = 'SUCCESS' - if result._task.action in C.MODULE_NO_JSON: + if result._task.action in C.MODULE_NO_JSON and 'ansible_job_id' not in result._result: self._display.display(self._command_generic_msg(result._host.get_name(), result._result, state), color=color) else: self._display.display("%s | %s => %s" % (result._host.get_name(), state, self._dump_results(result._result, indent=4)), color=color) diff --git a/lib/ansible/plugins/callback/oneline.py b/lib/ansible/plugins/callback/oneline.py index b89f8b6ed59..20b5be7f71c 100644 --- a/lib/ansible/plugins/callback/oneline.py +++ b/lib/ansible/plugins/callback/oneline.py @@ -64,7 +64,7 @@ class CallbackModule(CallbackBase): color = C.COLOR_OK state = 'SUCCESS' - if result._task.action in C.MODULE_NO_JSON: + if result._task.action in C.MODULE_NO_JSON and 'ansible_job_id' not in result._result: self._display.display(self._command_generic_msg(result._host.get_name(), result._result, state), color=color) else: self._display.display("%s | %s => %s" % (result._host.get_name(), state, self._dump_results(result._result, indent=0).replace('\n', '')),