Changeset 112 for trunk/klask


Ignore:
Timestamp:
Aug 30, 2012, 8:33:18 AM (12 years ago)
Author:
g7moreau
Message:
  • method search can now found MAC on all switch with parameter *
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/klask

    r111 r112  
    13721372      }
    13731373
    1374    if (not defined $SWITCH_DB{$switch_name}) {
    1375       die "Switch $switch_name must be defined in klask configuration file\n";
    1376       }
    1377 
    1378    my $sw = $SWITCH_DB{$switch_name};
    1379    my %session = ( -hostname => $sw->{hostname} );
    1380       $session{-version} = $sw->{version}   || 1;
    1381       $session{-port}    = $sw->{snmpport}  || $DEFAULT{snmpport}  || 161;
    1382    if (exists $sw->{version} and $sw->{version} eq '3') {
    1383       $session{-username} = $sw->{username} || 'snmpadmin';
    1384       }
    1385    else {
    1386       $session{-community} = $sw->{community} || $DEFAULT{community} || 'public';
    1387       }
    1388 
    1389    my $research = $OID_NUMBER{searchPort} . mac_address_hex_to_dec($mac_address);
    1390    print "Klask search OID $research on switch $switch_name\n";
    1391 
    1392    my ($session, $error) = Net::SNMP->session( %session );
    1393    print "$error \n" if $error;
    1394 
    1395    my $result = $session->get_request(
    1396       -varbindlist => [$research]
    1397       );
    1398 
    1399    if (not defined $result or $result->{$research} eq 'noSuchInstance') {
    1400       print "Klask do not find MAC $mac_address on switch $switch_name\n";
     1374   $switch_name = join(',', map {$_->{hostname}} @SWITCH ) if $switch_name eq q{*};
     1375
     1376   for my $sw_name (split /,/, $switch_name) {
     1377      if (not defined $SWITCH_DB{$sw_name}) {
     1378         die "Switch $sw_name must be defined in klask configuration file\n";
     1379         }
     1380
     1381      my $sw = $SWITCH_DB{$sw_name};
     1382      my %session = ( -hostname => $sw->{hostname} );
     1383         $session{-version} = $sw->{version}   || 1;
     1384         $session{-port}    = $sw->{snmpport}  || $DEFAULT{snmpport}  || 161;
     1385      if (exists $sw->{version} and $sw->{version} eq '3') {
     1386         $session{-username} = $sw->{username} || 'snmpadmin';
     1387         }
     1388      else {
     1389         $session{-community} = $sw->{community} || $DEFAULT{community} || 'public';
     1390         }
     1391
     1392      my $research = $OID_NUMBER{searchPort} . mac_address_hex_to_dec($mac_address);
     1393      print "Klask search OID $research on switch $sw_name\n";
     1394
     1395      my ($session, $error) = Net::SNMP->session( %session );
     1396      print "$error \n" if $error;
     1397
     1398      my $result = $session->get_request(
     1399         -varbindlist => [$research]
     1400         );
     1401
     1402      if (not defined $result or $result->{$research} eq 'noSuchInstance') {
     1403         print "Klask do not find MAC $mac_address on switch $sw_name\n";
     1404         $session->close;
     1405         }
     1406
     1407      my $swport = $result->{$research};
    14011408      $session->close;
    1402       }
    1403 
    1404    my $swport = $result->{$research};
    1405    $session->close;
    1406 
    1407    print "Klask find MAC $mac_address on switch $switch_name port $swport\n";
     1409
     1410      print "Klask find MAC $mac_address on switch $sw_name port $swport\n";
     1411      }
    14081412   return;
    14091413   }
Note: See TracChangeset for help on using the changeset viewer.