Do not cache the loop item label so that it will update with each item (#36609)

Add integration test for #36430 (#36432)

(cherry picked from commit d1f76939e5)
(cherry picked from commit 9fced4f0a9)
This commit is contained in:
Matt Davis 2018-02-22 16:08:00 -08:00 committed by GitHub
parent b1e125b718
commit ed9781bbfb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 1 deletions

View file

@ -332,7 +332,7 @@ class TaskExecutor:
res['_ansible_ignore_errors'] = task_fields.get('ignore_errors')
if label is not None:
res['_ansible_item_label'] = templar.template(label)
res['_ansible_item_label'] = templar.template(label, cache=False)
self._rslt_q.put(
TaskResult(

View file

@ -176,3 +176,29 @@
with_sequence: start=0 count=3
loop_control:
index_var: my_idx
#
# loop_control/label
# https://github.com/ansible/ansible/pull/36430
#
- set_fact:
loopthis:
- name: foo
label: foo_label
- name: bar
label: bar_label
- name: check that item label is updated each iteration
debug:
msg: "{{ looped_var.name }}"
with_items: "{{ loopthis }}"
loop_control:
loop_var: looped_var
label: "looped_var {{ looped_var.label }}"
register: output
- assert:
that:
- "output.results[0]['_ansible_item_label'] == 'looped_var foo_label'"
- "output.results[1]['_ansible_item_label'] == 'looped_var bar_label'"