From a52f1f3d37fad88abe277fd3906b5f546f53bd05 Mon Sep 17 00:00:00 2001 From: Max Baker <> Date: Tue, 29 Jul 2003 19:30:28 +0000 Subject: [PATCH] added serial, fixed i_duplex(), interfaces --- Info/CiscoStack.pm | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/Info/CiscoStack.pm b/Info/CiscoStack.pm index 49314a2b..7ae2b3d4 100644 --- a/Info/CiscoStack.pm +++ b/Info/CiscoStack.pm @@ -54,7 +54,7 @@ $INIT = 0; 'broadcast' => 'sysBroadcast', 'serial1' => 'chassisSerialNumber', 'serial2' => 'chassisSerialNumberString', - 'model' => 'chassisModel', + 'model1' => 'chassisModel', 'ps1_type' => 'chassisPs1Type', 'ps1_status' => 'chassisPs1Status', 'ps2_type' => 'chassisPs2Type', @@ -112,6 +112,16 @@ sub munge_port_status { return join(' ',@vals); } +sub serial { + my $stack = shift; + my $serial1 = $stack->serial1(); + my $serial2 = $stack->serial2(); + + return $serial1 if defined $serial1; + return $serial2 if defined $serial2; + return undef; +} + sub i_type { my $stack = shift; @@ -150,15 +160,16 @@ sub i_name { sub i_duplex { my $stack = shift; + #my $i_duplex = $stack->SUPER::i_duplex(); my $p_port = $stack->p_port(); my $p_duplex = $stack->p_duplex(); - my %i_duplex; + my $i_duplex = {}; foreach my $port (keys %$p_duplex) { my $iid = $p_port->{$port}; - $i_duplex{$iid} = $p_duplex->{$port}; + $i_duplex->{$iid} = $p_duplex->{$port}; } - return \%i_duplex; + return $i_duplex; } sub i_duplex_admin { @@ -191,14 +202,15 @@ sub i_duplex_admin { # $stack->interfaces() - Maps the ifIndex table to a physical port sub interfaces { my $self = shift; - my $interfaces = $self->i_index(); + my $i_index = $self->i_index(); my $portnames = $self->p_port(); - my %portmap = reverse %$portnames; + my %portmap = reverse %$portnames; my %interfaces = (); - foreach my $iid (keys %$interfaces) { - my $if = $interfaces->{$iid}; - $interfaces{$if} = $portmap{$iid}; + foreach my $iid (keys %$i_index) { + my $if = $i_index->{$iid}; + my $port = $portmap{$iid}; + $interfaces{$iid} = $port || $if; } return \%interfaces;