The best link for jinja2 template docs is: http://jinja.pocoo.org/docs/dev/templates/
Other than that, it's a little bit of python, a little bit of jinja2 and some other filters and such added by ansible. In this specific case: http://jinja.pocoo.org/docs/dev/templates/#math "+ Adds two objects together. Usually the objects are numbers, but if both are strings or lists, you can concatenate them this way" Anything that happens inside of {{ }} or {% %} is jinja2, outside of those, it's just text, and not evaluated. On Fri, Apr 17, 2015 at 4:15 PM, Michael Liu <[email protected]> wrote: > Thank you so much. It's been hard trying to find any documentation on > this. Any links to good docs about this topic? I feel like I'll be > playing around a lot with json, arrays, and uri module in Ansible. > > I own you a beer! Next time you visit SF. > > On Friday, April 17, 2015 at 1:59:36 PM UTC-7, Matt Martz wrote: >> >> This isn't tested, but I believe it would look something like: >> >> "{{ reg_endpoint2.json.array_with_many_elements + >> [reg_endpoint1.json.id_list[0].id] }}" >> >> You need to perform the concatenation inside of a single {{ }} >> >> On Fri, Apr 17, 2015 at 3:43 PM, Michael Liu <[email protected]> wrote: >> >>> I'm having an issue adding an element to an array. What i need to do >>> is... >>> >>> 1) get an array list of IDs from an api using the uri module (no issues >>> here) >>> 2) add an element to this array (issue here!) >>> 3) send a PUT with the updated array using uri (no issues here) >>> >>> ====tasks start==== >>> >>> - name: get data from endpoint 1 >>> uri: url=https://someapi.com/endpoint1.json method=GET >>> HEADER_api_key="xxxxxxxxxxxx" >>> register: reg_endpoint1 >>> >>> - name: get data from endpoint 2 >>> uri: url=https://someapi.com/endpoint2.json method=GET >>> HEADER_api_key="xxxxxxxxxxxx" >>> register: reg_endpoint2 >>> >>> - name: make an array element from id from endpoint 1, then add this to >>> endpoint 2 array, save as updated_array >>> set_fact: >>> updated_array="{{ reg_endpoint2.json.array_with_many_elements }} + [ >>> {{ reg_endpoint1.json.id_list[0].id }} ]" >>> >>> - name: put data with updated_array >>> uri: >>> method=PUT >>> url=https://someapi.com/endpoint3.json >>> HEADER_api_key="xxxxxxxxxxxx" >>> HEADER_Content-Type="application/json" >>> body={{ lookup('template','/full/path/to/file.json.j2') }} >>> >>> ====tasks end==== >>> >>> >>> ====/full/path/to/file.json.j2==== >>> >>> '{ >>> "something1": { >>> "otherthing2": { >>> "thatotherthing3": {{ updated_array }} >>> } >>> } >>> }' >>> >>> ========================== >>> >>> >>> My output error contains: >>> >>> <server1> REMOTE_MODULE uri method=PUT url= >>> https://someapi.com/endpoint3.json HEADER_api_key="xxxxxxxxxxxx" >>> HEADER_Content-Type="application/json" body='{ >>> "something1": { "otherthing2": { "thatotherthing3": [13651171, 13651172] + >>> [ 12994448 ] } } }' >>> >>> >>> As you can see the array is malformed from the set_fact task: >>> >>> [13651171, 13651172] + [ 12994448 ] >>> >>> Question: >>> How do I make {{ updated_array }} look like this: >>> >>> [13651171, 13651172, 12994448 ] >>> >>> 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]. >>> 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/c0b1f256-2e28-44ec-af89-069f3e33815b%40googlegroups.com >>> <https://groups.google.com/d/msgid/ansible-project/c0b1f256-2e28-44ec-af89-069f3e33815b%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/c742aa3b-a5a1-4411-9904-a231678eacf5%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/c742aa3b-a5a1-4411-9904-a231678eacf5%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/CAD8N0v-6H_GjOwD4k%2BWxuZ76vwxtPUpOm7D8sOAHNMstyGXmyw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
