I cloned my playbook and turned the authentication into a role, and it 
behaved exactly the same. 

I really could use some help with this!

On Monday, January 11, 2016 at 3:32:28 PM UTC-5, Glenn Barnard wrote:
>
> Am using a current copy of Ansible and am in learning stage by writing 
> playbooks that call Ansible's API's via the uri module. Am getting an error 
> from the included yml that is trying to authenticate the user. Note that 
> it's working fine when I put the task into the main yml. The error is a 
> stack trace (below) followed with
>
>    TypeError: unhashable type
>
> Here's the main yml:
>
> --- 
> - name: Connect to Ansible API
>   hosts: localhost
>   connection: local
>   gather_facts: no
>   tasks:
>   - include: authenticate.yml
>       url="10.0.0.4"
>       username="<username>"
>       password="<password"
>
>   - debug: msg='{{ authentication.json }}'
>
>   - uri: 
>       url:  https://10.0.0.4/api/v1/users/
>       method: GET
>       HEADER_Authorization: TOKEN {{ authentication.json.token }} 
>       validate_certs: no
>       return_content: yes
>
>
> Here's the included yml:
>
> ---
>
>   - debug: msg="Connecting to Ansible host with {{ username }}/{{ password 
> }}"
>
>   - name: Connect to ansible with creds provided
>     uri: 
>       url: https://{{ url }}/api/v1/authtoken/
>       method: POST
>       HEADER_Content-Type: application/json  
>       body: '{ "username" : "{{ username }}", "password" : "{{ password 
> }}" }'
>       validate_certs: no
>       return_content: yes
>     register: authentication
>
>
> The stack trace is:
>
> TASK: [Connect to ansible with creds provided] 
> ********************************
> failed: [localhost] => {"failed": true, "parsed": false}
> Traceback (most recent call last):
>   File 
> "/home/gbarnard/.ansible/tmp/ansible-tmp-1452538099.69-278641758230235/uri", 
> line 2081, in <module>
>     main()
>   File 
> "/home/gbarnard/.ansible/tmp/ansible-tmp-1452538099.69-278641758230235/uri", 
> line 416, in main
>     resp, content, dest = uri(module, url, dest, user, password, body, 
> method, dict_headers, redirects, socket_timeut, validate_certs)
>   File 
> "/home/gbarnard/.ansible/tmp/ansible-tmp-1452538099.69-278641758230235/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 1605, 
> in request
>     (response, content) = self._request(conn, authority, uri, request_uri, 
> method, body, headers, redirections, cacekey)
>   File "/usr/lib/python2.7/site-packages/httplib2/__init__.py", line 1353, 
> in _request
>     (response, content) = self._conn_request(conn, request_uri, method, 
> body, headers)
>   File "/usr/lib/python2.7/site-packages/httplib2/__init__.py", line 1290, 
> in _conn_request
>     conn.request(method, request_uri, body, headers)
>   File "/usr/lib64/python2.7/httplib.py", line 979, in request
>     self._send_request(method, url, body, headers)
>   File "/usr/lib64/python2.7/httplib.py", line 1013, in _send_request
>     self.endheaders(body)
>   File "/usr/lib64/python2.7/httplib.py", line 975, in endheaders
>     self._send_output(message_body)
>   File "/usr/lib64/python2.7/httplib.py", line 839, in _send_output
>     self.send(message_body)
>   File "/usr/lib64/python2.7/httplib.py", line 811, in send
>     self.sock.sendall(data)
>   File "/usr/lib64/python2.7/ssl.py", line 723, in sendall
>     v = self.send(data[count:])
> TypeError: unhashable type
>
>
> FATAL: all hosts have already failed -- aborting
>
>

-- 
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/d7bfe5d5-5d58-4d2e-b87a-f4728b13a073%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to