From eaf879a7a7e7022939906cbeff5818638985cdf3 Mon Sep 17 00:00:00 2001 From: koenw Date: Sat, 15 Feb 2020 17:10:23 +0100 Subject: [PATCH] Fix uptimerobot stacktrace on decode (#66244) * Fix uptimerobot stacktrace on decode `req.read()` always returns bytes whereas the json module expects strings. I don't know how this worked before. * Use `module_utils._text.to_native` instead of decode --- lib/ansible/modules/monitoring/uptimerobot.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/ansible/modules/monitoring/uptimerobot.py b/lib/ansible/modules/monitoring/uptimerobot.py index 8a16170cd96..937bbdfe2bd 100644 --- a/lib/ansible/modules/monitoring/uptimerobot.py +++ b/lib/ansible/modules/monitoring/uptimerobot.py @@ -59,6 +59,7 @@ import json from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.six.moves.urllib.parse import urlencode from ansible.module_utils.urls import fetch_url +from ansible.module_utils._text import to_text API_BASE = "https://api.uptimerobot.com/" @@ -79,7 +80,7 @@ def checkID(module, params): data = urlencode(params) full_uri = API_BASE + API_ACTIONS['status'] + data req, info = fetch_url(module, full_uri) - result = req.read() + result = to_text(req.read()) jsonresult = json.loads(result) req.close() return jsonresult @@ -91,7 +92,7 @@ def startMonitor(module, params): data = urlencode(params) full_uri = API_BASE + API_ACTIONS['editMonitor'] + data req, info = fetch_url(module, full_uri) - result = req.read() + result = to_text(req.read()) jsonresult = json.loads(result) req.close() return jsonresult['stat'] @@ -103,7 +104,7 @@ def pauseMonitor(module, params): data = urlencode(params) full_uri = API_BASE + API_ACTIONS['editMonitor'] + data req, info = fetch_url(module, full_uri) - result = req.read() + result = to_text(req.read()) jsonresult = json.loads(result) req.close() return jsonresult['stat']