Tomsk. Fix Dlink model.
Something fail -(. Undefined OID for DLink return NOSUCHOBJECT instead undef..
This commit is contained in:
@@ -32,6 +32,7 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
use Exporter;
|
use Exporter;
|
||||||
use SNMP::Info::Layer3;
|
use SNMP::Info::Layer3;
|
||||||
|
use Data::Dumper;
|
||||||
|
|
||||||
@SNMP::Info::Layer3::DLink::ISA = qw/SNMP::Info::Layer3 Exporter/;
|
@SNMP::Info::Layer3::DLink::ISA = qw/SNMP::Info::Layer3 Exporter/;
|
||||||
@SNMP::Info::Layer3::DLink::EXPORT_OK = qw//;
|
@SNMP::Info::Layer3::DLink::EXPORT_OK = qw//;
|
||||||
@@ -102,7 +103,25 @@ sub os {
|
|||||||
|
|
||||||
sub os_ver {
|
sub os_ver {
|
||||||
my $obj = shift;
|
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 {
|
sub serial {
|
||||||
@@ -121,35 +140,41 @@ sub serial {
|
|||||||
return $dlink->SUPER::serial();
|
return $dlink->SUPER::serial();
|
||||||
}
|
}
|
||||||
|
|
||||||
sub fwver {
|
sub brom {
|
||||||
my $dlink=shift;
|
my $obj = shift;
|
||||||
my $model = $dlink->model();
|
my $brom = undef;
|
||||||
my $id = $dlink->id();
|
|
||||||
my $fw;
|
$brom = $obj->session()->get('enterprises.171.10.94.89.89.2.10.0');
|
||||||
if ($model =~ /1210/) {
|
|
||||||
#Due to the zoo of MIB from DLink by 1210 series
|
return $brom if defined $brom;
|
||||||
$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 hwver {
|
sub hwver {
|
||||||
my $dlink=shift;
|
my $obj=shift;
|
||||||
my $id = $dlink->id();
|
my $id = $obj->id();
|
||||||
my $model = &SNMP::translateObj($id);
|
my $model = &SNMP::translateObj($id);
|
||||||
my $hw;
|
my $hw = undef;
|
||||||
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');
|
|
||||||
|
|
||||||
$hw = $dlink->session()->get('rmon.19.3.0');
|
#Due to the zoo of MIB from DLink by 1210 series
|
||||||
return $hw if defined($hw);
|
$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 {
|
sub stp_i_root_port {
|
||||||
|
|||||||
Reference in New Issue
Block a user