From 1ed9b6629e6413e9ddc3218f76adb61308b1d18f Mon Sep 17 00:00:00 2001 From: Costi Ciudatu Date: Thu, 11 Dec 2014 18:47:24 +0200 Subject: [PATCH] run_once tasks are skipped without checking the delegate_to host #9784 --- lib/ansible/runner/__init__.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index 47c1faadebc..b926caf8276 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -1461,9 +1461,15 @@ class Runner(object): # Expose the current hostgroup to the bypassing plugins self.host_set = hosts # We aren't iterating over all the hosts in this - # group. So, just pick the first host in our group to + # group. So, just choose the "delegate_to" host if that is defined and is + # one of the targeted hosts, otherwise pick the first host in our group to # construct the conn object with. - result_data = self._executor(hosts[0], None).result + if self.delegate_to is not None and self.delegate_to in hosts: + host = self.delegate_to + else: + host = hosts[0] + + result_data = self._executor(host, None).result # Create a ResultData item for each host in this group # using the returned result. If we didn't do this we would # get false reports of dark hosts.