Hello,

That was indeed the problem!! The play works great now. Thanks so much for 
your help everyone.

It would be excellent if we could also add a note to the docs about nested 
moustaches.

Thanks again,
Lilian

On Wednesday, August 12, 2015 at 12:37:56 PM UTC-7, Brian Coca wrote:
>
> also, change the conditional:
>   when: nics[num|int].type == "static"
>
> On Wed, Aug 12, 2015 at 2:46 PM, Matt Martz <ma...@sivel.net <javascript:>
> > wrote:
>
>> I believe the original error holds the answer:
>>
>> fatal: [127.0.0.1] => One or more undefined variables: 'list object' has 
>> no attribute u'0'
>>
>> That states that the list object has not attribute of the Unicode string 
>> "0".
>>
>> So "num" appears to be a string and needs to be an int.
>>
>> Try using 
>>
>> "{{ nics[num|int].ip }}"
>>
>> The |int will cast the string to an int.
>>
>> On Wednesday, August 12, 2015, <lilf...@cisco.com <javascript:>> wrote:
>>
>>> Let me paste the output of all files & the invoking call again here:
>>>
>>> # ansible-playbook test.yml --extra-vars "num=0"
>>> [SNIP]
>>> TASK: [Static IP Case - Find out Static Overlay IP] 
>>> *************************** 
>>> fatal: [127.0.0.1] => One or more undefined variables: 'list object' has 
>>> no attribute u'0'
>>>
>>> # cat nics.yml 
>>> ---
>>> nics:
>>> - {type: 'static', ip: '10.3.5.4'}
>>> - {type: 'dhcp'}
>>> - {type: 'static', ip: '10.3.5.5'}
>>>
>>> # cat test.yml 
>>> - hosts: 127.0.0.1
>>>   vars_files:
>>>     - "nics.yml"
>>>   tasks:
>>>
>>> # Static IP Case: Find out the Overlay IP
>>>     - name: Static IP Case - Find out Static Overlay IP
>>>       set_fact: 
>>>          cvmip: "{{nics[num].ip}}"
>>>       when: nics[{{num}}].type == "static"
>>>
>>>     - name: Write Overlay IP to file
>>>       shell: echo {{cvmip}} >> /tmp/staticip.txt
>>>       when: nics[{{num}}].type == "static"
>>>
>>>
>>> NOTE:
>>> If I replace the bad line with a hardcoded "0" as shown here, the play 
>>> succeeds, indicating that nics.yml is correct:
>>>          cvmip: "{{nics[0].ip}}"
>>>
>>> # cat /tmp/staticip.txt 
>>> 10.3.5.4
>>>
>>>
>>> Thanks!
>>> Lilian
>>>
>>> On Wednesday, August 12, 2015 at 11:09:34 AM UTC-7, Brian Coca wrote:
>>>>
>>>> when are you setting num?
>>>>
>>>> On Wed, Aug 12, 2015 at 2:08 PM, <lilf...@cisco.com> wrote:
>>>>
>>>>> Hi Brian,
>>>>>
>>>>> nics.yml is not an empty list - as I pointed out, in the "when:" 
>>>>> clause, the playbook correctly detects it as type static:
>>>>>
>>>>> host# cat nics.yml 
>>>>> ---
>>>>> nics:
>>>>> - {type: 'static', ip: '10.3.5.4'}
>>>>> - {type: 'dhcp'}
>>>>> - {type: 'static', ip: '10.3.5.5'}
>>>>>
>>>>> The first example is exactly where I am stuck - it should work, but 
>>>>> doesn't...
>>>>> cvmip: "{{nics[num].ip}}"
>>>>>
>>>>> Thanks,
>>>>> Lillian
>>>>>
>>>>> On Wednesday, August 12, 2015 at 10:09:51 AM UTC-7, Brian Coca wrote:
>>>>>>
>>>>>> sounds like nics is an empty list, your first example is correct 
>>>>>> syntax, the rest are not.
>>>>>>
>>>>>> On Wed, Aug 12, 2015 at 12:27 PM, <lilf...@cisco.com> wrote:
>>>>>>
>>>>>>> Hi Guys,
>>>>>>>
>>>>>>> Thank you for the responses. I should have mentioned this - I had 
>>>>>>> already tried several combinations (including the suggestion above) 
>>>>>>> with 
>>>>>>> and without nested {{ }}, but still can't get a working syntax. Please 
>>>>>>> see 
>>>>>>> below for some attempts and their results. 
>>>>>>>
>>>>>>> Putting an example/note in the docs would be really helpful as well.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Lilian
>>>>>>>
>>>>>>> host# ansible-playbook test.yml --extra-vars "num=0"
>>>>>>>
>>>>>>> Format Attempt:
>>>>>>>          cvmip: "{{nics[num].ip}}"
>>>>>>> Result:
>>>>>>> TASK: [Static IP Case - Find out Static Overlay IP] 
>>>>>>> *************************** 
>>>>>>> fatal: [127.0.0.1] => One or more undefined variables: 'list object' 
>>>>>>> has no attribute u'0'
>>>>>>>
>>>>>>> Format Attempt:
>>>>>>>          cvmip: "{{nics['num'].ip}}"
>>>>>>> Result:
>>>>>>> TASK: [Static IP Case - Find out Static Overlay IP] 
>>>>>>> *************************** 
>>>>>>> fatal: [127.0.0.1] => One or more undefined variables: 'list object' 
>>>>>>> has no attribute 'num'
>>>>>>>
>>>>>>> Format Attempt:
>>>>>>>          cvmip: "{{nics}}"["{{num}}"].ip}}
>>>>>>> Result:
>>>>>>> ERROR: Syntax Error while loading YAML script, test.yml
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tuesday, August 11, 2015 at 6:35:06 PM UTC-7, Timothy Appnel 
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> That is a good way of thinking of explaining it in the context of 
>>>>>>>> Ansible -- start Jinja, stop Jinja. At the same time, how would you 
>>>>>>>> have 
>>>>>>>> represented this in a Jinja template? Jinja doesn't allow for nested 
>>>>>>>> mustaches in any context that I am aware of. 
>>>>>>>>
>>>>>>>> I'm sure a patch to the docs to make light of this would be 
>>>>>>>> appreciated.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> [image: photo]
>>>>>>>> Timothy Appnel
>>>>>>>> Senior Solutions Architect
>>>>>>>>
>>>>>>>> Ansible, Inc. *•* www.ansible.com
>>>>>>>>
>>>>>>>> On Tue, Aug 11, 2015 at 8:38 PM, Josh Smift <j...@care.com> wrote:
>>>>>>>>
>>>>>>>>> TA> Don't use nested mustaches.
>>>>>>>>>
>>>>>>>>> This should probably be a FAQ. :^) FWIW, what helped me understand 
>>>>>>>>> this is
>>>>>>>>> that the mustaches aren't saying "here's a variable" (in which 
>>>>>>>>> case you
>>>>>>>>> might think, incorrectly, that you need to put them around all 
>>>>>>>>> variables
>>>>>>>>> all the time everywhere), but rather "start parsing this as 
>>>>>>>>> Jinja", and
>>>>>>>>> that once you say that, it keeps happening until you close the 
>>>>>>>>> mustaches
>>>>>>>>> (which means "stop parsing this as Jinja"). One of the things that 
>>>>>>>>> happens
>>>>>>>>> when you're parsing as Jinja is that variables get expanded, but 
>>>>>>>>> thinking
>>>>>>>>> of it as "start Jinja" and "stop Jinja" helped me keep it straight 
>>>>>>>>> when I
>>>>>>>>> first started with this stuff, anyway.
>>>>>>>>>
>>>>>>>>>                                       -Josh (j...@care.com)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> This email is intended for the person(s) to whom it is addressed 
>>>>>>>>> and may contain information that is PRIVILEGED or CONFIDENTIAL. Any 
>>>>>>>>> unauthorized use, distribution, copying, or disclosure by any person 
>>>>>>>>> other 
>>>>>>>>> than the addressee(s) is strictly prohibited. If you have received 
>>>>>>>>> this 
>>>>>>>>> email in error, please notify the sender immediately by return email 
>>>>>>>>> and 
>>>>>>>>> delete the message and any attachments from your system.
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> 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 ansible-proje...@googlegroups.com.
>>>>>>>>> To post to this group, send email to ansible...@googlegroups.com.
>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>> https://groups.google.com/d/msgid/ansible-project/21962.38250.656216.677376%40gargle.gargle.HOWL
>>>>>>>>> .
>>>>>>>>> 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 ansible-proje...@googlegroups.com.
>>>>>>> To post to this group, send email to ansible...@googlegroups.com.
>>>>>>> To view this discussion on the web visit 
>>>>>>> https://groups.google.com/d/msgid/ansible-project/ace73f52-96d6-47cc-92dc-fd067701e7d2%40googlegroups.com
>>>>>>>  
>>>>>>> <https://groups.google.com/d/msgid/ansible-project/ace73f52-96d6-47cc-92dc-fd067701e7d2%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> -- 
>>>>>> Brian Coca
>>>>>>
>>>>> -- 
>>>>> 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 ansible-proje...@googlegroups.com.
>>>>> To post to this group, send email to ansible...@googlegroups.com.
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/ansible-project/b8873bde-28c3-4455-9b1f-38c71678530a%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/ansible-project/b8873bde-28c3-4455-9b1f-38c71678530a%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> -- 
>>>> Brian Coca
>>>>
>>> -- 
>>> 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 ansible-project+unsubscr...@googlegroups.com.
>>> To post to this group, send email to ansible-project@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/ansible-project/66fea203-dc51-4f9d-a050-1d406d5f2138%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/ansible-project/66fea203-dc51-4f9d-a050-1d406d5f2138%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> -- 
>> Matt Martz
>> @sivel
>> sivel.net
>>
>> -- 
>> 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 ansible-proje...@googlegroups.com <javascript:>.
>> To post to this group, send email to ansible...@googlegroups.com 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/CAD8N0v-77nk-j0SwA0L8V48bphhH1AO2YrgXKsYfe%2B3s1kNUsg%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/CAD8N0v-77nk-j0SwA0L8V48bphhH1AO2YrgXKsYfe%2B3s1kNUsg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> Brian Coca
>

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/f5e2aaae-52d2-4859-b95d-1d43000561a8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to