I tested various combinations, and in no case the is_var_evaluatedX got 
assigned value True...

vars:
>     amazon: "no"
>     is_var_evaluated1: (amazon == 'no')
>     is_var_evaluated2: amazon == 'no'
>     is_var_evaluated3: $amazon == 'no'
>     is_var_evaluated4: "'$amazon' == 'no'"


I would like to file feature request on adding conditional expression 
evaluation in vars section... Is there ansible's BTS?

On Tuesday, March 4, 2014 5:11:50 PM UTC+2, Michael DeHaan wrote:
>
> Yes, it can go one level deep.
>
> You can't build conditional expressions out of conditional expressions, 
> but variables will expand.
>
> I'd suggest writing a test playbook and trying it out!
>
>
> On Tue, Mar 4, 2014 at 10:06 AM, Arie Skliarouk 
> <[email protected]<javascript:>
> > wrote:
>
>> The ansible documentation has this example:
>>
>> vars:
>>>   epic: true
>>> Then a conditional execution might look like:
>>> tasks:
>>>     - shell: echo "This certainly is epic!"
>>>       when: epic
>>
>>
>> Would it be possible for ansible to interpret conditionals in vars: 
>> section and assign proper true/false values to the variables? So that in 
>> example below is_amazon is assigned true?
>> amazon: "yes"
>> is_amazon: (amazon == "yes")
>>
>> On Tuesday, March 4, 2014 3:50:25 PM UTC+2, Michael DeHaan wrote:
>>
>>> You'll have to be sad then, at least for now.
>>>
>>> Too much fuzzy logic is involved for the system to know what is a 
>>> condition and what is a string, so only bare words
>>> are evaluated as conditionals.
>>>
>>>
>>>
>>>
>>> On Tue, Mar 4, 2014 at 8:41 AM, Arie Skliarouk <[email protected]>wrote:
>>>
>>>> Will it be easier for ansible to recognize pre-defined condition if I 
>>>> put it in brackets?
>>>>  
>>>>   vars:
>>>>     amazon: "yes"
>>>>     lxc: "no"
>>>>     is_amazon: (amazon == "yes")
>>>>     is_lxc:  (lxc == "yes")
>>>>
>>>>   tasks:
>>>>     - shell: echo hi 1
>>>>       when: is_amazon or is_lxc
>>>>
>>>> It would be sad if there is no way to use short syntax like this...
>>>>
>>>> On Tuesday, March 4, 2014 3:34:15 PM UTC+2, Michael DeHaan wrote:
>>>>
>>>>> Complex conditionals and or statements are fine.
>>>>>
>>>>> when:  x > 2 or y >3
>>>>>
>>>>> and complex conditionals are fine as well:
>>>>>
>>>>> when:  (x > 2 or y > 3) and (zebras == 4)
>>>>>
>>>>> etc
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Mar 4, 2014 at 8:28 AM, Arie Skliarouk <[email protected]>wrote:
>>>>>
>>>>>> In my scripts I also use "or" expression... How would I do that? And 
>>>>>> what about the poor souls that want to use complex boolean expression?...
>>>>>>
>>>>>> --
>>>>>> Arie
>>>>>>
>>>>>>
>>>>>> On Tuesday, March 4, 2014 2:49:44 PM UTC+2, Michael DeHaan wrote:
>>>>>>
>>>>>>> The following tricks are available:
>>>>>>>
>>>>>>> ---
>>>>>>> - hosts: all
>>>>>>>
>>>>>>>   vars:
>>>>>>>     x: 1
>>>>>>>     y: 2
>>>>>>>     alpha: x > 2
>>>>>>>     beta:  y > 3
>>>>>>>
>>>>>>>   tasks:
>>>>>>>
>>>>>>>     - shell: echo hi 1
>>>>>>>       when: alpha
>>>>>>>
>>>>>>>     - shell: echo hi 2
>>>>>>>       when:
>>>>>>>         - alpha
>>>>>>>         - beta
>>>>>>>
>>>>>>> Note that 'when: "alpha and beta"' is ambigious to the system, and 
>>>>>>> won't do what you want, because it has a hard time understanding 
>>>>>>> whether a 
>>>>>>> variable is a variable expression or a string or not.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Mar 4, 2014 at 7:11 AM, Arie Skliarouk <[email protected]>wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I am migrating ansible from 0.9 to 1.5 and complex when condition 
>>>>>>>> don't work anymore:
>>>>>>>>
>>>>>>>>   vars:
>>>>>>>>     not_main: "'$c_main' == 'no'"
>>>>>>>>     is_main: "'$c_main' == 'yes'"
>>>>>>>>     not_lxc: "'$lxc' != 'yes'"
>>>>>>>>
>>>>>>>>   tasks:
>>>>>>>>   # This does not work properly, it is always being applied
>>>>>>>>   - name: test0.conf
>>>>>>>>     action: template src=/tmp/test.conf.j2 dest=/tmp/test0.conf 
>>>>>>>> owner=ops group=ops mode=0444
>>>>>>>>     when: not_main and not_lxc
>>>>>>>>  # This works but prints warnings about using ${foo} or $foo. This 
>>>>>>>> is what I used in the past with ansible 0.9 (with only_if).
>>>>>>>>   - name: test1.conf
>>>>>>>>     action: template src=/opt/opsfs/tmp/test.conf.j2 
>>>>>>>> dest=/tmp/test1.conf owner=ops group=ops mode=0444
>>>>>>>>     when: $not_main and $not_lxc
>>>>>>>> # This works but is longer to type and not as readable as the first 
>>>>>>>> example
>>>>>>>>   - name: test2.conf
>>>>>>>>     action: template src=/opt/opsfs/tmp/test.conf.j2 
>>>>>>>> dest=/tmp/test2.conf owner=ops group=ops mode=0444
>>>>>>>>     when: c_main == 'no' and lxc != 'yes'
>>>>>>>>  
>>>>>>>> What is the correct way to use complex when conditions?
>>>>>>>>
>>>>>>>> --
>>>>>>>> Arie
>>>>>>>>
>>>>>>>> -- 
>>>>>>>> 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/8d870518-5
>>>>>>>> 473-4e44-826c-f6674d1fc306%40googlegroups.com.
>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>>
>>>>>>>
>>>>>>>  -- 
>>>>>> 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/0f7f4886-4abe-4a15-bc67-ec7f691e1f60%
>>>>>> 40googlegroups.com.
>>>>>>
>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>
>>>>>  -- 
>>>> 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/4714468c-370d-4dd0-b840-
>>>> 6ad3e22452e4%40googlegroups.com.
>>>>
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>
>>>  -- 
>> 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] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/82119d36-d531-4016-aff2-b2aa53df4776%40googlegroups.com
>> .
>>
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
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/b2148ef2-be21-4469-8a8b-9dcbb275a1dd%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to