Sending json to webservice not working

hey all,

I have the following variables:

vars:
  tutum_tags:
     - { "name": "web" }
     - { "name": "redis" }
     - { "name": "memcached" }

And the following task:

- name: Main | Parsing tutum tags
  set_fact:
    tutum_tags_json: "{{ tutum_tags|to_json }}"

- name: Debug supplied tags
  debug: msg="Set supplied tags - {{ tutum_tags_json }}"

- name: Main | Adding tags to new tutum agent
  uri:
    url: "{{ tutum_host ~ ' api/v1/node/' ~ tutum_agent_uuid ~ '/' }}"
    method: PATCH
    HEADER_Authorization: "{{ tutum_api_header }}"
    HEADER_Content-Type: "application/json"
    status_code: 201
    body: "{{ tutum_tags_json }}"

However it’s giving me this wonderful error:

TASK: [tutum-ansible-role | Main | Adding tags to new tutum agent] ************
failed: [default] => {“failed”: true, “parsed”: false}
BECOME-SUCCESS-hwnszlbrjxnztbchtlvunxntgeiksvtf
Traceback (most recent call last):
File “/home/vagrant/.ansible/tmp/ansible-tmp-1443101724.76-64237699457979/uri”, line 2081, in
main()
File “/home/vagrant/.ansible/tmp/ansible-tmp-1443101724.76-64237699457979/uri”, line 416, in main
resp, content, dest = uri(module, url, dest, user, password, body, method, dict_headers, redirects, socket_timeout, validate_certs)
File “/home/vagrant/.ansible/tmp/ansible-tmp-1443101724.76-64237699457979/uri”, line 312, in uri
resp, content = h.request(url, method=method, body=body, headers=headers)
File “/usr/lib/python2.7/site-packages/httplib2/init.py”, line 1608, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File “/usr/lib/python2.7/site-packages/httplib2/init.py”, line 1350, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File “/usr/lib/python2.7/site-packages/httplib2/init.py”, line 1273, in _conn_request
conn.request(method, request_uri, body, headers)
File “/usr/lib64/python2.7/httplib.py”, line 973, in request
self._send_request(method, url, body, headers)
File “/usr/lib64/python2.7/httplib.py”, line 1007, in _send_request
self.endheaders(body)
File “/usr/lib64/python2.7/httplib.py”, line 969, in endheaders
self._send_output(message_body)
File “/usr/lib64/python2.7/httplib.py”, line 833, in _send_output
self.send(message_body)
File “/usr/lib64/python2.7/httplib.py”, line 805, in send
self.sock.sendall(data)
File “/usr/lib64/python2.7/ssl.py”, line 229, in sendall
v = self.send(data[count:])
File “/usr/lib64/python2.7/ssl.py”, line 198, in send
v = self._sslobj.write(data)
TypeError: must be string or buffer, not list
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /home/stephen/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 2
Shared connection to 127.0.0.1 closed.

What’s weird about it is that i’m actually sending a json string and NOT a list. I cannot use body_format since we are using Ansible 1.9.3 and not 2.x.

Does anybody know how i can fix this?