fixes for stripping (#52930)

function changed to do in place replacement, should be less expensive even with copy as it avoids 'sub copies', can compose with module_args_copy to create replacement for old behavior

  attempt to fix #52910

* handle lists and subdicts correctly
* added  missing exception case, which was not noticed since 'cleaning' was not working
* added comments to clarify exceptions
This commit is contained in:
Brian Coca
2019-03-12 18:18:38 -04:00
committed by GitHub
parent 7a387e216e
commit b793f08a92
11 changed files with 83 additions and 47 deletions

View File

@@ -0,0 +1 @@
shippable/posix/group2

View File

@@ -0,0 +1,23 @@
- name: loop_control/label https://github.com/ansible/ansible/pull/36430
hosts: localhost
gather_facts: false
tasks:
- 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 }}"
#
# - assert:
# that:
# - "output.results[0]['_ansible_item_label'] == 'looped_var foo_label'"
# - "output.results[1]['_ansible_item_label'] == 'looped_var bar_label'"

View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -eux
# user output has:
#ok: [localhost] => (item=looped_var foo_label) => {
#ok: [localhost] => (item=looped_var bar_label) => {
MATCH='foo_label
bar_label'
[ "$(ansible-playbook label.yml "$@" |grep 'item='|sed -e 's/^.*(item=looped_var \(.*\)).*$/\1/')" == "${MATCH}" ]