Hi Matt,

Yes, you are thinking in the right direction. Unfortunately it is still not 
working as intended. The indentation generated is crazy.

Basically i want idempotency by maintaining the actual indentation of the 
complete file always.

On Tuesday, 27 February 2018 16:10:12 UTC+1, Matt Martz wrote:
>
> I *think* you want the following:
>
> {% for key, value in yamlVars.iteritems() %}
>
> # BEGIN BLOCK {{ key }}
> {{ key }}:
>     {{ value | to_nice_yaml | indent }}
> # END BLOCK {{ key }}
>
> {% endfor %}
>
> http://jinja.pocoo.org/docs/dev/templates/#indent
>
> On Tue, Feb 27, 2018 at 8:54 AM, ishan jain <[email protected] 
> <javascript:>> wrote:
>
>> I have a large number of YAML files prepared manually which have a fixed 
>> structure - list of dictionaries. But within different files, sequence of 
>> these keys and their values differ. I need to manage them automatically, so 
>> i am writing a kind of converter to add marker blocks. But i am stuck at 
>> this point:
>>
>>
>> example input YAML file
>> #something
>>
>> keyA:
>>   A1:
>>     - bla
>>     - bla
>>   A2: bla bla
>>   A3:
>>     A3.1: bla
>>     A3.2: bla
>>     
>> keyA:
>>   C1:
>>     - bla
>>   C2: bla bla
>>   C3:
>>     C3.1: bla
>>     
>> keyB:
>>   B1:
>>     - bla
>>     - bla
>>   B2: bla bla
>>   B3:
>>     B3.1: bla
>>     B3.2: bla
>>     B3.3: bla
>>   B4:
>>    - bla
>>    - bla
>>
>>
>> playbook to load one of the YAML, and try to write the same variables 
>> again with markers appended
>>     - include_vars:
>>           file: "path to one of the YAML file"
>>           name: yamlVars
>>
>>     - template:
>>          src: updated.yaml.j2
>>          dest: "path to that same file"
>>
>>
>> the template
>> {% for key, value in yamlVars.iteritems() %}
>>
>> # BEGIN BLOCK {{ key }}
>> {{ value | to_nice_yaml }}
>> # END BLOCK {{ key }}
>>
>> {% endfor %}
>>
>>
>> Poblem is, always the contents of each key is printed:
>> (manually prepared output to hide my variables)
>>
>>
>> actual output
>>
>> # BEGIN BLOCK keyA
>> A1:
>>   - bla
>>   - bla
>> A2: bla bla
>> A3:
>>   A3.1: bla
>>   A3.2: bla
>> # END BLOCK keyA
>>
>>
>> # BEGIN BLOCK keyC
>> C1:
>>   - bla
>> C2: bla bla
>> C3:
>>   C3.1: bla
>> # END BLOCK keyC
>>
>>     
>> # BEGIN BLOCK keyB
>> B1:
>>   - bla
>>   - bla
>> B2: bla bla
>> B3:
>>   B3.1: bla
>>   B3.2: bla
>>   B3.3: bla
>> B4:
>>  - bla
>>  - bla
>> # END BLOCK keyB
>>
>>
>>
>>
>> expected output
>>
>> # BEGIN BLOCK keyA
>> keyA:
>>   A1:
>>     - bla
>>     - bla
>>   A2: bla bla
>>   A3:
>>     A3.1: bla
>>     A3.2: bla
>> # END BLOCK keyA
>>
>>
>> # BEGIN BLOCK keyC
>> keyC:
>>   C1:
>>     - bla
>>   C2: bla bla
>>   C3:
>>     C3.1: bla
>> # END BLOCK keyC
>>
>>     
>> # BEGIN BLOCK keyB
>> keyB:
>>   B1:
>>     - bla
>>     - bla
>>   B2: bla bla
>>   B3:
>>     B3.1: bla
>>     B3.2: bla
>>     B3.3: bla
>>   B4:
>>    - bla
>>    - bla
>> # END BLOCK keyB
>>
>>
>>
>> -- 
>> 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/9a06be57-73b2-4459-88f4-9ffb4a8ef4c6%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/9a06be57-73b2-4459-88f4-9ffb4a8ef4c6%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].
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/235c7a6c-27cd-4e39-90c2-454d57c56db1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to