From 5409904c35a85f4048d2ef91847ae6cc4998a3e4 Mon Sep 17 00:00:00 2001 From: digi <42470490+digifuchsi@users.noreply.github.com> Date: Tue, 28 Jan 2020 07:13:46 +0100 Subject: [PATCH] vmware_cluster_facts: adds list of host in cluster (#61006) --- .../fragments/vmware_cluster_info_hosts.yml | 2 ++ .../cloud/vmware/vmware_cluster_info.py | 28 +++++++++++++++++++ .../vmware_cluster_facts/tasks/main.yml | 1 + 3 files changed, 31 insertions(+) create mode 100644 changelogs/fragments/vmware_cluster_info_hosts.yml diff --git a/changelogs/fragments/vmware_cluster_info_hosts.yml b/changelogs/fragments/vmware_cluster_info_hosts.yml new file mode 100644 index 00000000000..65ae83e3dcc --- /dev/null +++ b/changelogs/fragments/vmware_cluster_info_hosts.yml @@ -0,0 +1,2 @@ +minor_changes: +- Return additional information about hosts inside the cluster using vmware_cluster_info. diff --git a/lib/ansible/modules/cloud/vmware/vmware_cluster_info.py b/lib/ansible/modules/cloud/vmware/vmware_cluster_info.py index c1cf3990b1d..b441954aa2a 100644 --- a/lib/ansible/modules/cloud/vmware/vmware_cluster_info.py +++ b/lib/ansible/modules/cloud/vmware/vmware_cluster_info.py @@ -24,6 +24,7 @@ description: version_added: '2.6' author: - Abhijeet Kasurde (@Akasurde) + - Christian Neugum (@digifuchsi) notes: - Tested on vSphere 6.5, 6.7 requirements: @@ -107,6 +108,24 @@ clusters: "ha_vm_monitoring": null, "ha_vm_tools_monitoring": null, "vsan_auto_claim_storage": false, + "hosts": [ + { + "name": "esxi01.vsphere.local", + "folder": "/DC0/host/DC0_C0", + }, + { + "name": "esxi02.vsphere.local", + "folder": "/DC0/host/DC0_C0", + }, + { + "name": "esxi03.vsphere.local", + "folder": "/DC0/host/DC0_C0", + }, + { + "name": "esxi04.vsphere.local", + "folder": "/DC0/host/DC0_C0", + }, + ], "tags": [ { "category_id": "urn:vmomi:InventoryServiceCategory:9fbf83de-7903-442e-8004-70fd3940297c:GLOBAL", @@ -186,6 +205,14 @@ class VmwreClusterInfoManager(PyVmomi): ha_vm_failure_interval = None enabled_vsan = False vsan_auto_claim_storage = False + hosts = [] + + # Hosts + for host in cluster.host: + hosts.append({ + 'name': host.name, + 'folder': self.get_vm_path(self.content, host), + }) # HA das_config = cluster.configurationEx.dasConfig @@ -214,6 +241,7 @@ class VmwreClusterInfoManager(PyVmomi): tag_info = vmware_client.get_tags_for_cluster(cluster_mid=cluster._moId) results['clusters'][cluster.name] = dict( + hosts=hosts, enable_ha=das_config.enabled, ha_failover_level=ha_failover_level, ha_vm_monitoring=das_config.vmMonitoring, diff --git a/test/integration/targets/vmware_cluster_facts/tasks/main.yml b/test/integration/targets/vmware_cluster_facts/tasks/main.yml index df7b34c555f..e8e9e42e29a 100644 --- a/test/integration/targets/vmware_cluster_facts/tasks/main.yml +++ b/test/integration/targets/vmware_cluster_facts/tasks/main.yml @@ -46,6 +46,7 @@ assert: that: - cluster_result.clusters + - cluster_result.clusters[ccr1].hosts is defined - not cluster_result.changed - <<: *vc_cluster_data