Skip to content

Commit

Permalink
Remove trailing slash from provided grafana url
Browse files Browse the repository at this point in the history
Closes: #135
  • Loading branch information
Rémi REY authored and rrey committed Feb 10, 2021
1 parent b250662 commit 22bd453
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 10 deletions.
4 changes: 4 additions & 0 deletions plugins/module_utils/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@
__metaclass__ = type


def clean_url(url):
return url.rstrip("/")


def grafana_argument_spec():
argument_spec = url_argument_spec()

Expand Down
4 changes: 3 additions & 1 deletion plugins/modules/grafana_dashboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils._text import to_native
from ansible.module_utils._text import to_text
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec, clean_url

__metaclass__ = type

Expand Down Expand Up @@ -517,6 +517,8 @@ def main():
mutually_exclusive=[['url_username', 'grafana_api_key'], ['uid', 'slug'], ['path', 'dashboard_id']],
)

module.params["grafana_url"] = clean_url(module.params["grafana_url"])

if 'message' in module.params:
module.fail_json(msg="'message' is reserved keyword, please change this parameter to 'commit_message'")

Expand Down
4 changes: 2 additions & 2 deletions plugins/modules/grafana_datasource.py
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,7 @@
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, basic_auth_header
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec, grafana_required_together, grafana_mutually_exclusive
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec, grafana_required_together, grafana_mutually_exclusive, clean_url


def compare_datasources(new, current, compareSecureData=True):
Expand Down Expand Up @@ -589,7 +589,7 @@ class GrafanaInterface(object):

def __init__(self, module):
self._module = module
self.grafana_url = module.params.get("url")
self.grafana_url = clean_url(module.params.get("url"))
# {{{ Authentication header
self.headers = {"Content-Type": "application/json"}
if module.params.get('grafana_api_key', None):
Expand Down
4 changes: 2 additions & 2 deletions plugins/modules/grafana_folder.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@

from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url, basic_auth_header
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec, grafana_required_together, grafana_mutually_exclusive
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec, grafana_required_together, grafana_mutually_exclusive, clean_url
from ansible.module_utils.six.moves.urllib.parse import quote
from ansible.module_utils._text import to_text

Expand All @@ -174,7 +174,7 @@ def __init__(self, module):
else:
self.headers["Authorization"] = basic_auth_header(module.params['url_username'], module.params['url_password'])
# }}}
self.grafana_url = module.params.get("url")
self.grafana_url = clean_url(module.params.get("url"))
grafana_version = self.get_version()
if grafana_version["major"] < 5:
self._module.fail_json(failed=True, msg="Folders API is available starting Grafana v5")
Expand Down
4 changes: 3 additions & 1 deletion plugins/modules/grafana_notification_channel.py
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url
from ansible.module_utils._text import to_text
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec, clean_url


class GrafanaAPIException(Exception):
Expand Down Expand Up @@ -804,6 +804,8 @@ def main():
]
)

module.params["grafana_url"] = clean_url(module.params["grafana_url"])

if module.params['state'] == 'present':
result = grafana_create_or_update_notification_channel(module, module.params)
module.exit_json(failed=False, **result)
Expand Down
4 changes: 2 additions & 2 deletions plugins/modules/grafana_team.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@

from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url, basic_auth_header
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec, grafana_required_together, grafana_mutually_exclusive
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec, grafana_required_together, grafana_mutually_exclusive, clean_url

__metaclass__ = type

Expand All @@ -178,7 +178,7 @@ def __init__(self, module):
else:
self.headers["Authorization"] = basic_auth_header(module.params['url_username'], module.params['url_password'])
# }}}
self.grafana_url = module.params.get("url")
self.grafana_url = clean_url(module.params.get("url"))
grafana_version = self.get_version()
if grafana_version["major"] < 5:
self._module.fail_json(failed=True, msg="Teams API is available starting Grafana v5")
Expand Down
4 changes: 2 additions & 2 deletions plugins/modules/grafana_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@

from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url, basic_auth_header
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec, grafana_required_together, grafana_mutually_exclusive
from ansible_collections.community.grafana.plugins.module_utils.base import grafana_argument_spec, grafana_required_together, grafana_mutually_exclusive, clean_url

__metaclass__ = type

Expand All @@ -168,7 +168,7 @@ def __init__(self, module):
self.headers = {"Content-Type": "application/json"}
self.headers["Authorization"] = basic_auth_header(module.params['url_username'], module.params['url_password'])
# }}}
self.grafana_url = module.params.get("url")
self.grafana_url = clean_url(module.params.get("url"))

def _send_request(self, url, data=None, headers=None, method="GET"):
if data is not None:
Expand Down

0 comments on commit 22bd453

Please sign in to comment.