Changeset 239


Ignore:
Timestamp:
Apr 13, 2017, 6:30:12 PM (7 years ago)
Author:
g7moreau
Message:
  • Begin implementation of poe command
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/klask

    r238 r239  
    8282   'search-mac-on-switch' => \&cmd_search_mac_on_switch,
    8383   'bad-vlan-id'          => \&cmd_bad_vlan_id,
     84   'poe-enable'           => \&cmd_poe_enable,
     85   'poe-disable'          => \&cmd_poe_disable,
     86   'poe-status'           => \&cmd_poe_status,
    8487   'port-setvlan'         => \&cmd_port_setvlan,
    8588   'port-getvlan'         => \&cmd_port_getvlan,
     
    170173   vlanStatus      => '1.3.6.1.2.1.17.7.1.4.3.1.5',   # integer 4 Create, 6 Destroy
    171174   vlanName        => '1.3.6.1.2.1.17.7.1.4.3.1.1',   # string
    172    hpicfReset      => '1.3.6.1.4.1.11.2.14.11.1.4.1', # HP reboot switch
     175   HPicfReset      => '1.3.6.1.4.1.11.2.14.11.1.4.1', # HP reboot switch
    173176   ifIndex         => '1.3.6.1.2.1.17.1.4.1.2',       # dot1dBasePortIfIndex - Interface index redirection
    174177   ifName          => '1.3.6.1.2.1.31.1.1.1.1',       # Interface name (give port number)
    175178   portUpDown      => '1.3.6.1.2.1.2.2.1.7',          # 1.3.6.1.2.1.2.2.1.7.NoPort = 1 (up)  = 2 (down)
    176179   poeState        => '1.3.6.1.2.1.105.1.1.1.3.1',    # 1.3.6.1.2.1.105.1.1.1.3.1.NoPort = 1 (poe up)  = 2 (poe down) - Cisco and Zyxel
     180   NApoeState      => '1.3.6.1.4.1.266.20.3.1.1.21',  # .NoPort = 2 (poe off)  = 8 (poe atHighPower) - Nexans
    177181   );
    178182
     
    17681772
    17691773#---------------------------------------------------------------
     1774sub cmd_poe_enable {
     1775   @ARGV = @_;
     1776
     1777   my $verbose;
     1778   GetOptions(
     1779      'verbose|v' => \$verbose,
     1780      );
     1781
     1782   my $switch_name = shift @ARGV || q{};
     1783   my $switch_port = shift @ARGV || q{};
     1784
     1785   if ($switch_name eq q{} or $switch_port eq q{}) {
     1786      die "Usage: klask poe-enable SWITCH_NAME PORT\n";
     1787      }
     1788
     1789   for my $sw_name (split /,/, $switch_name) {
     1790      if (not defined $SWITCH_DB{$sw_name}) {
     1791         die "Switch $sw_name must be defined in klask configuration file\n";
     1792         }
     1793
     1794      my $search = $OID_NUMBER{'NApoeState'} . ".$switch_port"; # Only NEXANS Switch and low port number
     1795
     1796      my $sw = $SWITCH_DB{$sw_name};
     1797      my ($session, $error) = Net::SNMP->session(snmp_get_rwsession($sw));
     1798      print "$error \n" if $error;
     1799
     1800      my $result = $session->set_request(
     1801         -varbindlist => [$search, INTEGER, 8], # Only NEXANS
     1802         );
     1803      print $session->error()."\n" if $session->error_status();
     1804
     1805      $session->close;
     1806      }
     1807   cmd_poe_status($switch_name, $switch_port);
     1808   return;
     1809   }
     1810
     1811#---------------------------------------------------------------
     1812sub cmd_poe_disable {
     1813   @ARGV = @_;
     1814
     1815   my $verbose;
     1816   GetOptions(
     1817      'verbose|v' => \$verbose,
     1818      );
     1819
     1820   my $switch_name = shift @ARGV || q{};
     1821   my $switch_port = shift @ARGV || q{};
     1822
     1823   if ($switch_name eq q{} or $switch_port eq q{}) {
     1824      die "Usage: klask poe-disable SWITCH_NAME PORT\n";
     1825      }
     1826
     1827   for my $sw_name (split /,/, $switch_name) {
     1828      if (not defined $SWITCH_DB{$sw_name}) {
     1829         die "Switch $sw_name must be defined in klask configuration file\n";
     1830         }
     1831
     1832      my $search = $OID_NUMBER{'NApoeState'} . ".$switch_port"; # Only NEXANS Switch and low port number
     1833
     1834      my $sw = $SWITCH_DB{$sw_name};
     1835      my ($session, $error) = Net::SNMP->session(snmp_get_rwsession($sw));
     1836      print "$error \n" if $error;
     1837
     1838      my $result = $session->set_request(
     1839         -varbindlist => [$search, INTEGER, 2], # Only NEXANS
     1840         );
     1841      print $session->error()."\n" if $session->error_status();
     1842
     1843      $session->close;
     1844      }
     1845   cmd_poe_status($switch_name, $switch_port);
     1846   return;
     1847   }
     1848
     1849#---------------------------------------------------------------
     1850sub cmd_poe_status {
     1851   @ARGV = @_;
     1852
     1853   my $verbose;
     1854   GetOptions(
     1855      'verbose|v' => \$verbose,
     1856      );
     1857
     1858   my $switch_name = shift @ARGV || q{};
     1859   my $switch_port = shift @ARGV || q{};
     1860
     1861   if ($switch_name eq q{} or $switch_port eq q{}) {
     1862      die "Usage: klask poe-status SWITCH_NAME PORT\n";
     1863      }
     1864
     1865   for my $sw_name (split /,/, $switch_name) {
     1866      if (not defined $SWITCH_DB{$sw_name}) {
     1867         die "Switch $sw_name must be defined in klask configuration file\n";
     1868         }
     1869
     1870      my $search = $OID_NUMBER{'NApoeState'} . ".$switch_port"; # Only NEXANS Switch and low port number
     1871
     1872      my $sw = $SWITCH_DB{$sw_name};
     1873      my ($session, $error) = Net::SNMP->session( %{$sw->{'snmp_param_session'}} );
     1874      print "$error \n" if $error;
     1875
     1876      my $result = $session->get_request(
     1877         -varbindlist => [$search],
     1878         );
     1879
     1880      if (defined $result and $result->{$search} ne 'noSuchInstance') {
     1881         my $poe = $result->{$search} || 'empty';
     1882         $poe =~ s/8/on/;
     1883         $poe =~ s/2/off/;
     1884         printf "%s  %s ~~ %s\n", $sw_name, $switch_port, $poe;
     1885         }
     1886      else {
     1887         print "Klask do not find POE Status on switch $sw_name on port $switch_port\n";
     1888         }
     1889
     1890      $session->close;
     1891      }
     1892   return;
     1893   }
     1894
     1895#---------------------------------------------------------------
    17701896# not finish - do not use
    17711897sub cmd_port_setvlan {
     
    18651991
    18661992#---------------------------------------------------------------
    1867 # snmpset -v 1 -c public sw1-batG0-legi.hmg.priv "$OID_NUMBER{'hpicfReset'}.0" i 2;
     1993# snmpset -v 1 -c public sw1-batG0-legi.hmg.priv "$OID_NUMBER{'HPicfReset'}.0" i 2;
    18681994sub cmd_rebootsw {
    18691995   @ARGV = @_;
     
    18902016
    18912017      my $result = $session->set_request(
    1892          -varbindlist => ["$OID_NUMBER{'hpicfReset'}.0", INTEGER, 2],
     2018         -varbindlist => ["$OID_NUMBER{'HPicfReset'}.0", INTEGER, 2],
    18932019         );
    18942020
Note: See TracChangeset for help on using the changeset viewer.