From b731c2d8092934e48053ae9f90a35d998e89cf5d Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Wed, 3 May 2017 16:30:20 -0400 Subject: [PATCH] include_vars to delegated only if delegate_facts (#24259) * include_vars to delegated only if delegate_facts fixes #24172 * since code is now same, simplified --- lib/ansible/plugins/strategy/__init__.py | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/lib/ansible/plugins/strategy/__init__.py b/lib/ansible/plugins/strategy/__init__.py index ce575fe6675..99d65ff3853 100644 --- a/lib/ansible/plugins/strategy/__init__.py +++ b/lib/ansible/plugins/strategy/__init__.py @@ -490,25 +490,19 @@ class StrategyBase: if 'ansible_facts' in result_item: - if original_task.action == 'include_vars': - - if original_task.delegate_to is not None: - host_list = self.get_delegated_hosts(result_item, original_task) - else: - host_list = self.get_task_hosts(iterator, original_host, original_task) + # if delegated fact and we are delegating facts, we need to change target host for them + if original_task.delegate_to is not None and original_task.delegate_facts: + host_list = self.get_delegated_hosts(result_item, original_task) + else: + host_list = self.get_task_hosts(iterator, original_host, original_task) + if original_task.action == 'include_vars': for (var_name, var_value) in iteritems(result_item['ansible_facts']): # find the host we're actually referring too here, which may # be a host that is not really in inventory at all for target_host in host_list: self._variable_manager.set_host_variable(target_host, var_name, var_value) else: - # if delegated fact and we are delegating facts, we need to change target host for them - if original_task.delegate_to is not None and original_task.delegate_facts: - host_list = self.get_delegated_hosts(result_item, original_task) - else: - host_list = self.get_task_hosts(iterator, original_host, original_task) - for target_host in host_list: if original_task.action == 'set_fact': self._variable_manager.set_nonpersistent_facts(target_host, result_item['ansible_facts'].copy())