added dump

This commit is contained in:
Max Baker
2004-09-27 14:48:42 +00:00
parent dc00c7d907
commit 51b09605df

View File

@@ -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;