ansible: capture stderr stream of async tasks. Closes #540.

pull/564/head
David Wilson 6 years ago
parent 4be4b085e3
commit 1c955a9876

@ -502,7 +502,7 @@ class AsyncRunner(object):
) )
result = json.loads(filtered) result = json.loads(filtered)
result.setdefault('warnings', []).extend(warnings) result.setdefault('warnings', []).extend(warnings)
result['stderr'] = dct['stderr'] result['stderr'] = dct['stderr'] or result.get('stderr', '')
self._update(result) self._update(result)
def _run(self): def _run(self):

@ -144,6 +144,9 @@ Fixes
* `#538 <https://github.com/dw/mitogen/issues/538>`_: the Mitogen source * `#538 <https://github.com/dw/mitogen/issues/538>`_: the Mitogen source
distribution includes a requisite ``LICENSE`` file. distribution includes a requisite ``LICENSE`` file.
* `#540 <https://github.com/dw/mitogen/issues/540>`_: the ``stderr`` stream of
async module invocations was previously discarded.
* `748f5f67 <https://github.com/dw/mitogen/commit/748f5f67>`_: the * `748f5f67 <https://github.com/dw/mitogen/commit/748f5f67>`_: the
``ansible_ssh_host`` variable is respected when ``mitogen_via=`` is active. ``ansible_ssh_host`` variable is respected when ``mitogen_via=`` is active.

@ -5,7 +5,7 @@
any_errors_fatal: true any_errors_fatal: true
tasks: tasks:
- shell: echo hi - shell: echo hi; echo there >&2
async: 100 async: 100
poll: 0 poll: 0
register: job register: job
@ -21,10 +21,10 @@
- assert: - assert:
that: that:
- async_out.changed == True - async_out.changed == True
- async_out.cmd == "echo hi" - async_out.cmd == "echo hi; echo there >&2"
- 'async_out.delta.startswith("0:00:")' - 'async_out.delta.startswith("0:00:")'
- async_out.end.startswith("20") - async_out.end.startswith("20")
- async_out.invocation.module_args._raw_params == "echo hi" - async_out.invocation.module_args._raw_params == "echo hi; echo there >&2"
- async_out.invocation.module_args._uses_shell == True - async_out.invocation.module_args._uses_shell == True
- async_out.invocation.module_args.chdir == None - async_out.invocation.module_args.chdir == None
- async_out.invocation.module_args.creates == None - async_out.invocation.module_args.creates == None
@ -33,7 +33,7 @@
- async_out.invocation.module_args.warn == True - async_out.invocation.module_args.warn == True
- async_out.rc == 0 - async_out.rc == 0
- async_out.start.startswith("20") - async_out.start.startswith("20")
- async_out.stderr == "" - async_out.stderr == "there"
- async_out.stdout == "hi" - async_out.stdout == "hi"
vars: vars:
async_out: "{{result.content|b64decode|from_json}}" async_out: "{{result.content|b64decode|from_json}}"

Loading…
Cancel
Save