Factor out logic to determine serial number from ENTITY-MIB in Layer2 and Layer3 to new method entity_derived_serial in Entity class

Create new method entity_derived_os_ver in Entity class to determine OS version in a similar manner
This commit is contained in:
Eric A. Miller
2018-04-15 23:30:19 -04:00
parent 4e18ccc9e2
commit 62823e3d83
4 changed files with 204 additions and 49 deletions

View File

@@ -118,24 +118,18 @@ sub vendor {
sub serial {
my $l2 = shift;
my $serial1 = $l2->serial1();
my $e_descr = $l2->e_descr() || {};
my $e_serial = $l2->e_serial() || {};
my $serial2 = $e_serial->{1} || undef;
my $chassis = $e_descr->{1} || undef;
# precedence
# serial2,chassis parse,serial1
return $serial2 if ( defined $serial2 and $serial2 !~ /^\s*$/ );
if ( defined $chassis and $chassis =~ /serial#?:\s*([a-z0-9]+)/i ) {
return $1;
my $entity_serial = $l2->entity_derived_serial();
if ( defined $entity_serial and $entity_serial !~ /^\s*$/ ){
return $entity_serial;
}
return $serial1 if ( defined $serial1 and $serial1 !~ /^\s*$/ );
my $serial1 = $l2->serial1();
if ( defined $serial1 and $serial1 !~ /^\s*$/ ) {
return $serial1;
}
return;
}
sub interfaces {
@@ -262,7 +256,7 @@ Tries to discover the vendor from $l2->model() and $l2->description()
=item $l2->serial()
Returns serial number if available through SNMP
Returns a serial number if found from F<ENTITY-MIB> and F<OLD-CISCO->... MIB.
=back