Thanks Tom and Scott,

Both replies very helpful! Thanks!

On Tuesday, December 30, 2014 2:51:09 PM UTC-6, Scott Sturdivant wrote:
>
> As with Tom, I too use the 'in' keyword for substring compares.  That 
> said, the reason why your 'when' is failing is because .find(str) is 
> returning the index into the string where the match (if found) begins.  In 
> your case, it should be returning 20 for a successful match.  For no match, 
> it will return -1.  It seems like you've just omitted the negative sign in 
> your comparison.
>
> On Tue, Dec 30, 2014 at 1:45 PM, Tom Bamford <[email protected] <javascript:>
> > wrote:
>
>> Hi
>>
>> For substring comparisons, I use the ‘in’ keyword like this:
>>
>> - name: Get timezone info
>>   shell: date
>>   register: zoneinfo
>>   changed_when: no
>> - name: If timezone is not CST then remove /etc/localtime and call set 
>> timezone handler
>>   file: path=/etc/localtime state=absent
>>   when: '"CST" in zoneinfo.stdout'
>>   notify: set timezone
>>
>> The entire conditional is quoted in order to conform to yaml syntax. You 
>> could also add changed_when: no to the first task that runs date, so 
>> that Ansible doesn’t report it as a changed task.
>>
>> In this case, I would probably use a task rather than a handler for ‘set 
>> timezone’ - should your playbook run fail, the handler will not be invoked 
>> and the timezone will not get configured.
>>
>> Regards
>>
>> Tom
>> ​
>>
>> On 30 December 2014 at 22:22, <[email protected] <javascript:>> wrote:
>>
>>> Hello everyone!
>>>
>>> Conditionals seem to be very difficult to get right for some reason so I 
>>> am hoping someone can explain why the following doesn't seem to work. Or 
>>> show me the way. :)
>>>
>>> I am simply trying to check the current timezone of the server and if it 
>>> doesn't match CST then run a handler to update it. Here's the code:
>>> - name: Get timezone info
>>>   shell: date
>>>   register: zoneinfo
>>>
>>> Then just to make sure I have the right data I use debug to print the 
>>> zoneinfo var I just registered:
>>> - name: Print zoneinfo for debug
>>>   debug: var="zoneinfo.stdout"
>>>
>>> This outputs:
>>> TASK: [common | Print zoneinfo for debug] 
>>> *************************************
>>> ok: [10.10.10.10] => {
>>>     "zoneinfo.stdout": "Tue Dec 30 14:11:03 CST 2014"
>>> }
>>>
>>> Referring to the Ansible docs I can use something like when: 
>>> zoneinfo.stdout.find('CST') != 1 but no matter what I try I can't get it to 
>>> work.
>>>
>>> I have tried the following:
>>>
>>> - name: If timezone is not CST then remove /etc/localtime and call set 
>>> timezone handler
>>>   file: path=/etc/localtime state=absent
>>>   when: zoneinfo.stdout.find('CST') != 1 
>>>   notify:
>>>   - set timezone
>>>
>>> I have tried not true. Is not. == 1 == 0 and several other options but 
>>> its not working.
>>>
>>> Any suggestions?
>>>
>>> Thanks!
>>>
>>> -- 
>>> 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/1c7a5e23-6375-4136-9b75-38777dbf1e41%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/ansible-project/1c7a5e23-6375-4136-9b75-38777dbf1e41%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] <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/CAAnNz0M3oPZ4TYuNMRDsEQmoA42o%2BuVWQZYVjL-Kq_rAYzXj-w%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/CAAnNz0M3oPZ4TYuNMRDsEQmoA42o%2BuVWQZYVjL-Kq_rAYzXj-w%40mail.gmail.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/017f7dc0-73cd-41f8-863d-95d5865925a0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to