mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-28 07:31:23 -07:00
Fix triggering parent's always with run_once set (#35464)
This commit is contained in:
parent
2293252e52
commit
7c83f006c0
2 changed files with 16 additions and 1 deletions
|
@ -389,9 +389,10 @@ class StrategyModule(StrategyBase):
|
||||||
|
|
||||||
# if any_errors_fatal and we had an error, mark all hosts as failed
|
# if any_errors_fatal and we had an error, mark all hosts as failed
|
||||||
if any_errors_fatal and (len(failed_hosts) > 0 or len(unreachable_hosts) > 0):
|
if any_errors_fatal and (len(failed_hosts) > 0 or len(unreachable_hosts) > 0):
|
||||||
|
dont_fail_states = frozenset([iterator.ITERATING_RESCUE, iterator.ITERATING_ALWAYS])
|
||||||
for host in hosts_left:
|
for host in hosts_left:
|
||||||
(s, _) = iterator.get_next_task_for_host(host, peek=True)
|
(s, _) = iterator.get_next_task_for_host(host, peek=True)
|
||||||
if s.run_state != iterator.ITERATING_RESCUE or \
|
if s.run_state not in dont_fail_states or \
|
||||||
s.run_state == iterator.ITERATING_RESCUE and s.fail_state & iterator.FAILED_RESCUE != 0:
|
s.run_state == iterator.ITERATING_RESCUE and s.fail_state & iterator.FAILED_RESCUE != 0:
|
||||||
self._tqm._failed_hosts[host.name] = True
|
self._tqm._failed_hosts[host.name] = True
|
||||||
result |= self._tqm.RUN_FAILED_BREAK_PLAY
|
result |= self._tqm.RUN_FAILED_BREAK_PLAY
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
tasks_run_after_failure: false
|
tasks_run_after_failure: false
|
||||||
rescue_run_after_failure: false
|
rescue_run_after_failure: false
|
||||||
always_run_after_failure: false
|
always_run_after_failure: false
|
||||||
|
nested_block_fail_always: false
|
||||||
tasks:
|
tasks:
|
||||||
- block:
|
- block:
|
||||||
- name: set block tasks run flag
|
- name: set block tasks run flag
|
||||||
|
@ -46,6 +47,18 @@
|
||||||
# always_run_after_failure: true
|
# always_run_after_failure: true
|
||||||
- meta: clear_host_errors
|
- 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
|
||||||
|
|
||||||
post_tasks:
|
post_tasks:
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
|
@ -56,6 +69,7 @@
|
||||||
- not tasks_run_after_failure
|
- not tasks_run_after_failure
|
||||||
- not rescue_run_after_failure
|
- not rescue_run_after_failure
|
||||||
- not always_run_after_failure
|
- not always_run_after_failure
|
||||||
|
- nested_block_fail_always
|
||||||
- debug: msg="TEST COMPLETE"
|
- debug: msg="TEST COMPLETE"
|
||||||
|
|
||||||
- name: block with includes
|
- name: block with includes
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue