summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Kellogg-Stedman <lars@redhat.com>2016-05-05 23:45:06 -0400
committerLars Kellogg-Stedman <lars@redhat.com>2016-05-05 23:45:06 -0400
commit21ac95402f77ccbf2c19f03f37334d08ac24630e (patch)
treefd56fdf83195132472a295aa59222f3995db1dd0
parent5c7ad654db25e6e2d930ca9375b9b44bd9e2564a (diff)
downloadansible-21ac95402f77ccbf2c19f03f37334d08ac24630e.tar.gz
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.
-rw-r--r--lib/ansible/executor/play_iterator.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/ansible/executor/play_iterator.py b/lib/ansible/executor/play_iterator.py
index 3ab2e289ac..b5fc8bf5c3 100644
--- a/lib/ansible/executor/play_iterator.py
+++ b/lib/ansible/executor/play_iterator.py
@@ -295,10 +295,10 @@ class PlayIterator:
setup_block = self._blocks[0]
if setup_block.has_tasks() and len(setup_block.block) > 0:
task = setup_block.block[0]
- if not peek:
- # mark the host as having gathered facts, because we're
- # returning the setup task to be executed
- host.set_gathered_facts(True)
+ if not peek:
+ # mark the host as having gathered facts, because we're
+ # returning the setup task to be executed
+ host.set_gathered_facts(True)
else:
# This is the second trip through ITERATING_SETUP, so we clear
# the flag and move onto the next block in the list while setting