Hi,
   I'd explain my problem clearly, I have a same type of example as yours.

vars:
        my_var: hello_world

      tasks:
        - uri:
            url: https://localhost/api/v1/
            method: POST
            body: jsoncode='{ "name": "test", "var": "{{ my_var }}", 
"location": "usa" }'
            HEADER_Content-Type: "application/json"
            status_code: 201
            validate_certs: no
            user: admin
            password: password

Here, I replaced : with = and provided "" to the my_var variable. It's not 
giving any error but when I redirect the output of the request to a file. 
It gives the following  error message:

{
  "error_code" : 220,
  "module_name" : "common-services",
  "error_message" : "Could not read JSON: Unrecognized token 'jsoncode': 
was expecting 'null', 'true', 'false' or NaN\\n at [Source: 
org.apache.catalina.connector.CoyoteInputStream@29d4dd6e; line: 1, column: 
7]; nested exception is com.fasterxml.jackson.core.JsonParseException: 
Unrecognized token 'jsoncode': was expecting 'null', 'true', 'false' or 
NaN\\n at [Source: org.apache.catalina.connector.CoyoteInputStream@29d4dd6e; 
line: 1, column: 7 




Correct me if I am going wrong. Thanks in advance.



On Thursday, October 15, 2015 at 9:19:49 PM UTC+5:30, 
[email protected] wrote:
>
> Hi Sharwari,
>
> This is the key fix, changing from colon syntax to equal sign syntax:
>
>     - name: Create an instance
>       ec2: >
>         state=present
>         image="{{ ami_base_image_id }}"
>         instance_type=t1.micro
>         group="{{ instance_security_groups }}"
>         key_name="{{ environment_public_ssh_key_name }}"
>         vpc_subnet_id="{{ environment_vpc_public_subnet_az1_id }}"
>         user_data="{{ lookup('template', '../templates/user_data.json') }}"
>         assign_public_ip=yes
>         wait=yes
>         wait_timeout=600
>         region="{{ vpc_region }}"
>         aws_access_key="{{ aws_access_key }}"
>         aws_secret_key="{{ aws_secret_key }}"
>       register: new_instance
>       when: environment_instance is not defined
>
> On Thursday, October 15, 2015 at 5:59:41 AM UTC-4, Sharwari Phadnis wrote:
>>
>> HI, I am facing the same problem. I went through the link which  you've 
>> posted but couldn't find the exact solution. Could you please post the 
>> solution which you've tried?
>>
>> On Saturday, October 3, 2015 at 1:15:51 AM UTC+5:30, 
>> [email protected] wrote:
>>>
>>> I solved the problem after a lot of digging. In case it's of use to 
>>> anyone else: https://github.com/ansible/ansible/issues/7005
>>>
>>> On Thursday, October 1, 2015 at 4:02:29 PM UTC-4, 
>>> [email protected] wrote:
>>>>
>>>> Hi all,
>>>>
>>>> Similar to 
>>>> https://groups.google.com/forum/#!topic/ansible-project/ba5PPAgYGXc 
>>>> but slightly different.
>>>>
>>>> I am trying to use variable substitution like so, putting the variable 
>>>> my_var in the body parameter, which should be a json string:
>>>>
>>>>     vars:
>>>>       my_var: hello_world
>>>>
>>>>     tasks:
>>>>       - uri:
>>>>           url: https://localhost/api/v1/
>>>>           method: POST
>>>>           body: '{ "name": "test", "var": "{{ my_var }}", "location": 
>>>> "usa" }'
>>>>           HEADER_Content-Type: "application/json"
>>>>           status_code: 201
>>>>           validate_certs: no
>>>>           user: admin
>>>>           password: password
>>>>
>>>> I get this error (stacktrace with a TypeError: unhashable type):
>>>>
>>>> TASK: [uri ] 
>>>> ******************************************************************
>>>> failed: [localhost] => {"failed": true, "parsed": false}
>>>> Traceback (most recent call last):
>>>>   File 
>>>> "/Users/mzb/.ansible/tmp/ansible-tmp-1443729077.78-98124067847188/uri", 
>>>> line 2067, in <module>
>>>>     main()
>>>>   File 
>>>> "/Users/mzb/.ansible/tmp/ansible-tmp-1443729077.78-98124067847188/uri", 
>>>> line 419, in main
>>>>     resp, content, dest = uri(module, url, dest, user, password, body, 
>>>> method, dict_headers, redirects, socket_timeout, validate_certs)
>>>>   File 
>>>> "/Users/mzb/.ansible/tmp/ansible-tmp-1443729077.78-98124067847188/uri", 
>>>> line 312, in uri
>>>>     resp, content = h.request(url, method=method, body=body, 
>>>> headers=headers)
>>>>   File "/Library/Python/2.7/site-packages/httplib2/__init__.py", line 
>>>> 1609, in request
>>>>     (response, content) = self._request(conn, authority, uri, 
>>>> request_uri, method, body, headers, redirections, cachekey)
>>>>   File "/Library/Python/2.7/site-packages/httplib2/__init__.py", line 
>>>> 1351, in _request
>>>>     (response, content) = self._conn_request(conn, request_uri, method, 
>>>> body, headers)
>>>>   File "/Library/Python/2.7/site-packages/httplib2/__init__.py", line 
>>>> 1273, in _conn_request
>>>>     conn.request(method, request_uri, body, headers)
>>>>   File 
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py",
>>>>  
>>>> line 973, in request
>>>>     self._send_request(method, url, body, headers)
>>>>   File 
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py",
>>>>  
>>>> line 1007, in _send_request
>>>>     self.endheaders(body)
>>>>   File 
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py",
>>>>  
>>>> line 969, in endheaders
>>>>     self._send_output(message_body)
>>>>   File 
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py",
>>>>  
>>>> line 833, in _send_output
>>>>     self.send(message_body)
>>>>   File 
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py",
>>>>  
>>>> line 805, in send
>>>>     self.sock.sendall(data)
>>>>   File 
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py",
>>>>  
>>>> line 229, in sendall
>>>>     v = self.send(data[count:])
>>>> TypeError: unhashable type
>>>>
>>>> If I don't use quotes around the variable substition, like this:
>>>>
>>>>       vars:
>>>>         my_var: hello_world
>>>>
>>>>       tasks:
>>>>         - uri:
>>>>             url: https://localhost/api/v1/
>>>>             method: POST
>>>>             body: '{ "name": "test", "var": {{ my_var }}, "location": 
>>>> "usa" }'
>>>>             HEADER_Content-Type: "application/json"
>>>>             status_code: 201
>>>>             validate_certs: no
>>>>             user: admin
>>>>             password: password
>>>>
>>>> then, I get this error (No JSON type could be decoded):
>>>>
>>>> failed: [localhost] => {"allow": "GET, POST, HEAD, OPTIONS", 
>>>> "connection": "close", "content": "{\"detail\": \"JSON parse error - No 
>>>> JSON object could be decoded\"}", "content_type": "application/json", 
>>>> "date": "Thu, 01 Oct 2015 19:50:56 GMT", "failed": true, "json": 
>>>> {"detail": 
>>>> "JSON parse error - No JSON object could be decoded"}, "redirected": 
>>>> false, 
>>>> "server": "Apache/2.4.7 (Ubuntu)", "status": 400, "transfer_encoding": 
>>>> "chunked", "vary": "Accept,Cookie", "x_api_time": "0.001s"}
>>>> msg: Status code was not [201]
>>>>
>>>> Any ideas? Thanks in advance!
>>>>
>>>

-- 
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/fecee166-9c81-4448-bf49-9cbe3d4f4d84%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to