diff --git a/changelogs/fragments/47313-vmware_utils-handle_requests_import_error.yaml b/changelogs/fragments/47313-vmware_utils-handle_requests_import_error.yaml new file mode 100644 index 00000000000..86130243685 --- /dev/null +++ b/changelogs/fragments/47313-vmware_utils-handle_requests_import_error.yaml @@ -0,0 +1,2 @@ +bugfixes: +- Avoid misleading PyVmomi error if requests import fails in vmware module utils. diff --git a/lib/ansible/module_utils/vmware.py b/lib/ansible/module_utils/vmware.py index 52b6d1ca474..093d44ca141 100644 --- a/lib/ansible/module_utils/vmware.py +++ b/lib/ansible/module_utils/vmware.py @@ -15,6 +15,11 @@ from random import randint try: # requests is required for exception handling of the ConnectionError import requests + HAS_REQUESTS = True +except ImportError: + HAS_REQUESTS = False + +try: from pyVim import connect from pyVmomi import vim, vmodl HAS_PYVMOMI = True @@ -764,6 +769,10 @@ class PyVmomi(object): """ Constructor """ + if not HAS_REQUESTS: + self.module.fail_json(msg="Unable to find 'requests' Python library which is required." + " Please install using 'pip install requests'") + if not HAS_PYVMOMI: module.fail_json(msg='PyVmomi Python module required. Install using "pip install PyVmomi"')