From ba89b2a095df3a7e46212eb17d73378b923e4abc Mon Sep 17 00:00:00 2001 From: Vincent Roy Date: Tue, 12 Apr 2016 19:04:44 -0300 Subject: [PATCH] Backward compatibility execution failures with 1.9 --- lib/ansible/executor/playbook_executor.py | 3 +-- lib/ansible/plugins/strategy/linear.py | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/ansible/executor/playbook_executor.py b/lib/ansible/executor/playbook_executor.py index 7179692123..501e90ee2c 100644 --- a/lib/ansible/executor/playbook_executor.py +++ b/lib/ansible/executor/playbook_executor.py @@ -151,9 +151,8 @@ class PlaybookExecutor: elif len(batch) == failed_hosts_count: break - # clear the failed hosts dictionaires in the TQM for the next batch + # save the unreachable hosts from this batch self._unreachable_hosts.update(self._tqm._unreachable_hosts) - self._tqm.clear_failed_hosts() # if the last result wasn't zero or 3 (some hosts were unreachable), # break out of the serial batch loop diff --git a/lib/ansible/plugins/strategy/linear.py b/lib/ansible/plugins/strategy/linear.py index 9ab302e0da..c386df7fe1 100644 --- a/lib/ansible/plugins/strategy/linear.py +++ b/lib/ansible/plugins/strategy/linear.py @@ -163,7 +163,7 @@ class StrategyModule(StrategyBase): try: display.debug("getting the remaining hosts for this loop") - hosts_left = [host for host in self._inventory.get_hosts(iterator._play.hosts) if host.name not in self._tqm._unreachable_hosts] + hosts_left = [host for host in self._inventory.get_hosts(iterator._play.hosts) if host.name not in self._tqm._unreachable_hosts and not iterator.is_failed(host)] display.debug("done getting the remaining hosts for this loop") # queue up this task for each host in the inventory @@ -350,7 +350,7 @@ class StrategyModule(StrategyBase): display.debug("checking for any_errors_fatal") failed_hosts = [] for res in results: - if res.is_failed() or res.is_unreachable(): + if res.is_failed(): failed_hosts.append(res._host.name) # if any_errors_fatal and we had an error, mark all hosts as failed