- name: integration/async/result_shell_echo_hi.yml gather_facts: true hosts: test-targets tasks: - name: Async shell shell: echo hi; echo there >&2 async: 100 poll: 0 register: job - name: Sleepy shell shell: sleep 1 - name: Slurp async shell slurp: src: "{{ansible_user_dir}}/.ansible_async/{{job.ansible_job_id}}" register: result #- debug: msg="{{result.content|b64decode|from_json}}" - assert: that: - async_out.changed == True - 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; 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 - async_out.invocation.module_args.executable == None - async_out.invocation.module_args.removes == None # | Ansible <= 3 | ansible-core <= 2.10 | present | True | # | Ansible 4 - 6 | ansible-core 2.11 - 2.13 | deprecated | False | # | Ansible >= 7 | ansible-core >= 2.14 | absent | n/a | - (ansible_version.full is version("2.14", ">=", strict=True) and async_out.invocation.module_args.warn is not defined) or (ansible_version.full is version("2.11", ">=", strict=True) and async_out.invocation.module_args.warn == False) or (async_out.invocation.module_args.warn == True) - async_out.rc == 0 - async_out.start.startswith("20") - async_out.stderr == "there" - async_out.stdout == "hi" fail_msg: async_out={{async_out}} vars: async_out: "{{result.content|b64decode|from_json}}" - assert: that: - async_out.invocation.module_args.stdin == None fail_msg: async_out={{async_out}} when: - ansible_version.full is version('2.4', '>=', strict=True) vars: async_out: "{{result.content|b64decode|from_json}}" tags: - result_shell_echo_hi