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 $outfile = '/moira/dcm/nagios-cluster.out';
14 open(OUT, ">$outfile") || exit $MR_OCONFIG;
15 print OUT "# This File is automatically generated by Moira. Do not edit.\n\n";
18 $dbh = DBI->connect("dbi:Oracle:moira", "moira", "moira")
22 $sth1 = $dbh->prepare("SELECT m.name FROM machine m, clusters c, mcmap p " .
23 "WHERE m.status=1 AND c.name='cluster' AND " .
24 "(m.mach_id=p.mach_id AND p.clu_id=c.clu_id)")
26 $sth1->execute || exit $MR_DBMS_ERR;
29 while (($name) = $sth1->fetchrow_array) {
30 next if $name eq "[NONE]";
33 $cluster =~ s/\..*$//;
34 $cluster =~ s/\-[^\-]*$//;
35 # print "$name\t$cluster\n";
36 push @$cluster, $name;
37 $clusters{$cluster}++;
82 foreach $key (sort (keys %clusters)) {
88 print OUT "\tmembers\t\t";
90 foreach $machine (@$key) {
91 print OUT "$maybecomma$machine";
94 print OUT "\n\t}\n\n";
98 print OUT "\n### Printers\n\n";
100 $sth0 = $dbh->prepare("SELECT m.name FROM machine m, printers p " .
101 "WHERE (p.type = 'DORM' OR p.type ='CLUSTER') " .
102 "AND p.mach_id = m.mach_id AND m.status=1")
103 || exit $MR_DBMS_ERR;
105 $sth0->execute || exit $MR_DBMS_ERR;
107 while (($name) = $sth0->fetchrow_array) {
108 next if $name eq "[NONE]";
110 push(@allprinters, $name);
138 hostgroup_name printers
142 print OUT "\tmembers\t\t";
145 foreach $printer (@allprinters) {
146 print OUT "$maybecomma$printer";
150 print OUT "\n\t}\n\n";