From 605156c9047a07e02cfaa3c36c3a063ff17af540 Mon Sep 17 00:00:00 2001 From: James Tanner Date: Tue, 25 Mar 2014 00:20:11 -0400 Subject: [PATCH] Fixes premature handler execution after adding force-handlers --- lib/ansible/playbook/__init__.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/ansible/playbook/__init__.py b/lib/ansible/playbook/__init__.py index 779f30088cc..8728965e68d 100644 --- a/lib/ansible/playbook/__init__.py +++ b/lib/ansible/playbook/__init__.py @@ -601,6 +601,7 @@ class PlayBook(object): play_hosts.append(all_hosts.pop()) serialized_batch.append(play_hosts) + task_errors = False for on_hosts in serialized_batch: # restrict the play to just the hosts we have in our on_hosts block that are @@ -657,16 +658,18 @@ class PlayBook(object): # if no hosts remain, drop out if not host_list: if self.force_handlers: - if not self.run_handlers(play): - return False + task_errors == True + break else: - self.callbacks.on_no_hosts_remaining() - return False - else: - self.inventory.lift_also_restriction() - if not self.run_handlers(play): return False + if task_errors and not self.force_handlers: + return False + else: + self.inventory.lift_also_restriction() + if not self.run_handlers(play): + return False + return True