Module: check_mk
Branch: master
Commit: 23d84bfdea011212cf469ab1151b7469003da819
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=23d84bfdea0112…
Author: Andreas Boesl <ab(a)mathias-kettner.de>
Date: Wed Nov 4 11:15:22 2015 +0100
update #2440: cluster information is only available through vcenters
---
agents/special/agent_vsphere | 38 +++++++++++++++++++++-----------------
1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/agents/special/agent_vsphere b/agents/special/agent_vsphere
old mode 100755
new mode 100644
index 3eea6f4..204817f
--- a/agents/special/agent_vsphere
+++ b/agents/special/agent_vsphere
@@ -316,7 +316,7 @@ telegram_list = {
<ns1:pathSet>name</ns1:pathSet>
</ns1:propSet>
<ns1:objectSet>
- <ns1:obj type="Folder">group-d1</ns1:obj>
+ <ns1:obj type="Folder">%(rootFolder)s</ns1:obj>
<ns1:skip>false</ns1:skip>
<ns1:selectSet xsi:type="ns1:TraversalSpec">
<ns1:name>visitFolders</ns1:name>
@@ -1520,22 +1520,26 @@ if not error:
output("<<<<>>>>")
- reply_code, reply_msg, reply_headers, response =
query_server(telegram_list["datacenters"])
- datacenter = get_pattern('<objects><obj
type="Datacenter">(.*?)</obj>.*', response)[0]
- reply_code, reply_msg, reply_headers, response =
query_server(telegram_list["clustersofdatacenter"],
- payload_params
= {"datacenter": datacenter} )
- clusters = get_pattern('<objects><obj
type="ClusterComputeResource">(.*?)</obj>.*?string">(.*?)</val></propSet></objects>',
response)
-
- output("<<<esx_vsphere_clusters:sep(9)>>>")
- for cluster in clusters:
- reply_code, reply_msg, reply_headers, response =
query_server(telegram_list["esxhostsofcluster"],
-
payload_params = {"clustername": cluster[0]} )
- cluster_vms = []
- hosts = get_pattern('<objects><obj
type="HostSystem">.*?string">(.*?)</val></propSet></objects>',
response)
- for host in hosts:
- cluster_vms.extend(vm_esx_host.get(host, []))
- output("%s\thostsystems\t%s\t%s" % (datacenter, cluster[1],
"\t".join(hosts)))
- output("%s\tvms\t%s\t%s" % (datacenter, cluster[1],
"\t".join(map(convert_hostname, cluster_vms))))
+
+
+
+ if not opt_direct:
+ reply_code, reply_msg, reply_headers, response =
query_server(telegram_list["datacenters"])
+ datacenter = get_pattern('<objects><obj
type="Datacenter">(.*?)</obj>.*', response)[0]
+ reply_code, reply_msg, reply_headers, response =
query_server(telegram_list["clustersofdatacenter"],
+
payload_params = {"datacenter": datacenter} )
+ clusters = get_pattern('<objects><obj
type="ClusterComputeResource">(.*?)</obj>.*?string">(.*?)</val></propSet></objects>',
response)
+
+ output("<<<esx_vsphere_clusters:sep(9)>>>")
+ for cluster in clusters:
+ reply_code, reply_msg, reply_headers, response =
query_server(telegram_list["esxhostsofcluster"],
+
payload_params = {"clustername": cluster[0]} )
+ cluster_vms = []
+ hosts = get_pattern('<objects><obj
type="HostSystem">.*?string">(.*?)</val></propSet></objects>',
response)
+ for host in hosts:
+ cluster_vms.extend(vm_esx_host.get(host, []))
+ output("%s\thostsystems\t%s\t%s" % (datacenter, cluster[1],
"\t".join(hosts)))
+ output("%s\tvms\t%s\t%s" % (datacenter, cluster[1],
"\t".join(map(convert_hostname, cluster_vms))))
output("<<<esx_vsphere_objects:sep(9)>>>")