I'm testing existing roles and playbooks against Ansible 2.2, and I've
noticed that several roles that I have written that take advantage of
"when: variable is defined" or "when: variable is undefined" in tasks no
longer work. This happens when a variable is used from a previous task,
but is empty because maybe the results were empty. Here is an example:
- name: Find existing rules
> find: path=/etc/software/rules/
> register: existing_rules
> - name: Clean rules
> file: path={{ item }} state=absent
> with_items: "{{ existing_rules.files | map(attribute='path') | list }}"
> when: existing_rules is defined
In this case, there were no existing files, so the variable is empty and I
would expect this *Clean rules* task to be skipped, but instead Ansible
errors with something like
> FAILED! => {"failed": true, "msg": "'dict object' has no attribute
> 'files'"}
What are the options then to allow for this sort of conditional logic?
This definitely worked in Ansible 2.1, but I don't recall if any
DEPRECATED warnings were given.
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/0240be2f-27d7-41f3-a188-7c346d01e593%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.