* Clear 'connection related' plugin vars for next loop iteration (#59024) Fixes #58876 (cherry picked from commita752e2a467
) * Preserve original variables when using a loop (#59426) Fixes #59414 (cherry picked from commit1010363c0b
)
This commit is contained in:
parent
a06b3a5174
commit
ed027203c6
3 changed files with 31 additions and 0 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- Do not re-use remote_user from previous loop iteration (https://github.com/ansible/ansible/issues/58876)
|
|
@ -410,6 +410,20 @@ class TaskExecutor:
|
||||||
results.append(res)
|
results.append(res)
|
||||||
del task_vars[loop_var]
|
del task_vars[loop_var]
|
||||||
|
|
||||||
|
# clear 'connection related' plugin variables for next iteration
|
||||||
|
if self._connection:
|
||||||
|
clear_plugins = {
|
||||||
|
'connection': self._connection._load_name,
|
||||||
|
'shell': self._connection._shell._load_name
|
||||||
|
}
|
||||||
|
if self._connection.become:
|
||||||
|
clear_plugins['become'] = self._connection.become._load_name
|
||||||
|
|
||||||
|
for plugin_type, plugin_name in iteritems(clear_plugins):
|
||||||
|
for var in C.config.get_plugin_vars(plugin_type, plugin_name):
|
||||||
|
if var in task_vars and var not in self._job_vars:
|
||||||
|
del task_vars[var]
|
||||||
|
|
||||||
self._task.no_log = no_log
|
self._task.no_log = no_log
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
|
@ -344,3 +344,18 @@
|
||||||
loop_var: "{{ loop_var_name }}"
|
loop_var: "{{ loop_var_name }}"
|
||||||
vars:
|
vars:
|
||||||
loop_var_name: templated_loop_var_name
|
loop_var_name: templated_loop_var_name
|
||||||
|
|
||||||
|
# https://github.com/ansible/ansible/issues/59414
|
||||||
|
- name: Test preserving original connection related vars
|
||||||
|
debug:
|
||||||
|
var: ansible_remote_tmp
|
||||||
|
vars:
|
||||||
|
ansible_remote_tmp: /tmp/test1
|
||||||
|
with_items:
|
||||||
|
- 1
|
||||||
|
- 2
|
||||||
|
register: loop_out
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- loop_out['results'][1]['ansible_remote_tmp'] == '/tmp/test1'
|
||||||
|
|
Loading…
Reference in a new issue