So in my code I have a task
- name: cool task
shell: 'touch iamnotcool.txt'
when: me.cool is not defined
and my vars looks like
---
me:
stumped: yes
So when I run the task it comes back with the following error
{"failed": true, "msg": "The conditional check 'me.cool' failed. The error was: error while evaluating conditional (me.cool): 'dict object' has no attribute 'cool'.
The syntax you included:
is correct.
You can also use
not in
:The problem is that your error message:
claims your condition is defined as:
So, either there is some bug in the version you use (but you did not share which one it is) and there were known issues, or you did not post the exact task that caused the error.
You can avoid 'dict object' has no attribute by using jinja2 selectattr() syntax as in :
idea obtained from Michael Hoglan at https://groups.google.com/forum/#!topic/ansible-project/8XJkHQgttLA
Checking if the attribute is included in the set of attributes of the hash also works: