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

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

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

@ -144,6 +144,9 @@ Fixes
* `#538 <https://github.com/dw/mitogen/issues/538>`_: the Mitogen source
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
``ansible_ssh_host`` variable is respected when ``mitogen_via=`` is active.

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

Loading…
Cancel
Save