4 # The following exit codes are defined and MUST BE CONSISTENT with the
5 # error codes the library uses:
6 $MR_DBMS_ERR = 47836421;
7 $MR_OCONFIG = 47836460;
9 $outdir = '/moira/dcm/nagios-wsh';
13 $dbh = DBI->connect("dbi:Oracle:moira", "moira", "moira")
16 $sth0 = $dbh->prepare("SELECT l.list_id, m.name " .
17 "FROM list l, machine m, serverhosts sh " .
18 "WHERE sh.value3 = l.name AND sh.service = " .
19 "'NAGIOS-WSH' AND m.mach_id = sh.mach_id")
23 while (($root_list_id, $hostname) = $sth0->fetchrow_array) {
25 open(OUT, ">$outdir/$hostname") || exit $MR_OCONFIG;
26 print OUT "# This file is automatically generated by Moira. Do not edit.\n";
27 $sth = $dbh->prepare("SELECT m.name, i.tag FROM machine m, imembers i " .
28 "WHERE i.list_id = " . $dbh->quote($root_list_id) .
29 "AND i.member_type = 'MACHINE' AND m.status = 1 " .
30 "AND i.member_id = m.mach_id AND i.direct = 1 ORDER BY m.name")
34 while (($name, $tag) = $sth->fetchrow_array) {
35 next if $name eq "[NONE]";
37 push(@allwshhosts, $name);
52 define hostescalation{
54 contact_groups wsh,wsh-mail
57 notification_interval 0
60 define serviceescalation{
62 contact_groups wsh,wsh-mail
63 service_description PING
66 notification_interval 0
72 $sth1 = $dbh->prepare("SELECT s.string " .
74 "WHERE s.string_id = " . $tag)
77 my @tags = split /\s+/,$sth1->fetchrow_array;
83 if ($service =~ /^(FTP|NFS|HTTP|HTTPS|SMTP|SSHD|TELNET|TNS)$/i) {
84 my $ucservice = $service;
85 $ucservice =~ tr/a-z/A-Z/;
86 my $lcservice = $service;
87 $lcservice =~ tr/A-Z/a-z/;
88 $services{$ucservice}++;
93 use $lcservice-service
96 define serviceescalation{
98 contact_groups wsh,wsh-mail
99 service_description $ucservice
102 notification_interval 0
106 } elsif ($service =~ /^HTTPS-CERT$/i) {
107 $services{'HTTPS-CERT'}++;
111 contact_groups wsh-mail
112 use https-cert-service
117 printf STDERR "Machine %s has unknown service %s; ignoring\n", $name, $service;
120 if ($services{'HTTPS'} && $services{'HTTPS-CERT'}) {
122 define servicedependency{
123 dependent_host_name $name
124 dependent_service_description HTTPS-CERT
126 service_description HTTPS
127 execution_failure_criteria n
128 notification_failure_criteria w,u,c
134 } # while $sth->fetchrow_array
138 hostgroup_name wsh-hosts
143 print OUT "\tmembers\t\t\t";
146 foreach $host (@allwshhosts) {
147 print OUT "$maybecomma$host";
151 print OUT "\n\t}\n\n";