From c170ab5e315fbfc8fe34a5c4e0e0db3d7aba84cd Mon Sep 17 00:00:00 2001 From: Will Thames Date: Fri, 13 Sep 2019 00:02:52 +1000 Subject: [PATCH] Add exception handling when retrieving k8s client (#60726) --- lib/ansible/module_utils/k8s/raw.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/ansible/module_utils/k8s/raw.py b/lib/ansible/module_utils/k8s/raw.py index 7bb2f3c68d8..605e880db7a 100644 --- a/lib/ansible/module_utils/k8s/raw.py +++ b/lib/ansible/module_utils/k8s/raw.py @@ -35,6 +35,7 @@ from ansible.module_utils.common.dict_transformations import dict_merge try: import yaml from openshift.dynamic.exceptions import DynamicApiError, NotFoundError, ConflictError, ForbiddenError, KubernetesValidateMissing + import urllib3 except ImportError: # Exceptions handled in common pass @@ -163,7 +164,11 @@ class KubernetesRawModule(KubernetesAnsibleModule): def execute_module(self): changed = False results = [] - self.client = self.get_api_client() + try: + self.client = self.get_api_client() + # Hopefully the kubernetes client will provide its own exception class one day + except (urllib3.exceptions.RequestError) as e: + self.fail_json(msg="Couldn't connect to Kubernetes: %s" % str(e)) flattened_definitions = [] for definition in self.resource_definitions: