summaryrefslogtreecommitdiffstats
path: root/plugins/discovery.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/discovery.py')
-rwxr-xr-xplugins/discovery.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/plugins/discovery.py b/plugins/discovery.py
index 87892e9..78f666e 100755
--- a/plugins/discovery.py
+++ b/plugins/discovery.py
@@ -453,9 +453,29 @@ def getAllNonConnectedHosts(hostList):
return nonConnectedHosts
+def _getHostGroupNames(hostConfig):
+ hostgroups = []
+ for hostgroup in hostConfig.get_effective_hostgroups():
+ hostgroups.append(hostgroup.get('hostgroup_name'))
+ return hostgroups
+
+
+def _findDuplicateHost(hosts, clusterName):
+ for host in hosts:
+ hostConfig = server_utils.getHostConfigByName(host.get('hostname'))
+ if hostConfig:
+ if clusterName not in _getHostGroupNames(hostConfig):
+ return host.get('hostname')
+
+
if __name__ == '__main__':
args = parse_input()
clusterdata = discoverCluster(args.hostip, args.cluster, args.timeout)
+ duplicateHost = _findDuplicateHost(clusterdata.get('hosts'), args.cluster)
+ if duplicateHost:
+ print "ERROR: Host '%s' is already being monitored" % duplicateHost
+ sys.exit(utils.PluginStatusCode.CRITICAL)
+
configManager = getConfigManager(args)
clusterDelta = configManager.generateNagiosConfig(clusterdata)
if args.force: