- Timestamp:
- Oct 19, 2017, 9:30:58 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/klask
r307 r308 7 7 use strict; 8 8 use warnings; 9 use version; our $VERSION = qv('0.7. 2');9 use version; our $VERSION = qv('0.7.3'); 10 10 11 11 use Readonly; … … 109 109 Readonly my %SWITCH_KIND => ( 110 110 # HP 111 J3299A => { type => 1, model => 'HP224M', match => 'HP J3299A ProCurve Switch 224M' 112 J4120A => { type => 1, model => 'HP1600M', match => 'HP J4120A ProCurve Switch 1600M' 113 J9029A => { type => 1, model => 'HP1800-8G', match => 'PROCURVE J9029A' 114 J9449A => { type => 1, model => 'HP1810-8G', match => 'HP ProCurve 1810G - 8 GE' 115 J4093A => { type => 1, model => 'HP2424M', match => 'HP J4093A ProCurve Switch 2424M' 116 J9279A => { type => 1, model => 'HP2510G-24', match => 'ProCurve J9279A Switch 2510G-24' 117 J9280A => { type => 1, model => 'HP2510G-48', match => 'ProCurve J9280A Switch 2510G-48' 118 J4813A => { type => 1, model => 'HP2524', match => 'HP J4813A ProCurve Switch 2524' 119 J4900A => { type => 1, model => 'HP2626A', match => 'HP J4900A ProCurve Switch 2626' 120 J4900B => { type => 1, model => 'HP2626B', match => 'J4900B.+?Switch 2626' 121 J4899B => { type => 1, model => 'HP2650', match => 'ProCurve J4899B Switch 2650' 122 J9021A => { type => 1, model => 'HP2810-24G', match => 'ProCurve J9021A Switch 2810-24G' 123 J9022A => { type => 1, model => 'HP2810-48G', match => 'ProCurve J9022A Switch 2810-48G' 124 J8692A => { type => 1, model => 'HP3500-24G', match => 'J8692A Switch 3500yl-24G' 125 J4903A => { type => 1, model => 'HP2824', match => 'J4903A.+?Switch 2824,' 126 J4110A => { type => 1, model => 'HP8000M', match => 'HP J4110A ProCurve Switch 8000M' 127 JE074A => { type => 2, model => 'HP5120-24G', match => 'HP Comware.+?A5120-24G EI Switch' 128 JE069A => { type => 2, model => 'HP5120-48G', match => 'HP Comware.+?A5120-48G EI Switch' 129 JD377A => { type => 2, model => 'HP5500-24G', match => 'HP Comware.+?A5500-24G EI Switch' 130 JD374A => { type => 2, model => 'HP5500-24F', match => 'HP Comware.+?A5500-24G-SFP EI Switch'},111 J3299A => { type => 1, model => 'HP224M', match => 'HP J3299A ProCurve Switch 224M', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 112 J4120A => { type => 1, model => 'HP1600M', match => 'HP J4120A ProCurve Switch 1600M', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 113 J9029A => { type => 1, model => 'HP1800-8G', match => 'PROCURVE J9029A', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 114 J9449A => { type => 1, model => 'HP1810-8G', match => 'HP ProCurve 1810G - 8 GE', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 115 J4093A => { type => 1, model => 'HP2424M', match => 'HP J4093A ProCurve Switch 2424M', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 116 J9279A => { type => 1, model => 'HP2510G-24', match => 'ProCurve J9279A Switch 2510G-24', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 117 J9280A => { type => 1, model => 'HP2510G-48', match => 'ProCurve J9280A Switch 2510G-48', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 118 J4813A => { type => 1, model => 'HP2524', match => 'HP J4813A ProCurve Switch 2524', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 119 J4900A => { type => 1, model => 'HP2626A', match => 'HP J4900A ProCurve Switch 2626', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 120 J4900B => { type => 1, model => 'HP2626B', match => 'J4900B.+?Switch 2626', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, # ProCurve J4900B Switch 2626 # HP J4900B ProCurve Switch 2626 121 J4899B => { type => 1, model => 'HP2650', match => 'ProCurve J4899B Switch 2650', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 122 J9021A => { type => 1, model => 'HP2810-24G', match => 'ProCurve J9021A Switch 2810-24G', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 123 J9022A => { type => 1, model => 'HP2810-48G', match => 'ProCurve J9022A Switch 2810-48G', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 124 J8692A => { type => 1, model => 'HP3500-24G', match => 'J8692A Switch 3500yl-24G', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 125 J4903A => { type => 1, model => 'HP2824', match => 'J4903A.+?Switch 2824,', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 126 J4110A => { type => 1, model => 'HP8000M', match => 'HP J4110A ProCurve Switch 8000M', revision => qr{ProCurve .*?, revision (\w[\d\.]+?), ROM}, }, 127 JE074A => { type => 2, model => 'HP5120-24G', match => 'HP Comware.+?A5120-24G EI Switch', revision => qr{Comware .*? Version (\d[\d\.]+?) Release}, }, 128 JE069A => { type => 2, model => 'HP5120-48G', match => 'HP Comware.+?A5120-48G EI Switch', revision => qr{Comware .*? Version (\d[\d\.]+?) Release}, }, 129 JD377A => { type => 2, model => 'HP5500-24G', match => 'HP Comware.+?A5500-24G EI Switch', revision => qr{Comware .*? Version (\d[\d\.]+?) Release}, }, 130 JD374A => { type => 2, model => 'HP5500-24F', match => 'HP Comware.+?A5500-24G-SFP EI ', revision => qr{Comware .*? Version (\d[\d\.]+?) Release}, }, 131 131 # BayStack 132 132 BS350T => { type => 1, model => 'BS350T', match => 'BayStack 350T HW' }, 133 133 # Nexans 134 N3483G => { type => 2, model => 'NA3483-6G', match => 'GigaSwitch V3 TP SFP-I 48.+ ES3' 135 N3483P => { type => 2, model => 'NA3483-6P', match => 'GigaSwitch V3 TP.PSE.+ 48/54V ES3' 134 N3483G => { type => 2, model => 'NA3483-6G', match => 'GigaSwitch V3 TP SFP-I 48.+ ES3', revision => qr{GigaSwitch .*?/SECURITY/V(\d[\d\.]+\w?)\)}, }, 135 N3483P => { type => 2, model => 'NA3483-6P', match => 'GigaSwitch V3 TP.PSE.+ 48/54V ES3', revision => qr{GigaSwitch .*?/SECURITY/V(\d[\d\.]+\w?)\)}, }, # GigaSwitch V3 TP(PSE+) SFP-I 48/54V ES3 (HW3/ENHANCED/SECURITY/V4.10C) 136 136 # DELL 137 PC7024 => { type => 2, model => 'DPC7024', match => 'PowerConnect 7024,.+?VxWorks' 138 N2048 => { type => 2, model => 'DN2048', match => 'Dell Networking N2048,' 139 N4032F => { type => 2, model => 'DN4032F', match => 'Dell Networking N4032F,' 140 N4064F => { type => 2, model => 'DN4064F', match => 'Dell Networking N4064F,' 137 PC7024 => { type => 2, model => 'DPC7024', match => 'PowerConnect 7024,.+?VxWorks', revision => qr{PowerConnect .*?, (\d[\d\.]+?), VxWorks}, }, 138 N2048 => { type => 2, model => 'DN2048', match => 'Dell Networking N2048,', revision => qr{Dell Networking .*?, (\d[\d\.]+?), Linux}, }, 139 N4032F => { type => 2, model => 'DN4032F', match => 'Dell Networking N4032F,', revision => qr{Dell Networking .*?, (\d[\d\.]+?), Linux}, }, 140 N4064F => { type => 2, model => 'DN4064F', match => 'Dell Networking N4064F,', revision => qr{Dell Networking .*?, (\d[\d\.]+?), Linux}, }, 141 141 # 3COM 142 142 'H3C5500' => { type => 1, model => 'H3C5500', match => 'H3C S5500-SI Series' }, … … 363 363 364 364 #--------------------------------------------------------------- 365 # Find Revision Firmware of a switch 366 sub get_switch_revision { 367 my $sw_snmp_description = shift || 'unknow'; 368 $sw_snmp_description =~ s/[\n\r]/ /g; 369 370 for my $sw_kind (keys %SWITCH_KIND) { 371 next if not $sw_snmp_description =~ m/$SWITCH_KIND{$sw_kind}->{match}/ms; # option xms break search, why ? 372 last if not exists $SWITCH_KIND{$sw_kind}->{revision}; 373 374 my ($revision) = $sw_snmp_description =~ m/$SWITCH_KIND{$sw_kind}->{revision}/xms; 375 return $revision || 'unknow'; 376 } 377 378 return 'unknow'; 379 } 380 381 #--------------------------------------------------------------- 365 382 # Get switch name and switch model 366 383 sub init_switch_names { 367 384 my ($verbose, $verb_description, $check_hostname, $check_location) = @_; 368 385 369 printf "%-26s %-25s %s\n",'Switch','Description','Type ' if $verbose;370 print "------------------------------------------------------------------------------ \n" if $verbose;386 printf "%-26s %-25s %s\n",'Switch','Description','Type(Revision)' if $verbose; 387 print "----------------------------------------------------------------------------------\n" if $verbose; 371 388 372 389 INIT_EACH_SWITCH: … … 395 412 $sw->{'description'} = $result->{$OID_NUMBER{'sysName'}} || $sw->{'hostname'}; 396 413 $sw->{model} = get_switch_model($result->{$OID_NUMBER{'sysDescription'}}); 397 printf "%-26s 0--------->>>> %-25s %s\n", $sw->{'hostname'}, $sw->{'description'}, $sw->{model} if $verbose; 414 $sw->{revision} = get_switch_revision($result->{$OID_NUMBER{'sysDescription'}}); 415 printf "%-26s 0--------->>>> %-25s %s\n", $sw->{'hostname'}, $sw->{'description'}, $sw->{model}.'('.$sw->{revision}.')' if $verbose; 398 416 399 417 if ($verb_description) { 400 418 my $desc = $result->{$OID_NUMBER{'sysDescription'}}; 401 419 $desc =~ s/[\n\r]/ /g; 402 print " +> $sw->{'hostname'} - description: $desc\n" 420 print " +> $sw->{'hostname'} - description: $desc\n"; 403 421 } 404 422 if ($check_hostname) {
Note: See TracChangeset
for help on using the changeset viewer.