mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-10-03 06:53:21 -07:00
[PR #10832/0f23b9e3 backport][stable-11] Force Content-type header to application/json if is_pre740 is false (#10848)
Force Content-type header to application/json if is_pre740 is false (#10832)
* Force Content-type header to application/json if is_pre740 is false
* Remove response variable from fail_json module
* Add a missing blank line to match pep8 requirement
* Add changelog fragment of issue #10796
* Rename fragment section
* Improve fragment readability
---------
(cherry picked from commit 0f23b9e391
)
Co-authored-by: X <2465124+broferek@users.noreply.github.com>
Co-authored-by: ludovic <ludovic.petetin@aleph-networks.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
e541b5b709
commit
657268120c
2 changed files with 8 additions and 3 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- rocketchat - fix message delivery in Rocket Chat >= 7.5.3 by forcing ``Content-Type`` header to ``application/json`` instead of the default ``application/x-www-form-urlencoded`` (https://github.com/ansible-collections/community.general/issues/10796, https://github.com/ansible-collections/community.general/pull/10796).
|
|
@ -202,14 +202,17 @@ def build_payload_for_rocketchat(module, text, channel, username, icon_url, icon
|
||||||
return payload
|
return payload
|
||||||
|
|
||||||
|
|
||||||
def do_notify_rocketchat(module, domain, token, protocol, payload):
|
def do_notify_rocketchat(module, domain, token, protocol, payload, is_pre740):
|
||||||
|
|
||||||
if token.count('/') < 1:
|
if token.count('/') < 1:
|
||||||
module.fail_json(msg="Invalid Token specified, provide a valid token")
|
module.fail_json(msg="Invalid Token specified, provide a valid token")
|
||||||
|
|
||||||
rocketchat_incoming_webhook = ROCKETCHAT_INCOMING_WEBHOOK % (protocol, domain, token)
|
rocketchat_incoming_webhook = ROCKETCHAT_INCOMING_WEBHOOK % (protocol, domain, token)
|
||||||
|
|
||||||
response, info = fetch_url(module, rocketchat_incoming_webhook, data=payload)
|
headers = None
|
||||||
|
if not is_pre740:
|
||||||
|
headers = {'Content-type': 'application/json'}
|
||||||
|
response, info = fetch_url(module, rocketchat_incoming_webhook, data=payload, headers=headers)
|
||||||
if info['status'] != 200:
|
if info['status'] != 200:
|
||||||
module.fail_json(msg="failed to send message, return status=%s" % str(info['status']))
|
module.fail_json(msg="failed to send message, return status=%s" % str(info['status']))
|
||||||
|
|
||||||
|
@ -256,7 +259,7 @@ def main():
|
||||||
is_pre740 = True
|
is_pre740 = True
|
||||||
|
|
||||||
payload = build_payload_for_rocketchat(module, text, channel, username, icon_url, icon_emoji, link_names, color, attachments, is_pre740)
|
payload = build_payload_for_rocketchat(module, text, channel, username, icon_url, icon_emoji, link_names, color, attachments, is_pre740)
|
||||||
do_notify_rocketchat(module, domain, token, protocol, payload)
|
do_notify_rocketchat(module, domain, token, protocol, payload, is_pre740)
|
||||||
|
|
||||||
module.exit_json(msg="OK")
|
module.exit_json(msg="OK")
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue