You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.3 KiB
YAML
100 lines
2.3 KiB
YAML
# Verify behaviour of a single asynchronous task, and presence of all output
|
|
# fields.
|
|
|
|
- hosts: all
|
|
any_errors_fatal: true
|
|
tasks:
|
|
|
|
# Verify async jobs run in a new process.
|
|
|
|
- name: get process ID.
|
|
custom_python_detect_environment:
|
|
register: sync_proc1
|
|
|
|
- name: get process ID again.
|
|
custom_python_detect_environment:
|
|
register: sync_proc2
|
|
|
|
- assert:
|
|
that:
|
|
- sync_proc1.pid == sync_proc2.pid
|
|
when: is_mitogen
|
|
|
|
- name: get async process ID.
|
|
custom_python_detect_environment:
|
|
register: async_proc1
|
|
async: 1000
|
|
poll: 0
|
|
|
|
- name: busy-poll up to 100000 times
|
|
async_status:
|
|
jid: "{{async_proc1.ansible_job_id}}"
|
|
register: async_result1
|
|
until: async_result1.finished
|
|
retries: 100000
|
|
delay: 0
|
|
|
|
- name: get async process ID again.
|
|
custom_python_detect_environment:
|
|
register: async_proc2
|
|
async: 1000
|
|
poll: 0
|
|
|
|
- name: busy-poll up to 100000 times
|
|
async_status:
|
|
jid: "{{async_proc2.ansible_job_id}}"
|
|
register: async_result2
|
|
until: async_result2.finished
|
|
retries: 100000
|
|
delay: 0
|
|
|
|
- assert:
|
|
that:
|
|
- sync_proc1.pid == sync_proc2.pid
|
|
- async_result1.pid != sync_proc1.pid
|
|
- async_result1.pid != async_result2.pid
|
|
when: is_mitogen
|
|
|
|
# Verify output of a single async job.
|
|
|
|
- name: start 2 second op
|
|
shell: |
|
|
sleep 1;
|
|
echo alldone
|
|
async: 1000
|
|
poll: 0
|
|
register: job1
|
|
|
|
- assert:
|
|
that: |
|
|
job1.ansible_job_id and
|
|
(job1.changed == True) and
|
|
(job1.started == 1) and
|
|
(job1.changed == True) and
|
|
(job1.finished == 0)
|
|
|
|
- name: busy-poll up to 100000 times
|
|
async_status:
|
|
jid: "{{job1.ansible_job_id}}"
|
|
register: result1
|
|
until: result1.finished
|
|
retries: 100000
|
|
delay: 0
|
|
|
|
- assert:
|
|
that:
|
|
- result1.ansible_job_id == job1.ansible_job_id
|
|
- result1.attempts <= 100000
|
|
- result1.changed == True
|
|
- result1.cmd == "sleep 1;\n echo alldone"
|
|
- result1.delta|length == 14
|
|
- result1.start|length == 26
|
|
- result1.failed == False
|
|
- result1.finished == 1
|
|
- result1.rc == 0
|
|
- result1.start|length == 26
|
|
- result1.stderr == ""
|
|
- result1.stderr_lines == []
|
|
- result1.stdout == "alldone"
|
|
- result1.stdout_lines == ["alldone"]
|