Module: check_mk
Branch: master
Commit: 7d1ce7749fb62413c163ccd5d2e23d6538e22eb5
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=7d1ce7749fb624…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Jan 22 14:39:36 2013 +0100
Code beautification for cmk -II on clusters
---
modules/check_mk.py | 44 +++++++++++++++++++++-----------------------
1 files changed, 21 insertions(+), 23 deletions(-)
diff --git a/modules/check_mk.py b/modules/check_mk.py
index efb5aee..6f0e9b4 100755
--- a/modules/check_mk.py
+++ b/modules/check_mk.py
@@ -823,14 +823,14 @@ def is_cluster(hostname):
# If host is node of one or more clusters, return a list of the clusters
# (untagged). If not, return an empty list.
def clusters_of(hostname):
- return [ strip_tags(c) for c,n in clusters.items() if hostname in n]
+ return [ strip_tags(c) for c,n in clusters.items() if hostname in n ]
# Determine wether a service (found on a physical host) is a clustered
# service and - if yes - return the cluster host of the service. If
# no, returns the hostname of the physical host.
def host_of_clustered_service(hostname, servicedesc):
- my_cluster = clusters_of(hostname)
- if not my_cluster: # we are not a cluster node
+ the_clusters = clusters_of(hostname)
+ if not the_clusters:
return hostname
# 1. New style: explicitlely assigned services
@@ -846,9 +846,7 @@ def host_of_clustered_service(hostname, servicedesc):
# 1. Old style: clustered_services assumes that each host belong to
# exactly on cluster
if in_boolean_serviceconf_list(hostname, servicedesc, clustered_services):
- cluster = clusters_of(hostname)
- if cluster:
- return cluster[0]
+ return the_clusters[0]
return hostname
@@ -4879,23 +4877,23 @@ if __name__ == "__main__":
# or are no valid hostnames are considered to be tags.
for host in hostnames:
remove_autochecks_of(host, checknames)
- clusters_of_host = clusters_of(host)
- if clusters_of_host:
- missing = []
- for clust in clusters_of_host:
- for node in nodes_of(clust):
- if node not in hostnames:
- missing.append(node)
- if len(missing) == 0:
- if opt_verbose:
- sys.stdout.write("All nodes of %s specified, dropping checks of %s, too.\n" % (clust, node))
- remove_autochecks_of(clust, checknames)
- else:
- sys.stdout.write("Warning: %s is part of cluster %s, but you didn't specify %s as well.\nChecks on %s will be kept.\n" %
- (host, clust, ",".join(missing), clust))
- # if the host is part of a cluster and
- # the other nodes of that cluster are
- # also present in the list, then we also # drop the checks of the clusters
+ # If all nodes of a cluster are contained in the list, then
+ # also remove the autochecks of that cluster. Beware: a host
+ # can be part more multiple clusters
+ for clust in clusters_of(host):
+ missing = [] # collect nodes missing on the command line
+ for node in nodes_of(clust):
+ if node not in hostnames:
+ missing.append(node)
+
+ if len(missing) == 0:
+ if opt_verbose:
+ sys.stdout.write("All nodes of %s specified, dropping checks of %s, too.\n" % (clust, node))
+ remove_autochecks_of(clust, checknames)
+
+ else:
+ sys.stdout.write("Warning: %s is part of cluster %s, but you didn't specify %s as well.\nChecks on %s will be kept.\n" %
+ (host, clust, ",".join(missing), clust))
else:
for host in all_active_hosts() + all_active_clusters():