Tipo de problema : Informe de error
Versión de Ansible : 1.9.4
Entorno : OSX 10.11.1
Resumen : Usar lookup
para representar una plantilla que se pasa al parámetro uri
módulo body
no funciona. Lanza un error TypeError: unhashable type
. Abrí una pregunta de StackOverflow sobre esto y pensé que tenía sentido publicarla aquí también.
Pasos para reproducir :
Ejecute esta tarea:
- name: Post
uri:
url: https://hooks.slack.com/endpoint
method: POST
return_content: no
HEADER_Content-Type: "application/json"
body: "{{ lookup('template', '../templates/my.json.j2', convert_data=False) }}"
con esto en my.json.j2
:
{
"channel": "chatops",
"username": "Deploy",
"text": "TEST Deploy!",
"icon_emoji": ":ghost:"
}
Doblar el JSON en una sola línea dentro de la plantilla tiene el mismo efecto. Canalizar la respuesta lookup
través de to_json
tampoco funciona. Sin embargo, tomar el JSON plegado y usarlo _directamente_ en la obra funciona.
Resultado esperado : JSON adecuado enviado al punto final
Resultado real : TypeError: unhashable type
error; Además, en determinadas circunstancias, el punto final devuelve not valid JSON
error
¡Hola!
Muchas gracias por su interés en Ansible. Sinceramente, significa mucho para nosotros.
Esta parece ser una pregunta de usuario, y nos gustaría dirigir este tipo de cosas a la lista de correo o al canal de IRC.
Si puede pasar por allí, se lo agradeceríamos. Esto nos permite mantener el rastreador de problemas para errores, solicitudes de extracción, RFE y similares.
Gracias una vez más y esperamos verte en la lista o en el IRC. ¡Gracias!
Esto se solucionó en 2.0: simplemente agregue _body_format: json_ al módulo uri (y elimine _convert_data = False_)
Además, no tiene que configurar el encabezado Content-Type usted mismo al configurar body_format en json.
Hola, cualquier soporte con respecto a este problema:
http://stackoverflow.com/questions/43117635/ansible-variable-not-rendered-inside-json-object
Comentario más útil
Esto se solucionó en 2.0: simplemente agregue _body_format: json_ al módulo uri (y elimine _convert_data = False_)
Además, no tiene que configurar el encabezado Content-Type usted mismo al configurar body_format en json.