- Timestamp:
- Feb 18, 2017, 5:38:07 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/klask
r220 r221 38 38 my $KLASK_CFG = YAML::Syck::LoadFile("$KLASK_CFG_FILE"); 39 39 40 my %DEFAULT = %{$KLASK_CFG->{ default}};41 my @SWITCH_LIST = @{$KLASK_CFG->{ switch}};40 my %DEFAULT = %{$KLASK_CFG->{'default'}}; 41 my @SWITCH_LIST = @{$KLASK_CFG->{'switch'}}; 42 42 43 43 my %SWITCH_LEVEL = (); … … 45 45 LEVEL_OF_EACH_SWITCH: 46 46 for my $sw (@SWITCH_LIST) { 47 $SWITCH_LEVEL{$sw->{hostname}} = $sw->{ level} || $DEFAULT{switch_level} || 2;47 $SWITCH_LEVEL{$sw->{hostname}} = $sw->{'level'} || $DEFAULT{'switch_level'} || 2; 48 48 $SWITCH_DB{$sw->{hostname}} = $sw; 49 49 50 50 # SNMP parameter initialisation 51 51 my %session = ( -hostname => $sw->{hostname} ); 52 $session{-version} = $sw->{ version}|| 1;53 $session{-port} = $sw->{ snmpport} || $DEFAULT{snmpport} || 161;54 if (exists $sw->{ version} and $sw->{version} eq '3') {55 $session{-username} = $sw->{ username} || 'snmpadmin';52 $session{-version} = $sw->{'version'} || 1; 53 $session{-port} = $sw->{'snmpport'} || $DEFAULT{'snmpport'} || 161; 54 if (exists $sw->{'version'} and $sw->{'version'} eq '3') { 55 $session{-username} = $sw->{'username'} || 'snmpadmin'; 56 56 } 57 57 else { 58 $session{-community} = $sw->{ community} || $DEFAULT{community} || 'public';59 } 60 $sw->{ snmp_param_session} = \%session;61 } 62 @SWITCH_LIST = reverse sort { $SWITCH_LEVEL{$a->{hostname}} <=> $SWITCH_LEVEL{$b->{hostname}} } @{$KLASK_CFG->{ switch}};58 $session{-community} = $sw->{'community'} || $DEFAULT{'community'} || 'public'; 59 } 60 $sw->{'snmp_param_session'} = \%session; 61 } 62 @SWITCH_LIST = reverse sort { $SWITCH_LEVEL{$a->{hostname}} <=> $SWITCH_LEVEL{$b->{hostname}} } @{$KLASK_CFG->{'switch'}}; 63 63 64 64 #my %SWITCH_PORT_COUNT = (); … … 357 357 INIT_EACH_SWITCH: 358 358 for my $sw (@SWITCH_LIST) { 359 my ($session, $error) = Net::SNMP->session( %{$sw->{ snmp_param_session}} );359 my ($session, $error) = Net::SNMP->session( %{$sw->{'snmp_param_session'}} ); 360 360 print "$error \n" if $error; 361 361 … … 474 474 } 475 475 476 my $research1 = $OID_NUMBER{ searchPort1} . mac_address_hex_to_dec($mac_address);477 my $research2 = $OID_NUMBER{ searchPort2} .'.'. $vlan_id . mac_address_hex_to_dec($mac_address);476 my $research1 = $OID_NUMBER{'searchPort1'} . mac_address_hex_to_dec($mac_address); 477 my $research2 = $OID_NUMBER{'searchPort2'} .'.'. $vlan_id . mac_address_hex_to_dec($mac_address); 478 478 479 479 LOOP_ON_SWITCH: 480 480 for my $sw (@switch_search) { 481 my ($session, $error) = Net::SNMP->session( %{$sw->{ snmp_param_session}} );481 my ($session, $error) = Net::SNMP->session( %{$sw->{'snmp_param_session'}} ); 482 482 print "$error \n" if $error; 483 483 … … 533 533 return $ret if $mac_address eq 'unknow'; 534 534 535 my $research1 = $OID_NUMBER{ searchPort1} . mac_address_hex_to_dec($mac_address);536 my $research2 = $OID_NUMBER{ searchPort2} .'.'. $vlan_id . mac_address_hex_to_dec($mac_address);535 my $research1 = $OID_NUMBER{'searchPort1'} . mac_address_hex_to_dec($mac_address); 536 my $research2 = $OID_NUMBER{'searchPort2'} .'.'. $vlan_id . mac_address_hex_to_dec($mac_address); 537 537 LOOP_ON_ALL_SWITCH: 538 538 for my $sw (@SWITCH_LIST) { 539 my ($session, $error) = Net::SNMP->session( %{$sw->{ snmp_param_session}} );539 my ($session, $error) = Net::SNMP->session( %{$sw->{'snmp_param_session'}} ); 540 540 print "$error \n" if $error; 541 541 … … 782 782 my ($sw) = @_; 783 783 784 my %session = %{$sw->{ snmp_param_session}};785 $session{-community} = $sw->{ community-rw} || $DEFAULT{community-rw} || 'private';784 my %session = %{$sw->{'snmp_param_session'}}; 785 $session{-community} = $sw->{'community-rw'} || $DEFAULT{'community-rw'} || 'private'; 786 786 return %session; 787 787 } … … 1526 1526 1527 1527 if (exists $db_switch_parent{$sw}) { 1528 my $mac_address = $db_switch{$db_switch_parent{$sw}->{ switch}}->{mac_address};1529 my $ipv4_address = $db_switch{$db_switch_parent{$sw}->{ switch}}->{ipv4_address};1530 my $timestamp = $db_switch{$db_switch_parent{$sw}->{ switch}}->{timestamp};1528 my $mac_address = $db_switch{$db_switch_parent{$sw}->{'switch'}}->{mac_address}; 1529 my $ipv4_address = $db_switch{$db_switch_parent{$sw}->{'switch'}}->{ipv4_address}; 1530 my $timestamp = $db_switch{$db_switch_parent{$sw}->{'switch'}}->{timestamp}; 1531 1531 1532 1532 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime $timestamp; … … 1539 1539 my $mac_sort = sprintf '%04i-%s', 9999, $mac_address; 1540 1540 1541 my ( $host_short ) = sprintf '%s %3s' , split(m/ \. /xms, $db_switch_parent{$sw}->{ switch}, 1), $db_switch_parent{$sw}->{port_hr};1541 my ( $host_short ) = sprintf '%s %3s' , split(m/ \. /xms, $db_switch_parent{$sw}->{'switch'}, 1), $db_switch_parent{$sw}->{port_hr}; 1542 1542 1543 1543 print <<"END_HTML"; … … 1546 1546 <td class="bklask-port">$db_switch_output_port{$sw}</td> 1547 1547 <td>$arrow</td><td>$db_switch_parent{$sw}->{port_hr}</td> 1548 <td sorttable_customkey="$host_short">$db_switch_parent{$sw}->{ switch}</td>1548 <td sorttable_customkey="$host_short">$db_switch_parent{$sw}->{'switch'}</td> 1549 1549 <td sorttable_customkey="$ip_sort">$ipv4_address</td> 1550 1550 <td sorttable_customkey="$mac_sort">$mac_address</td> … … 1741 1741 } 1742 1742 1743 my $research1 = $OID_NUMBER{ searchPort1} . mac_address_hex_to_dec($mac_address);1744 my $research2 = $OID_NUMBER{ searchPort2} .'.'. 0 . mac_address_hex_to_dec($mac_address);1743 my $research1 = $OID_NUMBER{'searchPort1'} . mac_address_hex_to_dec($mac_address); 1744 my $research2 = $OID_NUMBER{'searchPort2'} .'.'. 0 . mac_address_hex_to_dec($mac_address); 1745 1745 print "Klask search OID $research1 on switch $sw_name\n"; 1746 1746 print "Klask search OID $research2 on switch $sw_name\n"; 1747 1747 1748 1748 my $sw = $SWITCH_DB{$sw_name}; 1749 my ($session, $error) = Net::SNMP->session( %{$sw->{ snmp_param_session}} );1749 my ($session, $error) = Net::SNMP->session( %{$sw->{'snmp_param_session'}} ); 1750 1750 print "$error \n" if $error; 1751 1751 … … 1797 1797 1798 1798 my $sw = $SWITCH_DB{$sw_name}; 1799 my ($session, $error) = Net::SNMP->session( %{$sw->{ snmp_param_session}} );1799 my ($session, $error) = Net::SNMP->session( %{$sw->{'snmp_param_session'}} ); 1800 1800 print "$error \n" if $error; 1801 1801 … … 1874 1874 1875 1875 my $sw = $SWITCH_DB{$sw_name}; 1876 my ($session, $error) = Net::SNMP->session( %{$sw->{ snmp_param_session}} );1876 my ($session, $error) = Net::SNMP->session( %{$sw->{'snmp_param_session'}} ); 1877 1877 print "$error \n" if $error; 1878 1878 … … 2172 2172 2173 2173 my $sw = $SWITCH_DB{$switch_name}; 2174 my ($session, $error) = Net::SNMP->session( %{$sw->{ snmp_param_session}} );2174 my ($session, $error) = Net::SNMP->session( %{$sw->{'snmp_param_session'}} ); 2175 2175 print "$error \n" if $error; 2176 2176 … … 2223 2223 } 2224 2224 2225 my $research1 = $OID_NUMBER{ searchPort1} . mac_address_hex_to_dec($mac_address);2226 my $research2 = $OID_NUMBER{ searchPort2} .'.'. $vlan_id . mac_address_hex_to_dec($mac_address);2225 my $research1 = $OID_NUMBER{'searchPort1'} . mac_address_hex_to_dec($mac_address); 2226 my $research2 = $OID_NUMBER{'searchPort2'} .'.'. $vlan_id . mac_address_hex_to_dec($mac_address); 2227 2227 print "Klask search OID $research1 on switch $sw_name\n" if $verbose; 2228 2228 print "Klask search OID $research2 on switch $sw_name\n" if $verbose; 2229 2229 2230 2230 my $sw = $SWITCH_DB{$sw_name}; 2231 my ($session, $error) = Net::SNMP->session( %{$sw->{ snmp_param_session}} );2231 my ($session, $error) = Net::SNMP->session( %{$sw->{'snmp_param_session'}} ); 2232 2232 print "$error \n" if $error; 2233 2233 … … 2442 2442 for my $sw (sort keys %db_switch_output_port) { 2443 2443 if (exists $db_switch_parent{$sw}) { 2444 printf "%-28s %2s +--> %2s %-25s\n", $sw, $db_switch_output_port{$sw}, $db_switch_parent{$sw}->{port_hr}, $db_switch_parent{$sw}->{ switch};2444 printf "%-28s %2s +--> %2s %-25s\n", $sw, $db_switch_output_port{$sw}, $db_switch_parent{$sw}->{port_hr}, $db_switch_parent{$sw}->{'switch'}; 2445 2445 } 2446 2446 else { … … 2512 2512 for my $sw (sort keys %db_switch_output_port) { 2513 2513 if (exists $db_switch_parent{$sw}) { 2514 printf "%-28s %2s +--> %2s %-25s\n", $sw, $db_switch_output_port{$sw}, $db_switch_parent{$sw}->{port_hr}, $db_switch_parent{$sw}->{ switch};2514 printf "%-28s %2s +--> %2s %-25s\n", $sw, $db_switch_output_port{$sw}, $db_switch_parent{$sw}->{port_hr}, $db_switch_parent{$sw}->{'switch'}; 2515 2515 } 2516 2516 else { … … 2611 2611 for my $sw (sort keys %db_switch_output_port) { 2612 2612 if (exists $db_switch_parent{$sw}) { 2613 # printf " \"%s:%s\" -> \"%s:%s\"\n", $sw, $db_switch_output_port{$sw}, $db_switch_parent{$sw}->{ switch}, $db_switch_parent{$sw}->{port};2613 # printf " \"%s:%s\" -> \"%s:%s\"\n", $sw, $db_switch_output_port{$sw}, $db_switch_parent{$sw}->{'switch'}, $db_switch_parent{$sw}->{port}; 2614 2614 } 2615 2615 else {
Note: See TracChangeset
for help on using the changeset viewer.