Set hosts fact gathering flag based on fact cache entries

Fixes #12213
This commit is contained in:
James Cammarata 2015-09-03 14:10:39 -04:00
commit 4ac2bafc4b
2 changed files with 12 additions and 2 deletions

View file

@ -109,7 +109,7 @@ class PlayIterator:
FAILED_RESCUE = 4
FAILED_ALWAYS = 8
def __init__(self, inventory, play, play_context, all_vars):
def __init__(self, inventory, play, play_context, variable_manager, all_vars):
self._play = play
self._blocks = []
@ -121,6 +121,10 @@ class PlayIterator:
self._host_states = {}
for host in inventory.get_hosts(self._play.hosts):
self._host_states[host.name] = HostState(blocks=self._blocks)
# if the host's name is in the variable manager's fact cache, then set
# its _gathered_facts flag to true for smart gathering tests later
if host.name in variable_manager._fact_cache:
host._gathered_facts = True
# if we're looking to start at a specific task, iterate through
# the tasks for this host until we find the specified task
if play_context.start_at_task is not None: