Ansible: Tidak dapat merender JSON dalam Ansible dan POST melalui modul uri

Dibuat pada 26 Nov 2015  ·  3Komentar  ·  Sumber: ansible/ansible

Jenis Masalah : Laporan Bug
Versi yang Mungkin : 1.9.4
Lingkungan : OSX 10.11.1

Ringkasan : Menggunakan lookup untuk merender template yang diteruskan ke parameter uri modul body tidak berfungsi. Itu melempar kesalahan TypeError: unhashable type . Saya membuka pertanyaan StackOverflow tentang ini, dan berpikir masuk akal untuk mempostingnya di sini juga.

Langkah-langkah Untuk Mereproduksi :

Jalankan tugas ini:

- 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) }}"

dengan ini di my.json.j2 :

{
  "channel": "chatops",
  "username": "Deploy",
  "text": "TEST Deploy!",
  "icon_emoji": ":ghost:"
}

Melipat JSON menjadi satu baris di dalam template memiliki efek yang sama. Mem-pipe respons lookup melalui to_json juga tidak berfungsi. Namun, mengambil JSON yang terlipat dan menggunakannya _directly_ dalam permainan tidak berhasil.

Hasil yang diharapkan : JSON yang tepat dikirim ke titik akhir

Hasil sebenarnya : TypeError: unhashable type error; juga, dalam keadaan tertentu, kesalahan not valid JSON dikembalikan oleh titik akhir, yang menunjukkan bahwa data tidak dikirim dengan benar.

Komentar yang paling membantu

Ini diperbaiki di 2.0: cukup tambahkan _body_format: json_ ke modul uri (dan hapus _convert_data=False_)
Selain itu, Anda tidak perlu menyetel header Content-Type sendiri saat menyetel body_format ke json.

Semua 3 komentar

Daftar Informasi

Hai!

Terima kasih banyak atas minat Anda pada Ansible. Ini dengan tulus sangat berarti bagi kami.

Tampaknya ini adalah pertanyaan pengguna, dan kami ingin mengarahkan hal-hal semacam ini ke milis atau saluran IRC.

Jika Anda bisa mampir ke sana, kami akan sangat menghargainya. Ini memungkinkan kami untuk menyimpan pelacak masalah untuk bug, permintaan tarik, RFE, dan sejenisnya.

Terima kasih sekali lagi dan kami berharap dapat melihat Anda di daftar atau IRC. Terima kasih!

Ini diperbaiki di 2.0: cukup tambahkan _body_format: json_ ke modul uri (dan hapus _convert_data=False_)
Selain itu, Anda tidak perlu menyetel header Content-Type sendiri saat menyetel body_format ke json.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat