do not erroneously set gathered_facts=True
In `lib/ansible/executor/play_iterator.py`, ansible sets a host's `_gathered_facts` property to `True` without checking to see if there are any tasks to be executed. In the event that the entire play is skipped, `_gathered_facts` will be `True` even though the `setup` module was never run. This patch modifies the logic to only set `_gathered_facts` to `True` when there are tasks to execute. Closes #15744.
This commit is contained in:
parent
5c7ad654db
commit
21ac95402f
1 changed files with 4 additions and 4 deletions
|
@ -295,10 +295,10 @@ class PlayIterator:
|
||||||
setup_block = self._blocks[0]
|
setup_block = self._blocks[0]
|
||||||
if setup_block.has_tasks() and len(setup_block.block) > 0:
|
if setup_block.has_tasks() and len(setup_block.block) > 0:
|
||||||
task = setup_block.block[0]
|
task = setup_block.block[0]
|
||||||
if not peek:
|
if not peek:
|
||||||
# mark the host as having gathered facts, because we're
|
# mark the host as having gathered facts, because we're
|
||||||
# returning the setup task to be executed
|
# returning the setup task to be executed
|
||||||
host.set_gathered_facts(True)
|
host.set_gathered_facts(True)
|
||||||
else:
|
else:
|
||||||
# This is the second trip through ITERATING_SETUP, so we clear
|
# This is the second trip through ITERATING_SETUP, so we clear
|
||||||
# the flag and move onto the next block in the list while setting
|
# the flag and move onto the next block in the list while setting
|
||||||
|
|
Loading…
Reference in a new issue