Fail all hosts if a run_once task fails

Fixes #12563
This commit is contained in:
James Cammarata 2015-09-29 14:53:50 -04:00
parent 7173f587ed
commit a89412ecb1

View file

@ -180,6 +180,10 @@ class StrategyBase:
if result[0] == 'host_task_failed' or task_result.is_failed(): if result[0] == 'host_task_failed' or task_result.is_failed():
if not task.ignore_errors: if not task.ignore_errors:
self._display.debug("marking %s as failed" % host.name) self._display.debug("marking %s as failed" % host.name)
if task.run_once:
# if we're using run_once, we have to fail every host here
[iterator.mark_host_failed(h) for h in self._inventory.get_hosts(iterator._play.hosts) if h.name not in self._tqm._unreachable_hosts]
else:
iterator.mark_host_failed(host) iterator.mark_host_failed(host)
self._tqm._failed_hosts[host.name] = True self._tqm._failed_hosts[host.name] = True
self._tqm._stats.increment('failures', host.name) self._tqm._stats.increment('failures', host.name)