Ansible: uriモジュールを介してAnsibleおよびPOSTでJSONをレンダリングできません

作成日 2015年11月26日  ·  3コメント  ·  ソース: ansible/ansible

問題の種類:バグレポート
Ansibleバージョン:1.9.4
環境:OSX 10.11.1

概要lookupを使用して、 uriモジュールのbodyパラメーターに渡されるテンプレートをレンダリングしても機能しません。 TypeError: unhashable typeエラーをスローします。 私はこれについてStackOverflowの質問を開き、ここにも投稿するのが理にかなっていると思いました。

再現する手順

このタスクを実行します。

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

これでmy.json.j2

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

JSONをテンプレート内で1行に折りたたむと、同じ効果があります。 lookup応答をto_json介して配管することも機能しません。 ただし、折りたたまれたJSONを取得し、それを劇中で_直接_使用することは機能します。

期待される結果:適切なJSONがエンドポイントに送信されました

実際の結果TypeError: unhashable typeエラー; また、特定の状況では、エンドポイントからnot valid JSONエラーが返されます。これは、データが適切に送信されていないことを示します。

最も参考になるコメント

これは2.0で修正されました:uriモジュールに_body_format:json_を追加するだけです(そして_convert_data = False_を削除します)
また、body_formatをjsonに設定するときに、Content-Typeヘッダーを自分で設定する必要はありません。

全てのコメント3件

リスト情報

やあ!

Ansibleに関心をお寄せいただきありがとうございます。 それは私たちにとって心から多くのことを意味します。

これはユーザーの質問のようです。このようなことをメーリングリストまたはIRCチャネルに転送したいと思います。

  • IRC:irc.freenode.netで#ansible
  • メーリングリスト: https ://groups.google.com/forum/#!forum / ansible -project

よろしくお願いします。 これにより、バグ、プルリクエスト、RFEなどの課題追跡システムを維持できます。

改めて感謝いたします。リストまたはIRCでお会いできることを楽しみにしております。 ありがとう!

これは2.0で修正されました:uriモジュールに_body_format:json_を追加するだけです(そして_convert_data = False_を削除します)
また、body_formatをjsonに設定するときに、Content-Typeヘッダーを自分で設定する必要はありません。

このページは役に立ちましたか?
0 / 5 - 0 評価