diff options
| author | Christos Triantafyllidis <christos.triantafyllidis@gmail.com> | 2012-06-12 00:49:17 +0300 |
|---|---|---|
| committer | Christos Triantafyllidis <christos.triantafyllidis@gmail.com> | 2012-06-12 00:49:17 +0300 |
| commit | cf9c34812219c3417d9e4d8af4cafaedd1e8988c (patch) | |
| tree | cef1abdeae93887b20de84202b6d7cd42e713a72 /modules | |
| download | DynamicNagiosConfig-cf9c34812219c3417d9e4d8af4cafaedd1e8988c.tar.gz DynamicNagiosConfig-cf9c34812219c3417d9e4d8af4cafaedd1e8988c.tar.xz DynamicNagiosConfig-cf9c34812219c3417d9e4d8af4cafaedd1e8988c.zip | |
Initial GIT import
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/datacenter_definitions.py | 10 | ||||
| -rw-r--r-- | modules/datacenter_definitions/file.py | 12 | ||||
| -rw-r--r-- | modules/host_definitions.py | 10 | ||||
| -rw-r--r-- | modules/host_definitions/fedora_infra_hosts.py | 14 | ||||
| -rw-r--r-- | modules/host_definitions/file.py | 12 | ||||
| -rw-r--r-- | modules/nagios_config.py | 31 |
6 files changed, 89 insertions, 0 deletions
diff --git a/modules/datacenter_definitions.py b/modules/datacenter_definitions.py new file mode 100644 index 0000000..a71ecfd --- /dev/null +++ b/modules/datacenter_definitions.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python +import dyn_module + +def get(config): + result = dict() + for dc_def_module in config: + dc_def_mod = dyn_module.load_module("modules/datacenter_definitions/%s.py" % dc_def_module) + dc_def_mod.get(config[dc_def_module],result) + + return result diff --git a/modules/datacenter_definitions/file.py b/modules/datacenter_definitions/file.py new file mode 100644 index 0000000..d66b49d --- /dev/null +++ b/modules/datacenter_definitions/file.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +import yaml + +def get(config,result): + dc_config = yaml.load(file(config["file"], 'r')) + for dc in dc_config: + if result.has_key(dc): + result[dc].update(dc_config[dc]) + else: + result[dc] = dc_config[dc] + + return result
\ No newline at end of file diff --git a/modules/host_definitions.py b/modules/host_definitions.py new file mode 100644 index 0000000..3026986 --- /dev/null +++ b/modules/host_definitions.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python +import dyn_module + +def get(config): + result = dict() + for host_def_module in config: + host_def_mod = dyn_module.load_module("modules/host_definitions/%s.py" % host_def_module) + host_def_mod.get(config[host_def_module],result) + + return result diff --git a/modules/host_definitions/fedora_infra_hosts.py b/modules/host_definitions/fedora_infra_hosts.py new file mode 100644 index 0000000..6ac1878 --- /dev/null +++ b/modules/host_definitions/fedora_infra_hosts.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python +import os + +def get(config,result): + for host in [ name for name in os.listdir(config["path"]) if os.path.isdir(os.path.join(config["path"], name)) ]: + if not result.has_key(host): + result[host] = dict() + path = os.path.join(config["path"], host, "autoinfo") + if os.path.exists(os.path.join(path, "datacenter")): + result[host]["datacenter"] = open(os.path.join(path, "datacenter"),"r").read() + if os.path.exists(os.path.join(path, "distro")): + result[host]["distro"] = open(os.path.join(path, "distro"),"r").read() + + return result diff --git a/modules/host_definitions/file.py b/modules/host_definitions/file.py new file mode 100644 index 0000000..3466db3 --- /dev/null +++ b/modules/host_definitions/file.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +import yaml + +def get(config,result): + hosts_config = yaml.load(file(config["file"], 'r')) + for host in hosts_config: + if result.has_key(host): + result[host].update(hosts_config[host]) + else: + result[host] = hosts_config[host] + + return result
\ No newline at end of file diff --git a/modules/nagios_config.py b/modules/nagios_config.py new file mode 100644 index 0000000..d7668f9 --- /dev/null +++ b/modules/nagios_config.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +from string import Template + +def generate(defaults,hosts,datacenters): + host_template = Template(file("templates/host", 'r').read()) + for host in hosts: + hostdict = {"hostname": host} + if hosts[host].has_key("parents"): + hostdict["parents"] = 'parents ' + hosts[host]["parents"] + elif hosts[host].has_key("datacenter") and datacenters.has_key(hosts[host]["datacenter"]): + hostdict["parents"] = 'parents ' + datacenters[hosts[host]["datacenter"]]["gateway"] + else: + hostdict["parents"] = '' + + if hosts[host].has_key("use"): + hostdict["use"] = hosts[host]["use"] + else: + hostdict["use"] = defaults["default_host_use"] + + if hosts[host].has_key("alias"): + hostdict["host_alias"] = hosts[host]["alias"] + else: + hostdict["host_alias"] = host + + if hosts[host].has_key("address"): + hostdict["host_address"] = hosts[host]["address"] + else: + hostdict["host_address"] = host + + print host_template.substitute(hostdict) +
\ No newline at end of file |
