From bc0a0fb99ce7010d11966c805ef90ee2f0b93b99 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Mon, 20 Nov 2017 09:29:55 -0500 Subject: [PATCH] fix item var in delegation (#32986) * fix item var in delegation * fixed task ref * in case no loop (cherry picked from commit e19c994f5798b8bdcc7c3cfd89d5f7e575bacdeb) --- CHANGELOG.md | 2 ++ lib/ansible/vars/manager.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 966912e2b67..deec3f5b7a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -182,6 +182,8 @@ Ansible Changes By Release https://github.com/ansible/ansible/pull/32866 * restore host/group_vars merge order https://github.com/ansible/ansible/pull/32963 +* use correct loop var when delegating + https://github.com/ansible/ansible/pull/32986 diff --git a/lib/ansible/vars/manager.py b/lib/ansible/vars/manager.py index 6cac0cf2c17..2b401937bca 100644 --- a/lib/ansible/vars/manager.py +++ b/lib/ansible/vars/manager.py @@ -534,10 +534,11 @@ class VariableManager: items = [None] delegated_host_vars = dict() + item_var = getattr(task.loop_control, 'loop_var', 'item') for item in items: # update the variables with the item value for templating, in case we need it if item is not None: - vars_copy['item'] = item + vars_copy[item_var] = item templar.set_available_variables(vars_copy) delegated_host_name = templar.template(task.delegate_to, fail_on_undefined=False)