From b139a67c71743f0fa824fc4c7d0e36ea5feeadee Mon Sep 17 00:00:00 2001 From: Olivier Boukili Date: Fri, 6 Jan 2017 15:11:25 +0100 Subject: [PATCH] module_utils/vmware: added find_datastore_by_name helper function (#17538) module_utils/vmware: exception catch for vcenter self-signed certificates --- lib/ansible/module_utils/vmware.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/ansible/module_utils/vmware.py b/lib/ansible/module_utils/vmware.py index 75f680916c..c2833cce77 100644 --- a/lib/ansible/module_utils/vmware.py +++ b/lib/ansible/module_utils/vmware.py @@ -111,6 +111,15 @@ def find_datacenter_by_name(content, datacenter_name): return None +def find_datastore_by_name(content, datastore_name): + + datastores = get_all_objs(content, [vim.Datastore]) + for ds in datastores: + if ds.name == datastore_name: + return ds + + return None + def find_dvs_by_name(content, switch_name): @@ -203,6 +212,10 @@ def connect_to_api(module, disconnect_atexit=True): service_instance = connect.SmartConnect(host=hostname, user=username, pwd=password, sslContext=context) else: module.fail_json(msg="Unable to connect to vCenter or ESXi API on TCP/443.", apierror=str(connection_error)) + except Exception as e: + context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + context.verify_mode = ssl.CERT_NONE + service_instance = connect.SmartConnect(host=hostname, user=username, pwd=password, sslContext=context) # Disabling atexit should be used in special cases only. # Such as IP change of the ESXi host which removes the connection anyway. @@ -220,4 +233,3 @@ def get_all_objs(content, vimtype, folder=None, recurse=True): for managed_object_ref in container.view: obj.update({managed_object_ref: managed_object_ref.name}) return obj -