ansible/test/integration/targets/callback_default/test.yml
James Cassell bfd32c9b00 clean "changed" only after it has been processed (#59958)
* clean "changed" after it has been processed

without this change, a loop of `debug` tasks with `changed_when`
causes the "changed" status to get lost before output

* runme.sh tests for debug loop status
2019-10-10 18:24:31 -04:00

84 lines
1.7 KiB
YAML

---
- hosts: testhost
gather_facts: no
vars:
foo: foo bar
tasks:
- name: Changed task
command: echo foo
changed_when: true
notify: test handlers
- name: Ok task
command: echo foo
changed_when: false
- name: Failed task
fail:
msg: no reason
ignore_errors: yes
- name: Skipped task
command: echo foo
when: false
- name: Task with var in name ({{ foo }})
command: echo foo
- name: Loop task
command: echo foo
loop:
- 1
- 2
- 3
loop_control:
label: foo-{{ item }}
# detect "changed" debug tasks being hidden with display_ok_tasks=false
- name: debug loop
debug:
msg: debug-{{ item }}
changed_when: item == 1
failed_when: item == 2
when: item != 4
ignore_errors: yes
loop:
- 1
- 2
- 3
- 4
loop_control:
label: debug-{{ item }}
- block:
- name: EXPECTED FAILURE Failed task to be rescued
fail:
rescue:
- name: Rescue task
command: echo rescued
handlers:
- name: Test handler 1
command: echo foo
listen: test handlers
- name: Test handler 2
command: echo foo
changed_when: false
listen: test handlers
- name: Test handler 3
command: echo foo
listen: test handlers
# An issue was found previously for tasks in a play using strategy 'free' after
# a non-'free' play in the same playbook, so we protect against a regression.
- hosts: testhost
gather_facts: no
strategy: free
tasks:
- name: First free task
command: echo foo
- name: Second free task
command: echo foo