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 <[email protected] <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, <[email protected] <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, <[email protected]> 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, <[email protected]> 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 <[email protected]> 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 ([email protected])
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 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 [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/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 [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/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 [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/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 [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/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 [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/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 [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/f5e2aaae-52d2-4859-b95d-1d43000561a8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to