I am having an issue with the default value not being honored for an 
undefined dictionary.  For example, if the setup is as follows

*- name: something*
*  file:*
*    path: /somepath*
*    owner: "{{ dir['owner'] | default('root') }}"*

and I have a variable of

*dir:*
*  owner: someowner*

when I run this, a file called* /somepath *is created with the owner 
*someowner*, as expected.  However, if the dictionary dir does not exist, I 
get an error of

*"the field 'args' has an invalid value, which appears to include a 
variable that is undefined.  The error was: 'dir' is undefined*

instead of running with the default as I would have expected.  if I flatten 
the variable structure to be

*dir_owner: someowner*

and change the task to be

*- name: something*
*  file:*
*    path: /somepath*
*    owner: "{{ dir_owner | default('root') }}"*

this works as expected.  The owner of the file is either someowner if 
defined or root if not.

-- 
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/47e00d9e-5792-4144-9d3a-895d19b96cc6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to