Changeset 239
- Timestamp:
- Apr 13, 2017, 6:30:12 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/klask
r238 r239 82 82 'search-mac-on-switch' => \&cmd_search_mac_on_switch, 83 83 '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, 84 87 'port-setvlan' => \&cmd_port_setvlan, 85 88 'port-getvlan' => \&cmd_port_getvlan, … … 170 173 vlanStatus => '1.3.6.1.2.1.17.7.1.4.3.1.5', # integer 4 Create, 6 Destroy 171 174 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 switch175 HPicfReset => '1.3.6.1.4.1.11.2.14.11.1.4.1', # HP reboot switch 173 176 ifIndex => '1.3.6.1.2.1.17.1.4.1.2', # dot1dBasePortIfIndex - Interface index redirection 174 177 ifName => '1.3.6.1.2.1.31.1.1.1.1', # Interface name (give port number) 175 178 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) 176 179 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 177 181 ); 178 182 … … 1768 1772 1769 1773 #--------------------------------------------------------------- 1774 sub 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 #--------------------------------------------------------------- 1812 sub 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 #--------------------------------------------------------------- 1850 sub 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 #--------------------------------------------------------------- 1770 1896 # not finish - do not use 1771 1897 sub cmd_port_setvlan { … … 1865 1991 1866 1992 #--------------------------------------------------------------- 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; 1868 1994 sub cmd_rebootsw { 1869 1995 @ARGV = @_; … … 1890 2016 1891 2017 my $result = $session->set_request( 1892 -varbindlist => ["$OID_NUMBER{' hpicfReset'}.0", INTEGER, 2],2018 -varbindlist => ["$OID_NUMBER{'HPicfReset'}.0", INTEGER, 2], 1893 2019 ); 1894 2020
Note: See TracChangeset
for help on using the changeset viewer.