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]<javascript:>
> > 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-5473-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] <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/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].
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/82119d36-d531-4016-aff2-b2aa53df4776%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to