From b8c170a3220903b9da59584205d3f79735271b15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A9ri=20Le=20Bouder?= Date: Thu, 4 Apr 2019 16:04:08 -0400 Subject: [PATCH] vmware_datastore_facts: handle external datastore Without this commit, `vmware_datastore_facts` ignores the datastores are not associated with a cluster of a datastore. This case can happen if a NFS share is mounted directly on a ESXi instance. --- .../modules/cloud/vmware/vmware_datastore_facts.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/ansible/modules/cloud/vmware/vmware_datastore_facts.py b/lib/ansible/modules/cloud/vmware/vmware_datastore_facts.py index 816adffbb85..0bec3fa9a5c 100644 --- a/lib/ansible/modules/cloud/vmware/vmware_datastore_facts.py +++ b/lib/ansible/modules/cloud/vmware/vmware_datastore_facts.py @@ -233,9 +233,9 @@ class PyVmomiHelper(PyVmomi): super(PyVmomiHelper, self).__init__(module) self.cache = PyVmomiCache(self.content, dc_name=self.params['datacenter']) - def lookup_datastore(self): + def lookup_datastore(self, confine_to_datacenter): """ Get datastore(s) per ESXi host or vCenter server """ - datastores = self.cache.get_all_objs(self.content, [vim.Datastore], confine_to_datacenter=True) + datastores = self.cache.get_all_objs(self.content, [vim.Datastore], confine_to_datacenter) return datastores def lookup_datastore_by_cluster(self): @@ -258,9 +258,6 @@ def main(): gather_vmfs_mount_info=dict(type='bool', default=False) ) module = AnsibleModule(argument_spec=argument_spec, - required_one_of=[ - ['cluster', 'datacenter'], - ], supports_check_mode=True ) result = dict(changed=False) @@ -269,8 +266,10 @@ def main(): if module.params['cluster']: dxs = pyv.lookup_datastore_by_cluster() + elif module.params['datacenter']: + dxs = pyv.lookup_datastore(confine_to_datacenter=True) else: - dxs = pyv.lookup_datastore() + dxs = pyv.lookup_datastore(confine_to_datacenter=False) vmware_host_datastore = VMwareHostDatastore(module) datastores = vmware_host_datastore.build_datastore_list(dxs)