Thanks. I need to brush up on my jinjansiblethon. On Friday, April 17, 2015 at 2:21:32 PM UTC-7, Matt Martz wrote: > > 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] > <javascript:>> 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] <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/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/50107484-0c1b-47b0-b725-c209b9b9e400%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
