From cc10268adff805d6c77b6e918e976ed66e4035a6 Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Tue, 20 Apr 2021 13:15:29 +0530 Subject: [PATCH] k8s inventory - remove trailing slashes from hostname (#63) When the user provides a hostname with trailing slashes like https://localhost:6443/, the openshift library fails to enumerate the APIs from the given cluster. This fix removes any extra trailing slashes before sending it to the openshift DynamicClient. Fixes: #52 Signed-off-by: Abhijeet Kasurde --- changelogs/fragments/52_inventory.yml | 2 ++ plugins/module_utils/common.py | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/52_inventory.yml diff --git a/changelogs/fragments/52_inventory.yml b/changelogs/fragments/52_inventory.yml new file mode 100644 index 00000000..dd71eaee --- /dev/null +++ b/changelogs/fragments/52_inventory.yml @@ -0,0 +1,2 @@ +bugfixes: +- k8s inventory - remove extra trailing slashes from the hostname (https://github.com/ansible-collections/kubernetes.core/issues/52). diff --git a/plugins/module_utils/common.py b/plugins/module_utils/common.py index b4630afe..de52ac35 100644 --- a/plugins/module_utils/common.py +++ b/plugins/module_utils/common.py @@ -124,8 +124,7 @@ def get_api_client(module=None, **kwargs): def _raise_or_fail(exc, msg): if module: module.fail_json(msg % to_native(exc)) - else: - raise exc + raise exc # If authorization variables aren't defined, look for them in environment variables for true_name, arg_name in AUTH_ARG_MAP.items(): @@ -143,6 +142,10 @@ def get_api_client(module=None, **kwargs): def auth_set(*names): return all([auth.get(name) for name in names]) + if auth_set('host'): + # Removing trailing slashes if any from hostname + auth['host'] = auth.get('host').rstrip('/') + if auth_set('username', 'password', 'host') or auth_set('api_key', 'host'): # We have enough in the parameters to authenticate, no need to load incluster or kubeconfig pass