File: sorrento-nest-list

package info (click to toggle)
libsnmp-session-perl 1.14~git20221124T101957-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,104 kB
  • sloc: perl: 11,920; ansic: 25; makefile: 15
file content (85 lines) | stat: -rw-r--r-- 2,537 bytes parent folder | download | duplicates (4)
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",
}