Bubble up import exception content for k8s module (#50657)
* Bubble up import exception content for k8s module Signed-off-by: Fabian von Feilitzsch <fabian@fabianism.us> * Track down other places import exception is reported * Add changelog fragment
This commit is contained in:
parent
35caebd036
commit
09bfe42a5c
4 changed files with 13 additions and 6 deletions
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
bugfixes:
|
||||||
|
- k8s modules and plugins now bubble up error message when the openshift python client fails to import.
|
|
@ -32,8 +32,10 @@ try:
|
||||||
from openshift.dynamic import DynamicClient
|
from openshift.dynamic import DynamicClient
|
||||||
from openshift.dynamic.exceptions import ResourceNotFoundError, ResourceNotUniqueError
|
from openshift.dynamic.exceptions import ResourceNotFoundError, ResourceNotUniqueError
|
||||||
HAS_K8S_MODULE_HELPER = True
|
HAS_K8S_MODULE_HELPER = True
|
||||||
except ImportError:
|
k8s_import_exception = None
|
||||||
|
except ImportError as e:
|
||||||
HAS_K8S_MODULE_HELPER = False
|
HAS_K8S_MODULE_HELPER = False
|
||||||
|
k8s_import_exception = e
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import yaml
|
import yaml
|
||||||
|
@ -242,7 +244,7 @@ class KubernetesAnsibleModule(AnsibleModule, K8sAnsibleMixin):
|
||||||
AnsibleModule.__init__(self, *args, **kwargs)
|
AnsibleModule.__init__(self, *args, **kwargs)
|
||||||
|
|
||||||
if not HAS_K8S_MODULE_HELPER:
|
if not HAS_K8S_MODULE_HELPER:
|
||||||
self.fail_json(msg="This module requires the OpenShift Python client. Try `pip install openshift`")
|
self.fail_json(msg="This module requires the OpenShift Python client. Try `pip install openshift`", error=str(k8s_import_exception))
|
||||||
self.openshift_version = openshift.__version__
|
self.openshift_version = openshift.__version__
|
||||||
|
|
||||||
if not HAS_YAML:
|
if not HAS_YAML:
|
||||||
|
|
|
@ -111,7 +111,7 @@ connections:
|
||||||
import json
|
import json
|
||||||
|
|
||||||
from ansible.errors import AnsibleError
|
from ansible.errors import AnsibleError
|
||||||
from ansible.module_utils.k8s.common import K8sAnsibleMixin, HAS_K8S_MODULE_HELPER
|
from ansible.module_utils.k8s.common import K8sAnsibleMixin, HAS_K8S_MODULE_HELPER, k8s_import_exception
|
||||||
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable, Cacheable
|
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable, Cacheable
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -151,7 +151,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable, K8sAnsibleM
|
||||||
|
|
||||||
if not HAS_K8S_MODULE_HELPER:
|
if not HAS_K8S_MODULE_HELPER:
|
||||||
raise K8sInventoryException(
|
raise K8sInventoryException(
|
||||||
"This module requires the OpenShift Python client. Try `pip install openshift`"
|
"This module requires the OpenShift Python client. Try `pip install openshift`. Detail: {0}".format(k8s_import_exception)
|
||||||
)
|
)
|
||||||
|
|
||||||
source_data = None
|
source_data = None
|
||||||
|
|
|
@ -203,8 +203,10 @@ try:
|
||||||
from openshift.dynamic import DynamicClient
|
from openshift.dynamic import DynamicClient
|
||||||
from openshift.dynamic.exceptions import NotFoundError
|
from openshift.dynamic.exceptions import NotFoundError
|
||||||
HAS_K8S_MODULE_HELPER = True
|
HAS_K8S_MODULE_HELPER = True
|
||||||
except ImportError as exc:
|
k8s_import_exception = None
|
||||||
|
except ImportError as e:
|
||||||
HAS_K8S_MODULE_HELPER = False
|
HAS_K8S_MODULE_HELPER = False
|
||||||
|
k8s_import_exception = e
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import yaml
|
import yaml
|
||||||
|
@ -219,7 +221,7 @@ class KubernetesLookup(K8sAnsibleMixin):
|
||||||
|
|
||||||
if not HAS_K8S_MODULE_HELPER:
|
if not HAS_K8S_MODULE_HELPER:
|
||||||
raise Exception(
|
raise Exception(
|
||||||
"Requires the OpenShift Python client. Try `pip install openshift`"
|
"Requires the OpenShift Python client. Try `pip install openshift`. Detail: {0}".format(k8s_import_exception)
|
||||||
)
|
)
|
||||||
|
|
||||||
if not HAS_YAML:
|
if not HAS_YAML:
|
||||||
|
|
Loading…
Reference in a new issue