Use delegated vars for the delegated host name
In _process_pending_results (strategy/__init__.py), we were using the delegate_to field directly from the original task, which was not being templated correctly. As an alternate to #23599, this patch instead pulls the host name out of the delegated vars passed back in the task result dictionary to avoid having to re-template things. Fixes #23599 Fixes #20508
This commit is contained in:
parent
9a958da57e
commit
e5cd675b38
1 changed files with 7 additions and 5 deletions
|
@ -241,11 +241,13 @@ class StrategyBase:
|
|||
return host_list
|
||||
|
||||
def get_delegated_hosts(self, result, task):
|
||||
|
||||
host_name = task.delegate_to
|
||||
actual_host = self._inventory.get_host(host_name)
|
||||
if actual_host is None:
|
||||
actual_host = Host(name=host_name)
|
||||
host_name = result.get('_ansible_delegated_vars', {}).get('ansible_host', None)
|
||||
if host_name is not None:
|
||||
actual_host = self._inventory.get_host(host_name)
|
||||
if actual_host is None:
|
||||
actual_host = Host(name=host_name)
|
||||
else:
|
||||
actual_host = Host(name=task.delegate_to)
|
||||
|
||||
return [actual_host]
|
||||
|
||||
|
|
Loading…
Reference in a new issue