]> andersk Git - moira.git/blame - gen/nagios-colo.gen
Command line printer manipulation client, and build goo.
[moira.git] / gen / nagios-colo.gen
CommitLineData
cd964751 1#!/moira/bin/perl -Tw
2
3# $Id$
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;
8
9$outdir = '/moira/dcm/nagios-colo';
10
11use DBI;
12
13$dbh = DBI->connect("dbi:Oracle:moira", "moira", "moira")
14 || exit $MR_DBMS_ERR;
15
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-COLO' AND m.mach_id = sh.mach_id")
20 || exit $MR_DBMS_ERR;
21$sth0->execute;
22
23while (($root_list_id, $hostname) = $sth0->fetchrow_array) {
24 umask 022;
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 FROM machine m, imembers i " .
28 "WHERE i.list_id = " . $dbh->quote($root_list_id) .
e35622fc 29 "AND i.member_type = 'MACHINE' AND m.status = 1 " .
cd964751 30 "AND i.member_id = m.mach_id AND i.direct = 1 ORDER BY m.name")
31 || exit $MR_DBMS_ERR;
32 $sth->execute;
33
34 while (($name) = $sth->fetchrow_array) {
35 next if $name eq "[NONE]";
36 $name = lc($name);
37 push(@allcolohosts, $name);
38 print OUT <<END;
39define host{
40 host_name $name
41 alias $name
42 address $name
92bd4d0d 43 contact_groups colo,dost
cd964751 44 use generic-host
45 }
46
47define service{
48 host_name $name
b601d0fe 49 contact_groups colo
cd964751 50 use ping-service
51 }
52
53define hostescalation{
54 host_name $name
b601d0fe 55 contact_groups colo,dost-mail
cd964751 56 first_notification 2
57 last_notification 0
58 notification_interval 0
59 }
60
61define serviceescalation{
62 host_name $name
b601d0fe 63 contact_groups colo,dost-mail
cd964751 64 service_description PING
65 first_notification 2
66 last_notification 0
67 notification_interval 0
68 }
69
70END
71
72 }
73
74 print OUT <<END;
75define hostgroup{
76 hostgroup_name colo-hosts
77 alias colo-hosts
cd964751 78END
79
80print OUT "\tmembers\t\t\t";
81
82$maybecomma = "";
83foreach $host (@allcolohosts) {
84 print OUT "$maybecomma$host";
85 $maybecomma = ",";
86}
87
88print OUT "\n\t}\n\n";
89
90close(OUT);
91}
92
93$dbh->disconnect;
94
95exit 0;
96
97
This page took 0.52884 seconds and 5 git commands to generate.