Tomsk. Fix Dlink model.

Something fail -(. Undefined OID for DLink return NOSUCHOBJECT instead undef..
This commit is contained in:
Andrey Pazychev
2020-05-21 02:23:58 +03:00
parent b9313c2ec0
commit 535379b3a1

View File

@@ -32,6 +32,7 @@ use strict;
use warnings;
use Exporter;
use SNMP::Info::Layer3;
use Data::Dumper;
@SNMP::Info::Layer3::DLink::ISA = qw/SNMP::Info::Layer3 Exporter/;
@SNMP::Info::Layer3::DLink::EXPORT_OK = qw//;
@@ -102,7 +103,25 @@ sub os {
sub os_ver {
my $obj = shift;
return $obj->fwver();
my $os_ver = undef;
my $model = $obj->model();
my $id = $obj->id();
#Due to the zoo of MIB from DLink by 1210 series
$os_ver = $obj->session()->get($id.'.1.3.0') if $model =~ /1210/;
while (not defined $os_ver) {
$os_ver = $obj->dlink_fw();
last if defined $os_ver;
$os_ver = $obj->session()->get('enterprises.171.10.94.89.89.2.4.0');
last;
}
my $brom = $obj->brom();
$os_ver .= ' bootrom:' . $brom if defined $brom;
return $os_ver if defined $os_ver;
}
sub serial {
@@ -121,35 +140,41 @@ sub serial {
return $dlink->SUPER::serial();
}
sub fwver {
my $dlink=shift;
my $model = $dlink->model();
my $id = $dlink->id();
my $fw;
if ($model =~ /1210/) {
#Due to the zoo of MIB from DLink by 1210 series
$fw->{0} = $dlink->session()->get($id.'.1.3.0');
} else {
$fw = $dlink->dlink_fw();
}
return $fw->{0} if ( defined $fw->{0} and $fw->{0} !~ /^\s*$/ and $fw->{0} !~ 'NOSUCHOBJECT');
sub brom {
my $obj = shift;
my $brom = undef;
$brom = $obj->session()->get('enterprises.171.10.94.89.89.2.10.0');
return $brom if defined $brom;
}
sub hwver {
my $dlink=shift;
my $id = $dlink->id();
my $obj=shift;
my $id = $obj->id();
my $model = &SNMP::translateObj($id);
my $hw;
if ($model =~ /1210/) {
#Due to the zoo of MIB from DLink by 1210 series
$hw->{0} = $dlink->session()->get($id.'.1.2.0');
} else {
$hw = $dlink->dlink_hw();
}
return $hw->{0} if ( defined $hw->{0} and $hw->{0} !~ /^\s*$/ and $hw->{0} !~ 'NOSUCHOBJECT');
my $hw = undef;
$hw = $dlink->session()->get('rmon.19.3.0');
return $hw if defined($hw);
#Due to the zoo of MIB from DLink by 1210 series
$hw = $obj->session()->get($id.'.1.2.0') if $model =~ /1210/;
$hw = undef if defined $hw and $hw eq 'NOSUCHOBJECT';
while(not defined $hw){
$hw = $obj->dlink_hw() || undef;
$hw = undef if defined $hw and $hw eq 'NOSUCHOBJECT';
last if defined $hw;
$hw = $obj->session()->get('rmon.19.3.0') || undef;
$hw = undef if defined $hw and $hw eq 'NOSUCHOBJECT';
last if defined $hw;
$hw = $obj->session()->get('enterprises.171.10.94.89.89.2.10.0') || undef;
$hw = undef if defined $hw and $hw eq 'NOSUCHOBJECT';
last;
}
return $hw if defined $hw;
}
sub stp_i_root_port {