1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Merge pull request #1701 from dhozac/serial-skip-failed

Skip already failed hosts for serial
This commit is contained in:
Michael DeHaan 2012-11-28 05:07:23 -08:00
commit 93fe43f0c4

View file

@ -239,10 +239,17 @@ class PlayBook(object):
# ***************************************************** # *****************************************************
def _list_available_hosts(self):
''' returns a list of hosts that haven't failed and aren't dark '''
return [ h for h in self.inventory.list_hosts() if (h not in self.stats.failures) and (h not in self.stats.dark)]
# *****************************************************
def _run_task_internal(self, task): def _run_task_internal(self, task):
''' run a particular module step in a playbook ''' ''' run a particular module step in a playbook '''
hosts = [ h for h in self.inventory.list_hosts() if (h not in self.stats.failures) and (h not in self.stats.dark)] hosts = self._list_available_hosts()
self.inventory.restrict_to(hosts) self.inventory.restrict_to(hosts)
runner = ansible.runner.Runner( runner = ansible.runner.Runner(
@ -340,8 +347,7 @@ class PlayBook(object):
def _do_setup_step(self, play): def _do_setup_step(self, play):
''' get facts from the remote system ''' ''' get facts from the remote system '''
host_list = [ h for h in self.inventory.list_hosts(play.hosts) host_list = self._list_available_hosts()
if not (h in self.stats.failures or h in self.stats.dark) ]
if play.gather_facts is False: if play.gather_facts is False:
return {} return {}
@ -390,7 +396,7 @@ class PlayBook(object):
# now with that data, handle contentional variable file imports! # now with that data, handle contentional variable file imports!
all_hosts = self.inventory.list_hosts(play.hosts) all_hosts = self._list_available_hosts()
play.update_vars_files(all_hosts) play.update_vars_files(all_hosts)
serialized_batch = [] serialized_batch = []
@ -425,8 +431,7 @@ class PlayBook(object):
# just didn't match anything and that's ok # just didn't match anything and that's ok
return False return False
host_list = [ h for h in self.inventory.list_hosts(play.hosts) host_list = self._list_available_hosts()
if not (h in self.stats.failures or h in self.stats.dark) ]
# if no hosts remain, drop out # if no hosts remain, drop out
if not host_list: if not host_list: