Add support for e_name() in Psuedo ENTITY-MIB methods

This commit is contained in:
Eric Miller
2007-11-26 03:32:11 +00:00
parent 8b5ba1e959
commit 004de3d29b
4 changed files with 116 additions and 14 deletions

View File

@@ -623,10 +623,10 @@ sub e_class {
if ($iid == 1) {
$rc_e_class{$iid} = 'chassis';
}
elsif ($iid =~/^9/) {
elsif ($iid =~/^9(\d)/ and length $iid > 5) {
$rc_e_class{$iid} = 'powerSupply';
}
elsif ($iid =~/00$/) {
elsif ($iid =~/0000$/) {
$rc_e_class{$iid} = 'container';
}
else {
@@ -665,7 +665,7 @@ sub e_descr {
my $type = $rc_c_t->{$idx};
next unless $type;
my $index = "$idx"."0000";
$rc_e_descr{$index} = "slot"."$idx";
$rc_e_descr{$index} = "Slot "."$idx";
$index++;
$rc_e_descr{$index} = $type;
}
@@ -683,7 +683,7 @@ sub e_descr {
my $cb = $rc2_cb->{$idx};
my $index = "$idx"."0000";
$rc_e_descr{$index} = "slot"."$idx";
$rc_e_descr{$index} = "Slot "."$idx";
$index++;
$rc_e_descr{$index} = $cf;
$index++;
@@ -769,6 +769,45 @@ sub e_type {
return \%rc_e_type;
}
sub e_name {
my $passport = shift;
my $model = $passport->model();
my $rc_e_idx = $passport->e_index() || {};
my %rc_e_name;
foreach my $iid (keys %$rc_e_idx){
if ($iid == 1) {
$rc_e_name{$iid} = 'Chassis';
next;
}
my $mod = int (substr($iid, -4, 2));
my $slot = substr($iid, -6, 2);
if ($iid =~/^9(\d)/ and length $iid > 5) {
$rc_e_name{$iid} = "Power Supply $1";
}
elsif ($iid =~/(00){2}$/) {
$rc_e_name{$iid} = "Slot $slot";
}
elsif ($iid =~/(00){1}$/) {
$rc_e_name{$iid} = "Card $slot, MDA $mod";
}
elsif (defined $model and $model =~ /(105|11[05]0|12[05])/ and $iid =~ /1$/) {
$rc_e_name{$iid} = "Card $slot";
}
elsif ($iid =~ /1$/) {
$rc_e_name{$iid} = "Card $slot (front)";
}
elsif ($iid =~ /2$/) {
$rc_e_name{$iid} = "Card $slot (back)";
}
}
return \%rc_e_name;
}
sub e_hwver {
my $passport = shift;
@@ -915,11 +954,15 @@ sub e_pos {
$rc_e_pos{$iid} = -1;
next;
}
my $sub = substr($iid, -1);
my $sub = int (substr($iid, -2, 2));
my $mod = int (substr($iid, -4, 2));
my $slot = substr($iid, -6, 2);
if ($iid =~/(00){1,2}$/) {
if ($iid =~/(00){2}$/) {
$rc_e_pos{$iid} = $slot;
}
elsif ($iid =~/(00){1}$/) {
$rc_e_pos{$iid} = $mod * 100;
}
else {
$rc_e_pos{$iid} = $sub;
}
@@ -939,14 +982,10 @@ sub e_parent {
$rc_e_parent{$iid} = 0;
next;
}
my $mod = substr($iid, -4, 2);
my $slot = substr($iid, -6, 2);
if ($iid =~/(00){1,2}$/) {
$rc_e_parent{$iid} = 1;
}
elsif ($mod != 0) {
$rc_e_parent{$iid} = "$slot"."$mod"."00";
}
else {
$rc_e_parent{$iid} = "$slot"."0000";
}