|
|
|
- name: simple block test
|
|
|
|
hosts: testhost
|
|
|
|
gather_facts: yes
|
|
|
|
strategy: "{{test_strategy|default('linear')}}"
|
|
|
|
vars:
|
|
|
|
block_tasks_run: false
|
|
|
|
block_rescue_run: false
|
|
|
|
block_always_run: false
|
|
|
|
nested_block_always_run: false
|
|
|
|
tasks_run_after_failure: false
|
|
|
|
rescue_run_after_failure: false
|
|
|
|
always_run_after_failure: false
|
|
|
|
nested_block_fail_always: false
|
|
|
|
tasks:
|
|
|
|
- block:
|
|
|
|
- name: set block tasks run flag
|
|
|
|
set_fact:
|
|
|
|
block_tasks_run: true
|
|
|
|
- name: EXPECTED FAILURE fail in tasks
|
|
|
|
fail:
|
|
|
|
- name: tasks flag should not be set after failure
|
|
|
|
set_fact:
|
|
|
|
tasks_run_after_failure: true
|
|
|
|
rescue:
|
|
|
|
- name: set block rescue run flag
|
|
|
|
set_fact:
|
|
|
|
block_rescue_run: true
|
|
|
|
- name: EXPECTED FAILURE fail in rescue
|
|
|
|
fail:
|
|
|
|
- name: tasks flag should not be set after failure in rescue
|
|
|
|
set_fact:
|
|
|
|
rescue_run_after_failure: true
|
|
|
|
always:
|
|
|
|
- name: set block always run flag
|
|
|
|
set_fact:
|
|
|
|
block_always_run: true
|
|
|
|
#- block:
|
|
|
|
# - meta: noop
|
|
|
|
# always:
|
|
|
|
# - name: set nested block always run flag
|
|
|
|
# set_fact:
|
|
|
|
# nested_block_always_run: true
|
|
|
|
# - name: fail in always
|
|
|
|
# fail:
|
|
|
|
# - name: tasks flag should not be set after failure in always
|
|
|
|
# set_fact:
|
|
|
|
# always_run_after_failure: true
|
|
|
|
- meta: clear_host_errors
|
|
|
|
|
|
|
|
# https://github.com/ansible/ansible/issues/35148
|
|
|
|
- block:
|
|
|
|
- block:
|
|
|
|
- name: EXPECTED FAILURE test triggering always by failing in nested block with run_once set
|
|
|
|
fail:
|
|
|
|
run_once: true
|
|
|
|
always:
|
|
|
|
- name: set block fail always run flag
|
|
|
|
set_fact:
|
|
|
|
nested_block_fail_always: true
|
|
|
|
- meta: clear_host_errors
|
|
|
|
|
|
|
|
- block:
|
|
|
|
- block:
|
|
|
|
- name: EXPECTED FAILURE test triggering always by failing in nested block with any_errors_fatal set
|
|
|
|
fail:
|
|
|
|
any_errors_fatal: true
|
|
|
|
always:
|
|
|
|
- name: set block fail always run flag
|
|
|
|
set_fact:
|
|
|
|
nested_block_fail_always: true
|
|
|
|
- meta: clear_host_errors
|
|
|
|
|
|
|
|
post_tasks:
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- block_tasks_run
|
|
|
|
- block_rescue_run
|
|
|
|
- block_always_run
|
|
|
|
#- nested_block_always_run
|
|
|
|
- not tasks_run_after_failure
|
|
|
|
- not rescue_run_after_failure
|
|
|
|
- not always_run_after_failure
|
|
|
|
- nested_block_fail_always
|
|
|
|
- debug: msg="TEST COMPLETE"
|
|
|
|
|
|
|
|
- name: block with includes
|
|
|
|
hosts: localhost
|
|
|
|
gather_facts: yes
|
|
|
|
strategy: "{{test_strategy|default('linear')}}"
|
|
|
|
vars:
|
|
|
|
rescue_run_after_include_fail: false
|
|
|
|
always_run_after_include_fail_in_rescue: false
|
|
|
|
tasks_run_after_failure: false
|
|
|
|
rescue_run_after_failure: false
|
|
|
|
always_run_after_failure: false
|
|
|
|
tasks:
|
|
|
|
- block:
|
|
|
|
- name: include fail.yml in tasks
|
|
|
|
include: fail.yml
|
|
|
|
args:
|
|
|
|
msg: "failed from tasks"
|
|
|
|
- name: tasks flag should not be set after failure
|
|
|
|
set_fact:
|
|
|
|
tasks_run_after_failure: true
|
|
|
|
rescue:
|
|
|
|
- set_fact:
|
|
|
|
rescue_run_after_include_fail: true
|
|
|
|
- name: include fail.yml in rescue
|
|
|
|
include: fail.yml
|
|
|
|
args:
|
|
|
|
msg: "failed from rescue"
|
|
|
|
- name: flag should not be set after failure in rescue
|
|
|
|
set_fact:
|
|
|
|
rescue_run_after_failure: true
|
|
|
|
always:
|
|
|
|
- set_fact:
|
|
|
|
always_run_after_include_fail_in_rescue: true
|
|
|
|
- meta: clear_host_errors
|
|
|
|
|
|
|
|
post_tasks:
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- rescue_run_after_include_fail
|
|
|
|
- always_run_after_include_fail_in_rescue
|
|
|
|
- not tasks_run_after_failure
|
|
|
|
- not rescue_run_after_failure
|
|
|
|
- not always_run_after_failure
|
|
|
|
- debug: msg="TEST COMPLETE"
|