1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
#!/usr/local/bin/perl -w
use SNMP_util;
sub process_nest ($$);
snmpmapOID ("slotCardName", "1.3.6.1.4.1.2522.1.1.2.1.1.2",
"slotCardType", "1.3.6.1.4.1.2522.1.1.2.1.1.3",
"slotCardStatus", "1.3.6.1.4.1.2522.1.1.2.1.1.4",
"slotIpAddress", "1.3.6.1.4.1.2522.1.1.3.1.1.2",
"cardName", "1.3.6.1.4.1.2522.1.1.3.1.1.3");
my @nestmasters =
(['mCE11','public@130.59.48.16'],
['mCE13','public@130.59.48.17'],
['mLS11','public@130.59.48.80'],
['mLS13','public@130.59.48.81'],
['mBE11','public@130.59.48.144'],
['mBE13','public@130.59.48.145'],
['mBA11','public@130.59.48.208'],
['mEZ11','public@130.59.49.16'],
);
## Override here if you just want to re-generate the names for one nest.
# @nestmasters = (['mCE11','public@130.59.48.16']);
my %short_types =
qw(GMI-1GSX c
GMI-1GLX c
GMOA-1A A
GMTR-15 c
GMTR-25 c
GMOX-06 c
GMOX-15 c
GMOX-25 c
GMOX-ER c
GM-GE2 c
GM-GE2-2.5G-A c
GMGE2-2.5G-M c
GM-GE4-2.5G-A c
GMCR-10GL-LR c);
foreach (@nestmasters) {
process_nest ($_->[0], $_->[1]);
}
1;
sub process_nest ($$) {
my ($name, $dest) = @_;
my %slot_name = ();
my %slot_type = ();
my ($nest_ip_address) = ($dest =~ /.*@(.*)$/);
(out_ip ($name.'-M0', $nest_ip_address, undef),
print "$name\t\tIN\tCNAME\t$name-M0\n")
if defined $nest_ip_address;
snmpmaptable ($dest, sub () {
my ($slotCardSlot, $slotCardName, $slotCardType, $slotCardStatus) = @_;
return if $slotCardStatus == 3; # empty
$slot_name{$slotCardSlot} = $slotCardName;
$slot_type{$slotCardSlot} = $slotCardType;
},
qw(slotCardName slotCardType slotCardStatus));
snmpmaptable ($dest, sub () {
my ($slotIndex, $slotIpAddress, $cardName) = @_;
return unless exists $slot_name{$slotIndex};
return if $slot_type{$slotIndex} eq 'N.A.';
my $short_type = $short_types{$slot_type{$slotIndex}};
if (!defined $short_type) {
warn "unknown type $slot_type{$slotIndex}";
$short_type = 'other';
}
out_ip ($name.'-'.$short_type.$slotIndex, $slotIpAddress, $slot_type{$slotIndex});
#print "$name: slotIndex $slotIndex (name $slot_name{$slotIndex} type $slot_type{$slotIndex}) ip $slotIpAddress type $cardName\n";
},
qw(slotIpAddress cardName));
print ";;\n";
}
sub out_ip ($$$) {
my ($name, $ip, $type) = @_;
my $comment = $type ? "\t;$type" : '';
print "$name\tIN\tA\t$ip$comment\n",
}
|