Only gather facts once per node per playbook run

Unless gather_facts: True is on the play
This commit is contained in:
Daniel Hokka Zakrisson 2012-09-28 16:57:35 +02:00
parent 56d45074af
commit 564a212b3c
2 changed files with 6 additions and 2 deletions

View file

@ -314,8 +314,12 @@ class PlayBook(object):
host_list = [ h for h in self.inventory.list_hosts(play.hosts)
if not (h in self.stats.failures or h in self.stats.dark) ]
if not play.gather_facts:
if play.gather_facts is False:
return {}
elif play.gather_facts is None:
host_list = [h for h in host_list if h not in self.SETUP_CACHE]
if len(host_list) == 0:
return {}
self.callbacks.on_setup()
self.inventory.restrict_to(host_list)

View file

@ -75,7 +75,7 @@ class Play(object):
self.sudo_user = utils.template(basedir, ds.get('sudo_user', self.playbook.sudo_user), playbook.extra_vars)
self.transport = ds.get('connection', self.playbook.transport)
self.tags = ds.get('tags', None)
self.gather_facts = ds.get('gather_facts', True)
self.gather_facts = ds.get('gather_facts', None)
self.serial = ds.get('serial', 0)
self._update_vars_files_for_host(None)