This is mostly due to how ansible casts values when dereferencing. It is always safest to use the |bool filter when evaluating a variable that you think should be a boolean.
Such as: when: not bar|bool Otherwise, in your example it is evaluating the string value "no" instead of a falsely YAML no value. And a non-zero length string evaluates as truthy. On Mon, May 18, 2015 at 10:15 AM, Petar Petkov <[email protected]> wrote: > Lets suppose we have the following code sample: > > - name: Bug report > hosts: localhost > gather_facts: no > connection: local > vars: > foo: no > bar: "{{ foo }}" > tasks: > - debug: msg='This should not be skipped!' > when: not bar > > > > Seeing the code one would expect that the message "This should not be > skipped" is displayed when the code is executed. In reality, however, the > code gets skipped because the bar parameter is not correctly resolved to > its value *no. *Rewriting the when clause to look like this: > when: not {{ bar }} > > seems to fix the problem. > Also it seems that this problem is only caused when the *not* operator is > used, because if I use the following code sample: > > - name: Bug report > hosts: localhost > gather_facts: no > connection: local > vars: > foo: yes > bar: "{{ foo }}" > tasks: > - debug: msg='This should not be skipped!' > when: bar > > > everything seems to work as expected. > > So is this a bug (perhaps a known issue) or am I doing something wrong? > > -- > 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/75974d5e-0fc8-4d37-b088-9950ff0abe5c%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/75974d5e-0fc8-4d37-b088-9950ff0abe5c%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Matt Martz @sivel sivel.net -- 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/CAD8N0v-j%3DPqYdE6T0tYEwe_UCUDW3qexeUFSe0i_ayDP9R%2BtkA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
