From b0790706888b69664e5eb141e5fb923c135a5e14 Mon Sep 17 00:00:00 2001 From: Johann Queuniet Date: Wed, 12 Dec 2018 18:42:55 +0100 Subject: [PATCH] Fix grafana_dashboard py2/3 compatibility (#49194) * Fix grafana_dashboard py2 compatibility * Convert URL output to a text/unicode string for json.loads --- lib/ansible/modules/monitoring/grafana_dashboard.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/ansible/modules/monitoring/grafana_dashboard.py b/lib/ansible/modules/monitoring/grafana_dashboard.py index e974d865d4..e04113af54 100644 --- a/lib/ansible/modules/monitoring/grafana_dashboard.py +++ b/lib/ansible/modules/monitoring/grafana_dashboard.py @@ -140,6 +140,7 @@ import json from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.urls import fetch_url, url_argument_spec from ansible.module_utils._text import to_native +from ansible.module_utils._text import to_text __metaclass__ = type @@ -182,8 +183,10 @@ def get_grafana_version(module, grafana_url, headers): r, info = fetch_url(module, '%s/api/frontend/settings' % grafana_url, headers=headers, method='GET') if info['status'] == 200: try: - settings = json.loads(r.read()) - grafana_version = str.split(settings['buildInfo']['version'], '.')[0] + settings = json.loads(to_text(r.read())) + grafana_version = settings['buildInfo']['version'].split('.')[0] + except UnicodeError as e: + raise GrafanaAPIException('Unable to decode version string to Unicode') except Exception as e: raise GrafanaAPIException(e) else: