I knew I was missing something obvious. I totally blanked that you can use straight Python in when. Duh. Thanks!
On Sat, Mar 8, 2014 at 7:23 AM, Christian Thiemann <[email protected]>wrote: > Regular Python should work in this case: > > when: myvariable in mylist > > You need to quote the whole condition if it starts with a literal string, > though: > > when: "'literal string' in mylist" > > > > On Saturday, March 8, 2014 1:54:24 PM UTC+1, David Adams wrote: >> >> My apologies if there's an obvious solution to this, but I've been unable >> to find it. >> >> I have a list variable defined with some values, eg: >> >> mylist: >> - aaa >> - bbb >> - ddd >> >> I need to execute a task conditionally based on whether the value of a >> variable is a member of that list. In other words, if myvar is set to >> "aaa", "bbb", or "ddd" I want to execute my task, but if it's set to >> anything else the task should be skipped. >> >> When I ran into this, I expected to find a Jinja filter called something >> like "contains" or "includes" such that I could do this: >> >> tasks: >> - debug: msg="Found the value in mylist" >> when: mylist|contains(myvariable) >> >> But I haven't been able to find any filters that do this. I did come up >> with this alternative solution: >> >> tasks: >> - debug: msg="Found the value in mylist" >> when: mylist|intersect([myvariable])|count > 0 >> >> But that feels really hacky and is hard to read at a glance. Is there a >> Jinja filter I'm overlooking, or some better way to do this? >> >> Thanks! >> >> -dave >> > -- > 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/1bd3752e-fac8-4263-8cca-b0f20fe64229%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/1bd3752e-fac8-4263-8cca-b0f20fe64229%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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/CAN3s8zZOdYC7OLfshs2e%2B3D5biy0G8opm7gfV1nV_9841W_uTQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
