added dump
This commit is contained in:
@@ -13,22 +13,23 @@ use lib '/usr/local/netdisco';
|
|||||||
use SNMP::Info;
|
use SNMP::Info;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
use strict;
|
use strict;
|
||||||
use vars qw/$Class $Dev $Comm $Ver/;
|
use vars qw/$Class $Dev $Comm $Ver @Dump/;
|
||||||
|
|
||||||
# Default Values
|
# Default Values
|
||||||
$Class = '';
|
$Class = '';
|
||||||
$Dev = '';
|
$Dev = '';
|
||||||
$Comm = '';
|
$Comm = '';
|
||||||
$Ver = 2;
|
$Ver = 2;
|
||||||
|
@Dump = ();
|
||||||
|
|
||||||
GetOptions ('c|class=s' => \$Class,
|
GetOptions ('c|class=s' => \$Class,
|
||||||
'd|dev=s' => \$Dev,
|
'd|dev=s' => \$Dev,
|
||||||
's|comm=s' => \$Comm,
|
's|comm=s' => \$Comm,
|
||||||
'v|ver=i' => \$Ver,
|
'v|ver=i' => \$Ver,
|
||||||
'h|help' => \&usage,
|
'h|help' => \&usage,
|
||||||
|
'p|print=s' => \@Dump,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
&usage unless ($Dev and $Comm);
|
&usage unless ($Dev and $Comm);
|
||||||
|
|
||||||
$Class = $Class ? "SNMP::Info::$Class" : 'SNMP::Info';
|
$Class = $Class ? "SNMP::Info::$Class" : 'SNMP::Info';
|
||||||
@@ -39,6 +40,8 @@ if ($@) {
|
|||||||
|
|
||||||
print "Class $Class loaded.\n";
|
print "Class $Class loaded.\n";
|
||||||
|
|
||||||
|
print "Dumping : ",join(',',@Dump),"\n" if scalar @Dump;
|
||||||
|
|
||||||
my $dev = new $Class( 'AutoSpecify' => 0,
|
my $dev = new $Class( 'AutoSpecify' => 0,
|
||||||
'AutoVerBack' => 0,
|
'AutoVerBack' => 0,
|
||||||
'Version' => $Ver,
|
'Version' => $Ver,
|
||||||
@@ -52,7 +55,7 @@ print "Connected to $Dev.\n";
|
|||||||
my $layers = $dev->layers();
|
my $layers = $dev->layers();
|
||||||
|
|
||||||
unless (defined $layers){
|
unless (defined $layers){
|
||||||
warn "Are you sure you got the right community string and version?\nCan't fetch layers.\n";
|
die "Are you sure you got the right community string and version?\nCan't fetch layers.\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
print "Fetching global info...\n\n";
|
print "Fetching global info...\n\n";
|
||||||
@@ -67,7 +70,8 @@ foreach my $global (@globals){
|
|||||||
print "\nFetching interface info...\n\n";
|
print "\nFetching interface info...\n\n";
|
||||||
|
|
||||||
my @fns = qw/interfaces i_type i_ignore i_description i_mtu i_speed i_mac i_up
|
my @fns = qw/interfaces i_type i_ignore i_description i_mtu i_speed i_mac i_up
|
||||||
i_up_admin i_name i_duplex i_duplex_admin i_stp_state/;
|
i_up_admin i_name i_duplex i_duplex_admin i_stp_state
|
||||||
|
i_lastchange/;
|
||||||
|
|
||||||
foreach my $fn (@fns){
|
foreach my $fn (@fns){
|
||||||
test_fn($dev,$fn);
|
test_fn($dev,$fn);
|
||||||
@@ -132,6 +136,11 @@ sub test_fn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
printf "%-20s %d rows.\n",$method, scalar(keys %$results);
|
printf "%-20s %d rows.\n",$method, scalar(keys %$results);
|
||||||
|
if (grep(/^$method$/,@Dump)) {
|
||||||
|
foreach my $iid (keys %$results){
|
||||||
|
print " $iid : $results->{$iid}\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,6 +152,8 @@ test_class - Test a device against an SNMP::Info class
|
|||||||
-d --dev myswitch
|
-d --dev myswitch
|
||||||
-s --comm public
|
-s --comm public
|
||||||
-v --ver 2
|
-v --ver 2
|
||||||
|
-p --print i_blah
|
||||||
|
-p --print i_blah2
|
||||||
|
|
||||||
end_usage
|
end_usage
|
||||||
exit;
|
exit;
|
||||||
|
|||||||
Reference in New Issue
Block a user