From: zacheiss Date: Wed, 18 Jul 2007 19:21:18 +0000 (+0000) Subject: mail.mit.edu domain. X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/commitdiff_plain/9925d282e43a0171cc824352717a4c16559651a9 mail.mit.edu domain. --- diff --git a/gen/Makefile.in b/gen/Makefile.in index 003ad76c..06475d09 100644 --- a/gen/Makefile.in +++ b/gen/Makefile.in @@ -44,7 +44,7 @@ TARGET= acl.gen boot.gen dhcp.gen directory.gen events.gen hesiod.gen hosts.gen SCRIPTS=access.gen access.sh acl.sh aliases.sh boot.sh ca.gen calendar.gen \ confluence.gen dhcp.sh events.sh hesiod.sh ip-billing.gen \ - ip-billing.sh ldap.gen longjobs.gen longjobs.sh mailhub.sh \ + ip-billing.sh ldap.gen longjobs.gen longjobs.sh mailhosts.gen mailhub.sh \ mailman.gen mailman.sh nagios-printers.gen nagios-printers.sh ndb.sh \ nfs.sh null.sh postoffice.sh print.sh sapprint.gen sapprint.sh \ spwatch.gen tsm.gen tsm.sh warehouse.gen warehouse.sh winstats.gen winstats.sh \ diff --git a/gen/mailhosts.gen b/gen/mailhosts.gen new file mode 100755 index 00000000..33431df4 --- /dev/null +++ b/gen/mailhosts.gen @@ -0,0 +1,56 @@ +#!/moira/bin/perl -Tw + +# $Id$ + +# The following exit codes are defined and MUST BE CONSISTENT with the +# error codes the library uses: +$MR_DBMS_ERR = 47836421; +$MR_OCONFIG = 4783640; + +$outfile = '/moira/dcm/mailhosts.out'; + +use DBI; + +$dbh = DBI->connect("dbi:Oracle:moira", "moira", "moira") + || exit $MR_DBMS_ERR; + +$sth = $dbh->prepare("SELECT f.label, m.name ". + "FROM filesys f, machine m, nfsphys p, serverhosts s ". + "WHERE s.service='POSTOFFICE' AND s.mach_id=f.mach_id ". + "AND f.mach_id=m.mach_id AND f.type='IMAP' ". + "AND f.createflg!=0 AND f.mach_id=p.mach_id ". + "AND f.phys_id=p.nfsphys_id ". + "ORDER BY f.label") + || exit $MR_DBMS_ERR; +$sth->execute || exit $MR_DBMS_ERR; + +$tnow = localtime; +umask 022; +open(OUT, ">$outfile") || exit $MR_OCONFIG; + +print OUT "; MIT Network Host Table\n;\n"; +print OUT "; \t\$Author$\n"; +print OUT "; \t\$Date$\n"; +print OUT "; \t\$Revision$\n;\n"; +print OUT "; Host table generated by Moira at $tnow\n;\n"; + +while (($label, $name) = $sth->fetchrow_array) { + $label =~ s/\.po$//; + $label =~ tr/a-z/A-Z/; + $name =~ tr/a-z/A-Z/; + + if (16 - length($label) > 8) { + $sp = "\t"; + } + else { + $sp = ""; + } + $row = "$label$sp\tIN\tCNAME\t$name.\n"; + $row =~ s/\0//g;; + print OUT $row; +} + +close(OUT); +$dbh->disconnect; + +exit 0;