diff --git a/lib/ansible/module_utils/vmware.py b/lib/ansible/module_utils/vmware.py index 7559ea98d63..3d6a63b7e49 100644 --- a/lib/ansible/module_utils/vmware.py +++ b/lib/ansible/module_utils/vmware.py @@ -309,6 +309,8 @@ def gather_vm_facts(content, vm): try: host = vm.summary.runtime.host facts['hw_esxi_host'] = host.summary.config.name + facts['hw_cluster'] = host.parent.name if host.parent and isinstance(host.parent, vim.ClusterComputeResource) else None + except vim.fault.NoPermission: # User does not have read permission for the host system, # proceed without this value. This value does not contribute or hamper diff --git a/lib/ansible/modules/cloud/vmware/vmware_host_facts.py b/lib/ansible/modules/cloud/vmware/vmware_host_facts.py index f2bf63054ee..22f37ac2039 100644 --- a/lib/ansible/modules/cloud/vmware/vmware_host_facts.py +++ b/lib/ansible/modules/cloud/vmware/vmware_host_facts.py @@ -154,8 +154,15 @@ class VMwareHostFactManager(PyVmomi): ansible_facts.update(self.get_network_facts()) ansible_facts.update(self.get_system_facts()) ansible_facts.update(self.get_vsan_facts()) + ansible_facts.update(self.get_cluster_facts()) self.module.exit_json(changed=False, ansible_facts=ansible_facts) + def get_cluster_facts(self): + cluster_facts = {'cluster': None} + if self.host.parent and isinstance(self.host.parent, vim.ClusterComputeResource): + cluster_facts.update(cluster=self.host.parent.name) + return cluster_facts + def get_vsan_facts(self): config_mgr = self.host.configManager.vsanSystem if config_mgr is None: