From df6b7bf77ff40559ac4029bede0b9114efdd955d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20REY?= <rrey94@gmail.com> Date: Wed, 30 Oct 2019 08:15:26 +0100 Subject: [PATCH] Fix grafana_datasource fails when name with spaces (#63987) --- lib/ansible/modules/monitoring/grafana_datasource.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/ansible/modules/monitoring/grafana_datasource.py b/lib/ansible/modules/monitoring/grafana_datasource.py index 56060f26b35..4404c59eb6a 100644 --- a/lib/ansible/modules/monitoring/grafana_datasource.py +++ b/lib/ansible/modules/monitoring/grafana_datasource.py @@ -360,6 +360,7 @@ import json import base64 from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.six.moves.urllib.parse import quote from ansible.module_utils.urls import fetch_url, url_argument_spec from ansible.module_utils._text import to_text @@ -390,7 +391,7 @@ def grafana_headers(module, data): def grafana_datasource_exists(module, grafana_url, name, headers): datasource_exists = False ds = {} - r, info = fetch_url(module, '%s/api/datasources/name/%s' % (grafana_url, name), headers=headers, method='GET') + r, info = fetch_url(module, '%s/api/datasources/name/%s' % (grafana_url, quote(name)), headers=headers, method='GET') if info['status'] == 200: datasource_exists = True ds = json.loads(to_text(r.read(), errors='surrogate_or_strict')) @@ -562,7 +563,7 @@ def grafana_delete_datasource(module, data): result = {} if datasource_exists is True: # delete - r, info = fetch_url(module, '%s/api/datasources/name/%s' % (data['grafana_url'], data['name']), headers=headers, method='DELETE') + r, info = fetch_url(module, '%s/api/datasources/name/%s' % (data['grafana_url'], quote(data['name'])), headers=headers, method='DELETE') if info['status'] == 200: res = json.loads(to_text(r.read(), errors='surrogate_or_strict')) result['msg'] = "Datasource %s deleted : %s" % (data['name'], res['message'])