On Friday, 1 December 2017 18.08.15 CET texas living wrote:
> I tried, but the title variable does not keep when looping from second row 
> and on.
> 
>     {% for item in csvfile.split("\n") %}
>     {%   if loop.index == 1 %}
>     {%     set title = item.split(',') %}
>     {%   else %}
>     {%     set list = item.split(",") %}
>     {{ list[1]|trim() }}:
>     {{ title[0] }}: {{ list[0]|trim() }}
>     {{ title[1] }}: {{ list[1]|trim() }}
>     {{ title[2] }}: {{ list[2]|trim() }}
>     {{ title[3] }}: {{ list[3]|trim() }}
>     {{ title[4] }}: {{ list[4]|trim() }}
>     {{ title[5] }}: {{ list[5]|trim() }}
>     {%   endif %}
>     {% endfor %}
> 
> The playbook output for task
> 
>     TASK [Parse CSV To YAML] 
> ***********************************************************************************************************
>     fatal: [localhost]: FAILED! => {"changed": false, "failed": true, 
> "msg": "AnsibleUndefinedVariable: 'title' is undefined"}
> 
>     msg: AnsibleUndefinedVariable: 'title' is undefined

That's strange since the Jinja documentation have the following about scope:
"Please keep in mind that it is not possible to set variables inside a block 
and have them show up outside of it.
This also applies to loops. The only exception to that rule are if statements 
which do not introduce a scope."

Maybe it's a bug.


-- 
Kai Stian Olstad

-- 
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/252029463.Nvqtn7kZdv%40x1.
For more options, visit https://groups.google.com/d/optout.

Reply via email to