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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to