snmp 1.3.1 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +63 -0
  3. data/MIT-LICENSE +19 -0
  4. data/README.md +143 -0
  5. data/Rakefile +13 -49
  6. data/data/ruby/snmp/mibs/ACCOUNTING-CONTROL-MIB.yaml +0 -0
  7. data/data/ruby/snmp/mibs/ADSL-LINE-EXT-MIB.yaml +0 -0
  8. data/data/ruby/snmp/mibs/ADSL-LINE-MIB.yaml +0 -0
  9. data/data/ruby/snmp/mibs/ADSL-TC-MIB.yaml +0 -0
  10. data/data/ruby/snmp/mibs/ADSL2-LINE-MIB.yaml +0 -0
  11. data/data/ruby/snmp/mibs/ADSL2-LINE-TC-MIB.yaml +0 -0
  12. data/data/ruby/snmp/mibs/AGENTX-MIB.yaml +0 -0
  13. data/data/ruby/snmp/mibs/AGGREGATE-MIB.yaml +0 -0
  14. data/data/ruby/snmp/mibs/ALARM-MIB.yaml +0 -0
  15. data/data/ruby/snmp/mibs/APM-MIB.yaml +0 -0
  16. data/data/ruby/snmp/mibs/APPC-MIB.yaml +0 -0
  17. data/data/ruby/snmp/mibs/APPLETALK-MIB.yaml +0 -0
  18. data/data/ruby/snmp/mibs/APPLICATION-MIB.yaml +0 -0
  19. data/data/ruby/snmp/mibs/APPN-DLUR-MIB.yaml +0 -0
  20. data/data/ruby/snmp/mibs/APPN-MIB.yaml +0 -0
  21. data/data/ruby/snmp/mibs/APPN-TRAP-MIB.yaml +0 -0
  22. data/data/ruby/snmp/mibs/APS-MIB.yaml +0 -0
  23. data/data/ruby/snmp/mibs/ARC-MIB.yaml +0 -0
  24. data/data/ruby/snmp/mibs/ATM-ACCOUNTING-INFORMATION-MIB.yaml +0 -0
  25. data/data/ruby/snmp/mibs/ATM-MIB.yaml +0 -0
  26. data/data/ruby/snmp/mibs/ATM-TC-MIB.yaml +0 -0
  27. data/data/ruby/snmp/mibs/ATM2-MIB.yaml +0 -0
  28. data/data/ruby/snmp/mibs/BGP4-MIB.yaml +0 -0
  29. data/data/ruby/snmp/mibs/BLDG-HVAC-MIB.yaml +0 -0
  30. data/data/ruby/snmp/mibs/BRIDGE-MIB.yaml +0 -0
  31. data/data/ruby/snmp/mibs/CHARACTER-MIB.yaml +0 -0
  32. data/data/ruby/snmp/mibs/CIRCUIT-IF-MIB.yaml +0 -0
  33. data/data/ruby/snmp/mibs/CLNS-MIB.yaml +0 -0
  34. data/data/ruby/snmp/mibs/COFFEE-POT-MIB.yaml +0 -0
  35. data/data/ruby/snmp/mibs/COPS-CLIENT-MIB.yaml +0 -0
  36. data/data/ruby/snmp/mibs/DECNET-PHIV-MIB.yaml +0 -0
  37. data/data/ruby/snmp/mibs/DIAL-CONTROL-MIB.yaml +0 -0
  38. data/data/ruby/snmp/mibs/DIFFSERV-CONFIG-MIB.yaml +0 -0
  39. data/data/ruby/snmp/mibs/DIFFSERV-DSCP-TC.yaml +0 -0
  40. data/data/ruby/snmp/mibs/DIFFSERV-MIB.yaml +0 -0
  41. data/data/ruby/snmp/mibs/DIRECTORY-SERVER-MIB.yaml +0 -0
  42. data/data/ruby/snmp/mibs/DISMAN-EVENT-MIB.yaml +0 -0
  43. data/data/ruby/snmp/mibs/DISMAN-EXPRESSION-MIB.yaml +0 -0
  44. data/data/ruby/snmp/mibs/DISMAN-NSLOOKUP-MIB.yaml +0 -0
  45. data/data/ruby/snmp/mibs/DISMAN-PING-MIB.yaml +0 -0
  46. data/data/ruby/snmp/mibs/DISMAN-SCHEDULE-MIB.yaml +0 -0
  47. data/data/ruby/snmp/mibs/DISMAN-SCRIPT-MIB.yaml +0 -0
  48. data/data/ruby/snmp/mibs/DISMAN-TRACEROUTE-MIB.yaml +0 -0
  49. data/data/ruby/snmp/mibs/DLSW-MIB.yaml +0 -0
  50. data/data/ruby/snmp/mibs/DNS-RESOLVER-MIB.yaml +0 -0
  51. data/data/ruby/snmp/mibs/DNS-SERVER-MIB.yaml +0 -0
  52. data/data/ruby/snmp/mibs/DOCS-BPI-MIB.yaml +0 -0
  53. data/data/ruby/snmp/mibs/DOCS-CABLE-DEVICE-MIB.yaml +0 -0
  54. data/data/ruby/snmp/mibs/DOCS-IETF-BPI2-MIB.yaml +0 -0
  55. data/data/ruby/snmp/mibs/DOCS-IETF-CABLE-DEVICE-NOTIFICATION-MIB.yaml +0 -0
  56. data/data/ruby/snmp/mibs/DOCS-IETF-QOS-MIB.yaml +0 -0
  57. data/data/ruby/snmp/mibs/DOCS-IETF-SUBMGT-MIB.yaml +0 -0
  58. data/data/ruby/snmp/mibs/DOCS-IF-MIB.yaml +0 -0
  59. data/data/ruby/snmp/mibs/DOT12-IF-MIB.yaml +0 -0
  60. data/data/ruby/snmp/mibs/DOT3-EPON-MIB.yaml +0 -0
  61. data/data/ruby/snmp/mibs/DOT3-OAM-MIB.yaml +0 -0
  62. data/data/ruby/snmp/mibs/DS0-MIB.yaml +0 -0
  63. data/data/ruby/snmp/mibs/DS0BUNDLE-MIB.yaml +0 -0
  64. data/data/ruby/snmp/mibs/DS1-MIB.yaml +0 -0
  65. data/data/ruby/snmp/mibs/DS3-MIB.yaml +0 -0
  66. data/data/ruby/snmp/mibs/DSA-MIB.yaml +0 -0
  67. data/data/ruby/snmp/mibs/DSMON-MIB.yaml +0 -0
  68. data/data/ruby/snmp/mibs/EBN-MIB.yaml +0 -0
  69. data/data/ruby/snmp/mibs/EFM-CU-MIB.yaml +0 -0
  70. data/data/ruby/snmp/mibs/ENTITY-MIB.yaml +0 -0
  71. data/data/ruby/snmp/mibs/ENTITY-SENSOR-MIB.yaml +0 -0
  72. data/data/ruby/snmp/mibs/ENTITY-STATE-MIB.yaml +0 -0
  73. data/data/ruby/snmp/mibs/ENTITY-STATE-TC-MIB.yaml +0 -0
  74. data/data/ruby/snmp/mibs/ETHER-CHIPSET-MIB.yaml +0 -0
  75. data/data/ruby/snmp/mibs/ETHER-WIS.yaml +0 -0
  76. data/data/ruby/snmp/mibs/EtherLike-MIB.yaml +0 -0
  77. data/data/ruby/snmp/mibs/FC-MGMT-MIB.yaml +0 -0
  78. data/data/ruby/snmp/mibs/FCIP-MGMT-MIB.yaml +0 -0
  79. data/data/ruby/snmp/mibs/FDDI-SMT73-MIB.yaml +0 -0
  80. data/data/ruby/snmp/mibs/FIBRE-CHANNEL-FE-MIB.yaml +0 -0
  81. data/data/ruby/snmp/mibs/FLOW-METER-MIB.yaml +0 -0
  82. data/data/ruby/snmp/mibs/FR-ATM-PVC-SERVICE-IWF-MIB.yaml +0 -0
  83. data/data/ruby/snmp/mibs/FR-MFR-MIB.yaml +0 -0
  84. data/data/ruby/snmp/mibs/FRAME-RELAY-DTE-MIB.yaml +0 -0
  85. data/data/ruby/snmp/mibs/FRNETSERV-MIB.yaml +0 -0
  86. data/data/ruby/snmp/mibs/FRSLD-MIB.yaml +0 -0
  87. data/data/ruby/snmp/mibs/Finisher-MIB.yaml +0 -0
  88. data/data/ruby/snmp/mibs/GMPLS-LABEL-STD-MIB.yaml +0 -0
  89. data/data/ruby/snmp/mibs/GMPLS-LSR-STD-MIB.yaml +0 -0
  90. data/data/ruby/snmp/mibs/GMPLS-TC-STD-MIB.yaml +0 -0
  91. data/data/ruby/snmp/mibs/GMPLS-TE-STD-MIB.yaml +0 -0
  92. data/data/ruby/snmp/mibs/GSMP-MIB.yaml +0 -0
  93. data/data/ruby/snmp/mibs/HC-ALARM-MIB.yaml +0 -0
  94. data/data/ruby/snmp/mibs/HC-PerfHist-TC-MIB.yaml +0 -0
  95. data/data/ruby/snmp/mibs/HC-RMON-MIB.yaml +0 -0
  96. data/data/ruby/snmp/mibs/HCNUM-TC.yaml +0 -0
  97. data/data/ruby/snmp/mibs/HDSL2-SHDSL-LINE-MIB.yaml +0 -0
  98. data/data/ruby/snmp/mibs/HOST-RESOURCES-MIB.yaml +0 -0
  99. data/data/ruby/snmp/mibs/HOST-RESOURCES-TYPES.yaml +0 -0
  100. data/data/ruby/snmp/mibs/HPR-IP-MIB.yaml +0 -0
  101. data/data/ruby/snmp/mibs/HPR-MIB.yaml +0 -0
  102. data/data/ruby/snmp/mibs/IANA-ITU-ALARM-TC-MIB.yaml +0 -0
  103. data/data/ruby/snmp/mibs/IF-CAP-STACK-MIB.yaml +0 -0
  104. data/data/ruby/snmp/mibs/IF-INVERTED-STACK-MIB.yaml +0 -0
  105. data/data/ruby/snmp/mibs/IF-MIB.yaml +0 -0
  106. data/data/ruby/snmp/mibs/IFCP-MGMT-MIB.yaml +0 -0
  107. data/data/ruby/snmp/mibs/IGMP-STD-MIB.yaml +0 -0
  108. data/data/ruby/snmp/mibs/INET-ADDRESS-MIB.yaml +0 -0
  109. data/data/ruby/snmp/mibs/INTEGRATED-SERVICES-GUARANTEED-MIB.yaml +0 -0
  110. data/data/ruby/snmp/mibs/INTEGRATED-SERVICES-MIB.yaml +0 -0
  111. data/data/ruby/snmp/mibs/INTERFACETOPN-MIB.yaml +0 -0
  112. data/data/ruby/snmp/mibs/IP-FORWARD-MIB.yaml +0 -0
  113. data/data/ruby/snmp/mibs/IP-MIB.yaml +0 -0
  114. data/data/ruby/snmp/mibs/IPATM-IPMC-MIB.yaml +0 -0
  115. data/data/ruby/snmp/mibs/IPMCAST-MIB.yaml +0 -0
  116. data/data/ruby/snmp/mibs/IPMROUTE-STD-MIB.yaml +0 -0
  117. data/data/ruby/snmp/mibs/IPOA-MIB.yaml +0 -0
  118. data/data/ruby/snmp/mibs/IPS-AUTH-MIB.yaml +0 -0
  119. data/data/ruby/snmp/mibs/IPSEC-SPD-MIB.yaml +0 -0
  120. data/data/ruby/snmp/mibs/IPV6-FLOW-LABEL-MIB.yaml +0 -0
  121. data/data/ruby/snmp/mibs/IPV6-ICMP-MIB.yaml +0 -0
  122. data/data/ruby/snmp/mibs/IPV6-MIB.yaml +0 -0
  123. data/data/ruby/snmp/mibs/IPV6-MLD-MIB.yaml +0 -0
  124. data/data/ruby/snmp/mibs/IPV6-TCP-MIB.yaml +0 -0
  125. data/data/ruby/snmp/mibs/IPV6-UDP-MIB.yaml +0 -0
  126. data/data/ruby/snmp/mibs/ISCSI-MIB.yaml +0 -0
  127. data/data/ruby/snmp/mibs/ISDN-MIB.yaml +0 -0
  128. data/data/ruby/snmp/mibs/ISIS-MIB.yaml +0 -0
  129. data/data/ruby/snmp/mibs/ISNS-MIB.yaml +0 -0
  130. data/data/ruby/snmp/mibs/ITU-ALARM-MIB.yaml +0 -0
  131. data/data/ruby/snmp/mibs/ITU-ALARM-TC-MIB.yaml +0 -0
  132. data/data/ruby/snmp/mibs/Job-Monitoring-MIB.yaml +0 -0
  133. data/data/ruby/snmp/mibs/L2TP-MIB.yaml +0 -0
  134. data/data/ruby/snmp/mibs/LANGTAG-TC-MIB.yaml +0 -0
  135. data/data/ruby/snmp/mibs/LMP-MIB.yaml +0 -0
  136. data/data/ruby/snmp/mibs/MALLOC-MIB.yaml +0 -0
  137. data/data/ruby/snmp/mibs/MAU-MIB.yaml +0 -0
  138. data/data/ruby/snmp/mibs/MIDCOM-MIB.yaml +0 -0
  139. data/data/ruby/snmp/mibs/MIOX25-MIB.yaml +0 -0
  140. data/data/ruby/snmp/mibs/MIP-MIB.yaml +0 -0
  141. data/data/ruby/snmp/mibs/MOBILEIPV6-MIB.yaml +0 -0
  142. data/data/ruby/snmp/mibs/MPLS-FTN-STD-MIB.yaml +0 -0
  143. data/data/ruby/snmp/mibs/MPLS-L3VPN-STD-MIB.yaml +0 -0
  144. data/data/ruby/snmp/mibs/MPLS-LC-ATM-STD-MIB.yaml +0 -0
  145. data/data/ruby/snmp/mibs/MPLS-LC-FR-STD-MIB.yaml +0 -0
  146. data/data/ruby/snmp/mibs/MPLS-LDP-ATM-STD-MIB.yaml +0 -0
  147. data/data/ruby/snmp/mibs/MPLS-LDP-FRAME-RELAY-STD-MIB.yaml +0 -0
  148. data/data/ruby/snmp/mibs/MPLS-LDP-GENERIC-STD-MIB.yaml +0 -0
  149. data/data/ruby/snmp/mibs/MPLS-LDP-STD-MIB.yaml +0 -0
  150. data/data/ruby/snmp/mibs/MPLS-LSR-STD-MIB.yaml +0 -0
  151. data/data/ruby/snmp/mibs/MPLS-TC-STD-MIB.yaml +0 -0
  152. data/data/ruby/snmp/mibs/MPLS-TE-STD-MIB.yaml +0 -0
  153. data/data/ruby/snmp/mibs/MSDP-MIB.yaml +0 -0
  154. data/data/ruby/snmp/mibs/MTA-MIB.yaml +0 -0
  155. data/data/ruby/snmp/mibs/Modem-MIB.yaml +0 -0
  156. data/data/ruby/snmp/mibs/NAT-MIB.yaml +0 -0
  157. data/data/ruby/snmp/mibs/NETWORK-SERVICES-MIB.yaml +0 -0
  158. data/data/ruby/snmp/mibs/NHRP-MIB.yaml +0 -0
  159. data/data/ruby/snmp/mibs/NOTIFICATION-LOG-MIB.yaml +0 -0
  160. data/data/ruby/snmp/mibs/OPT-IF-MIB.yaml +0 -0
  161. data/data/ruby/snmp/mibs/OSPF-MIB.yaml +0 -0
  162. data/data/ruby/snmp/mibs/OSPF-TRAP-MIB.yaml +0 -0
  163. data/data/ruby/snmp/mibs/P-BRIDGE-MIB.yaml +0 -0
  164. data/data/ruby/snmp/mibs/PARALLEL-MIB.yaml +0 -0
  165. data/data/ruby/snmp/mibs/PIM-MIB.yaml +0 -0
  166. data/data/ruby/snmp/mibs/PIM-STD-MIB.yaml +0 -0
  167. data/data/ruby/snmp/mibs/PINT-MIB.yaml +0 -0
  168. data/data/ruby/snmp/mibs/PKTC-IETF-MTA-MIB.yaml +0 -0
  169. data/data/ruby/snmp/mibs/PKTC-IETF-SIG-MIB.yaml +0 -0
  170. data/data/ruby/snmp/mibs/POLICY-BASED-MANAGEMENT-MIB.yaml +0 -0
  171. data/data/ruby/snmp/mibs/POWER-ETHERNET-MIB.yaml +0 -0
  172. data/data/ruby/snmp/mibs/PPP-BRIDGE-NCP-MIB.yaml +0 -0
  173. data/data/ruby/snmp/mibs/PPP-IP-NCP-MIB.yaml +0 -0
  174. data/data/ruby/snmp/mibs/PPP-LCP-MIB.yaml +0 -0
  175. data/data/ruby/snmp/mibs/PPP-SEC-MIB.yaml +0 -0
  176. data/data/ruby/snmp/mibs/PTOPO-MIB.yaml +0 -0
  177. data/data/ruby/snmp/mibs/PerfHist-TC-MIB.yaml +0 -0
  178. data/data/ruby/snmp/mibs/Printer-MIB.yaml +0 -0
  179. data/data/ruby/snmp/mibs/Q-BRIDGE-MIB.yaml +0 -0
  180. data/data/ruby/snmp/mibs/RADIUS-ACC-CLIENT-MIB.yaml +0 -0
  181. data/data/ruby/snmp/mibs/RADIUS-ACC-SERVER-MIB.yaml +0 -0
  182. data/data/ruby/snmp/mibs/RADIUS-AUTH-CLIENT-MIB.yaml +0 -0
  183. data/data/ruby/snmp/mibs/RADIUS-AUTH-SERVER-MIB.yaml +0 -0
  184. data/data/ruby/snmp/mibs/RADIUS-DYNAUTH-CLIENT-MIB.yaml +0 -0
  185. data/data/ruby/snmp/mibs/RADIUS-DYNAUTH-SERVER-MIB.yaml +0 -0
  186. data/data/ruby/snmp/mibs/RAQMON-MIB.yaml +0 -0
  187. data/data/ruby/snmp/mibs/RDBMS-MIB.yaml +0 -0
  188. data/data/ruby/snmp/mibs/RFC1065-SMI.yaml +0 -0
  189. data/data/ruby/snmp/mibs/RFC1155-SMI.yaml +0 -0
  190. data/data/ruby/snmp/mibs/RFC1158-MIB.yaml +0 -0
  191. data/data/ruby/snmp/mibs/RFC1213-MIB.yaml +0 -0
  192. data/data/ruby/snmp/mibs/RFC1269-MIB.yaml +0 -0
  193. data/data/ruby/snmp/mibs/RFC1271-MIB.yaml +0 -0
  194. data/data/ruby/snmp/mibs/RFC1285-MIB.yaml +0 -0
  195. data/data/ruby/snmp/mibs/RFC1316-MIB.yaml +0 -0
  196. data/data/ruby/snmp/mibs/RFC1381-MIB.yaml +0 -0
  197. data/data/ruby/snmp/mibs/RFC1382-MIB.yaml +0 -0
  198. data/data/ruby/snmp/mibs/RFC1414-MIB.yaml +0 -0
  199. data/data/ruby/snmp/mibs/RIPv2-MIB.yaml +0 -0
  200. data/data/ruby/snmp/mibs/RMON-MIB.yaml +0 -0
  201. data/data/ruby/snmp/mibs/RMON2-MIB.yaml +0 -0
  202. data/data/ruby/snmp/mibs/ROHC-MIB.yaml +0 -0
  203. data/data/ruby/snmp/mibs/ROHC-RTP-MIB.yaml +0 -0
  204. data/data/ruby/snmp/mibs/ROHC-UNCOMPRESSED-MIB.yaml +0 -0
  205. data/data/ruby/snmp/mibs/RS-232-MIB.yaml +0 -0
  206. data/data/ruby/snmp/mibs/RSTP-MIB.yaml +0 -0
  207. data/data/ruby/snmp/mibs/RSVP-MIB.yaml +0 -0
  208. data/data/ruby/snmp/mibs/RTP-MIB.yaml +0 -0
  209. data/data/ruby/snmp/mibs/SCSI-MIB.yaml +0 -0
  210. data/data/ruby/snmp/mibs/SCTP-MIB.yaml +0 -0
  211. data/data/ruby/snmp/mibs/SFLOW-MIB.yaml +0 -0
  212. data/data/ruby/snmp/mibs/SIP-COMMON-MIB.yaml +0 -0
  213. data/data/ruby/snmp/mibs/SIP-MIB.yaml +0 -0
  214. data/data/ruby/snmp/mibs/SIP-SERVER-MIB.yaml +0 -0
  215. data/data/ruby/snmp/mibs/SIP-TC-MIB.yaml +0 -0
  216. data/data/ruby/snmp/mibs/SIP-UA-MIB.yaml +0 -0
  217. data/data/ruby/snmp/mibs/SLAPM-MIB.yaml +0 -0
  218. data/data/ruby/snmp/mibs/SMON-MIB.yaml +0 -0
  219. data/data/ruby/snmp/mibs/SNA-NAU-MIB.yaml +0 -0
  220. data/data/ruby/snmp/mibs/SNA-SDLC-MIB.yaml +0 -0
  221. data/data/ruby/snmp/mibs/SNMP-COMMUNITY-MIB.yaml +0 -0
  222. data/data/ruby/snmp/mibs/SNMP-FRAMEWORK-MIB.yaml +0 -0
  223. data/data/ruby/snmp/mibs/SNMP-MPD-MIB.yaml +0 -0
  224. data/data/ruby/snmp/mibs/SNMP-NOTIFICATION-MIB.yaml +0 -0
  225. data/data/ruby/snmp/mibs/SNMP-PROXY-MIB.yaml +0 -0
  226. data/data/ruby/snmp/mibs/SNMP-REPEATER-MIB.yaml +0 -0
  227. data/data/ruby/snmp/mibs/SNMP-TARGET-MIB.yaml +0 -0
  228. data/data/ruby/snmp/mibs/SNMP-USER-BASED-SM-MIB.yaml +0 -0
  229. data/data/ruby/snmp/mibs/SNMP-USM-AES-MIB.yaml +0 -0
  230. data/data/ruby/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.yaml +0 -0
  231. data/data/ruby/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.yaml +0 -0
  232. data/data/ruby/snmp/mibs/SNMPv2-MIB.yaml +0 -0
  233. data/data/ruby/snmp/mibs/SNMPv2-SMI.yaml +0 -0
  234. data/data/ruby/snmp/mibs/SNMPv2-TM.yaml +0 -0
  235. data/data/ruby/snmp/mibs/SNMPv2-USEC-MIB.yaml +0 -0
  236. data/data/ruby/snmp/mibs/SONET-MIB.yaml +0 -0
  237. data/data/ruby/snmp/mibs/SOURCE-ROUTING-MIB.yaml +0 -0
  238. data/data/ruby/snmp/mibs/SSPM-MIB.yaml +0 -0
  239. data/data/ruby/snmp/mibs/SYSAPPL-MIB.yaml +0 -0
  240. data/data/ruby/snmp/mibs/T11-FC-FABRIC-ADDR-MGR-MIB.yaml +0 -0
  241. data/data/ruby/snmp/mibs/T11-FC-FABRIC-CONFIG-SERVER-MIB.yaml +0 -0
  242. data/data/ruby/snmp/mibs/T11-FC-FABRIC-LOCK-MIB.yaml +0 -0
  243. data/data/ruby/snmp/mibs/T11-FC-FSPF-MIB.yaml +0 -0
  244. data/data/ruby/snmp/mibs/T11-FC-NAME-SERVER-MIB.yaml +0 -0
  245. data/data/ruby/snmp/mibs/T11-FC-ROUTE-MIB.yaml +0 -0
  246. data/data/ruby/snmp/mibs/T11-FC-RSCN-MIB.yaml +0 -0
  247. data/data/ruby/snmp/mibs/T11-FC-VIRTUAL-FABRIC-MIB.yaml +0 -0
  248. data/data/ruby/snmp/mibs/T11-FC-ZONE-SERVER-MIB.yaml +0 -0
  249. data/data/ruby/snmp/mibs/T11-TC-MIB.yaml +0 -0
  250. data/data/ruby/snmp/mibs/TCP-ESTATS-MIB.yaml +0 -0
  251. data/data/ruby/snmp/mibs/TCP-MIB.yaml +0 -0
  252. data/data/ruby/snmp/mibs/TCPIPX-MIB.yaml +0 -0
  253. data/data/ruby/snmp/mibs/TE-LINK-STD-MIB.yaml +0 -0
  254. data/data/ruby/snmp/mibs/TE-MIB.yaml +0 -0
  255. data/data/ruby/snmp/mibs/TIME-AGGREGATE-MIB.yaml +0 -0
  256. data/data/ruby/snmp/mibs/TN3270E-MIB.yaml +0 -0
  257. data/data/ruby/snmp/mibs/TN3270E-RT-MIB.yaml +0 -0
  258. data/data/ruby/snmp/mibs/TOKEN-RING-RMON-MIB.yaml +0 -0
  259. data/data/ruby/snmp/mibs/TOKENRING-MIB.yaml +0 -0
  260. data/data/ruby/snmp/mibs/TOKENRING-STATION-SR-MIB.yaml +0 -0
  261. data/data/ruby/snmp/mibs/TRANSPORT-ADDRESS-MIB.yaml +0 -0
  262. data/data/ruby/snmp/mibs/TRIP-MIB.yaml +0 -0
  263. data/data/ruby/snmp/mibs/TRIP-TC-MIB.yaml +0 -0
  264. data/data/ruby/snmp/mibs/TUNNEL-MIB.yaml +0 -0
  265. data/data/ruby/snmp/mibs/UCD-SNMP-MIB.yaml +0 -0
  266. data/data/ruby/snmp/mibs/UDP-MIB.yaml +0 -0
  267. data/data/ruby/snmp/mibs/UDPLITE-MIB.yaml +0 -0
  268. data/data/ruby/snmp/mibs/UPS-MIB.yaml +0 -0
  269. data/data/ruby/snmp/mibs/URI-TC-MIB.yaml +0 -0
  270. data/data/ruby/snmp/mibs/VDSL-LINE-EXT-MCM-MIB.yaml +0 -0
  271. data/data/ruby/snmp/mibs/VDSL-LINE-EXT-SCM-MIB.yaml +0 -0
  272. data/data/ruby/snmp/mibs/VDSL-LINE-MIB.yaml +0 -0
  273. data/data/ruby/snmp/mibs/VPN-TC-STD-MIB.yaml +0 -0
  274. data/data/ruby/snmp/mibs/VRRP-MIB.yaml +0 -0
  275. data/data/ruby/snmp/mibs/WWW-MIB.yaml +0 -0
  276. data/dump_yaml.rb +13 -0
  277. data/examples/datetime.rb +0 -0
  278. data/examples/dump.rb +0 -0
  279. data/examples/get.rb +0 -0
  280. data/examples/iftable.rb +0 -0
  281. data/examples/link_down.rb +0 -0
  282. data/examples/log_traps.rb +0 -0
  283. data/examples/set.rb +0 -0
  284. data/examples/walk.rb +0 -0
  285. data/import.rb +22 -0
  286. data/lib/snmp/agent.rb +1 -0
  287. data/lib/snmp/ber.rb +4 -3
  288. data/lib/snmp/manager.rb +18 -11
  289. data/lib/snmp/mib.rb +2 -0
  290. data/lib/snmp/options.rb +1 -0
  291. data/lib/snmp/pdu.rb +4 -3
  292. data/lib/snmp/varbind.rb +3 -2
  293. data/lib/snmp/version.rb +2 -1
  294. data/lib/snmp.rb +1 -0
  295. metadata +18 -24
  296. data/README.rdoc +0 -203
  297. data/test/if_table1.yaml +0 -81
  298. data/test/if_table6.yaml +0 -441
  299. data/test/test_ber.rb +0 -242
  300. data/test/test_manager.rb +0 -349
  301. data/test/test_mib.rb +0 -100
  302. data/test/test_pdu.rb +0 -187
  303. data/test/test_retry.rb +0 -82
  304. data/test/test_smi.rb +0 -19
  305. data/test/test_varbind.rb +0 -382
  306. data/test/test_walk.rb +0 -191
data/test/test_manager.rb DELETED
@@ -1,349 +0,0 @@
1
- require 'minitest/autorun'
2
- require 'snmp/manager'
3
-
4
- class EchoTransport
5
- def initialize
6
- end
7
-
8
- def close
9
- end
10
-
11
- def send(data, host, port)
12
- @data = data
13
- end
14
-
15
- def recv(max_bytes)
16
- SNMP::Message.decode(@data).response.encode[0,max_bytes]
17
- end
18
- end
19
-
20
- class TestConfig < Minitest::Test
21
-
22
- include SNMP
23
-
24
- def test_new_style_symbols
25
- config = Manager::Config.new(:host => "test")
26
- assert_equal("test", config.host)
27
- end
28
-
29
- def test_defaults
30
- config = Manager::Config.new({})
31
- assert_equal("localhost", config.host)
32
- end
33
-
34
- def test_old_style_symbols
35
- config = Manager::Config.new(:Transport => "transport")
36
- assert_equal("transport", config.transport)
37
- end
38
-
39
- def test_invalid_option
40
- assert_raises(RuntimeError) { Manager::Config.new(:fly_to_the_moon => true) }
41
- end
42
-
43
- def test_ipv6_address_guessing
44
- config = Manager::Config.new(:host => "::1")
45
- assert(config.use_IPv6)
46
- assert_equal("::1", config.host)
47
- end
48
-
49
- def test_applied_config
50
- config = Manager::Config.new(:host => "1:2:3:4:5:6:7:8", :port => 42, :timeout => 3)
51
- config.host
52
- config.use_IPv6
53
- config.retries
54
- assert_equal({:host=>"1:2:3:4:5:6:7:8", :retries=>5, :use_IPv6=>true,
55
- :Host => "1:2:3:4:5:6:7:8", :Retries => 5}, config.applied_config)
56
- end
57
- end
58
-
59
- class TestManager < Minitest::Test
60
-
61
- include SNMP
62
-
63
- def setup
64
- @manager = Manager.new(:Transport => EchoTransport.new)
65
- end
66
-
67
- def teardown
68
- @manager.close
69
- end
70
-
71
- def test_defaults
72
- assert_equal('localhost', @manager.config[:host])
73
- assert_equal(161, @manager.config[:port])
74
- assert_equal('public', @manager.config[:write_community])
75
- end
76
-
77
- def test_community
78
- @manager = Manager.new(:WriteCommunity=>'private', :Transport => EchoTransport.new)
79
- assert_equal('public', @manager.config[:community])
80
- assert_equal('private', @manager.config[:write_community])
81
-
82
- @manager = Manager.new(:Community=>'test', :Transport => EchoTransport.new)
83
- assert_equal('test', @manager.config[:community])
84
- assert_equal('test', @manager.config[:write_community])
85
-
86
- @manager = Manager.new(:Community=>'test', :WriteCommunity=>'private',
87
- :Transport => EchoTransport.new)
88
- assert_equal('test', @manager.config[:community])
89
- assert_equal('private', @manager.config[:write_community])
90
- end
91
-
92
- def test_transport_instance
93
- @manager = Manager.new(:Transport => EchoTransport.new)
94
- response = @manager.get("1.2.3.4")
95
- assert_equal("1.2.3.4", response.varbind_list.first.name.to_s)
96
- end
97
-
98
- def test_get
99
- response = @manager.get("1.2.3.4")
100
- assert_equal("1.2.3.4", response.varbind_list.first.name.to_s)
101
-
102
- response = @manager.get([ObjectId.new("1.2.3.4"), ObjectId.new("1.2.3.4.5")])
103
- assert_equal(ObjectId.new("1.2.3.4.5"), response.varbind_list[1].name)
104
- end
105
-
106
- def test_get_with_nil
107
- assert_raises(ArgumentError) { @manager.get(nil) }
108
- end
109
-
110
- def test_get_value
111
- value = @manager.get_value("1.2.3.4")
112
- assert_equal(Null, value)
113
-
114
- value = @manager.get_value(["1.2.3.4"])
115
- assert_equal([Null], value)
116
-
117
- values = @manager.get_value(["1.2.3.4", "1.2.3.4.5"])
118
- assert_equal(2, values.length)
119
- assert_equal(Null, values[0])
120
- assert_equal(Null, values[1])
121
- end
122
-
123
- def test_get_next
124
- response = @manager.get_next("1.2.3.4")
125
- assert_equal("1.2.3.4", response.varbind_list.first.name.to_s)
126
-
127
- response = @manager.get_next([ObjectId.new("1.2.3.4"), ObjectId.new("1.2.3.4.5")])
128
- assert_equal(ObjectId.new("1.2.3.4.5"), response.varbind_list[1].name)
129
- end
130
-
131
- def test_get_next_with_nil
132
- assert_raises(ArgumentError) { @manager.get_next(nil) }
133
- end
134
-
135
- def test_set
136
- v0 = VarBind.new("1.3.6.1.3.1.1.1.0", OctetString.new("Hello1"))
137
- v1 = VarBind.new("1.3.6.1.3.1.1.1.0", OctetString.new("Hello2"))
138
- response = @manager.set([v0, v1])
139
- assert_equal("Hello1", response.varbind_list[0].value.to_s)
140
- assert_equal("Hello2", response.varbind_list[1].value.to_s)
141
- end
142
-
143
- def test_set_with_nil
144
- assert_raises(ArgumentError) { @manager.set(nil) }
145
- end
146
-
147
- def test_single_set
148
- varbind = VarBind.new("1.3.6.1.3.1.1.1.0", OctetString.new("Hello"))
149
- response = @manager.set(varbind)
150
- assert_equal("Hello", response.varbind_list.first.value.to_s)
151
- end
152
-
153
- def test_get_bulk
154
- response = @manager.get_bulk(1, 3, ["1.3.6.1.3.1.1.1.0", "1.3.6.1.3.1.1.2.0"])
155
- assert_equal(:noError, response.error_status)
156
- assert_equal(0, response.error_index)
157
- assert_equal(2, response.varbind_list.length)
158
- assert_equal("SNMPv2-SMI::experimental.1.1.1.0", response.varbind_list[0].name.to_s)
159
- assert_equal("SNMPv2-SMI::experimental.1.1.2.0", response.varbind_list[1].name.to_s)
160
- end
161
-
162
- def test_get_bulk_with_nil
163
- assert_raises(ArgumentError) { @manager.get_bulk(nil, nil, nil) }
164
- end
165
-
166
- def test_walk
167
- old_verbose = $VERBOSE
168
- $VERBOSE = nil
169
- @manager.walk("ifTable") { fail "Expected break from OID not increasing" }
170
- ensure
171
- $VERBOSE = old_verbose
172
- end
173
-
174
- def test_walk_with_nil
175
- assert_raises(ArgumentError) { @manager.walk(nil) {} }
176
- end
177
-
178
- def test_request_id
179
- id = RequestId.new
180
- fail if id.next < 0 or id.next >= 2**31
181
-
182
- id.force_next(1)
183
- assert_equal(1, id.next)
184
-
185
- id.force_next(RequestId::MAX_REQUEST_ID-1)
186
- assert_equal(RequestId::MAX_REQUEST_ID-1, id.next)
187
-
188
- assert_raises(RuntimeError) { id.force_next(RequestId::MAX_REQUEST_ID) }
189
- assert_raises(RuntimeError) { id.force_next(0) }
190
- end
191
-
192
- def test_trap_v1
193
- manager = Manager.new(:Transport => EchoTransport.new, :Version => :SNMPv1)
194
- sent_data = manager.trap_v1(
195
- "enterprises.9",
196
- "10.1.2.3",
197
- :enterpriseSpecific,
198
- 42,
199
- 12345,
200
- [VarBind.new("1.3.6.1.2.3.4", SNMP::Integer.new(1))]
201
- )
202
- pdu = Message.decode(sent_data).pdu
203
- assert_equal(ObjectId.new("1.3.6.1.4.1.9"), pdu.enterprise)
204
- assert_equal(IpAddress.new("10.1.2.3"), pdu.agent_addr)
205
- assert_equal(:enterpriseSpecific, pdu.generic_trap)
206
- assert_equal(42, pdu.specific_trap)
207
- assert_equal(TimeTicks.new(12345), pdu.timestamp)
208
- assert_equal(1, pdu.vb_list.length)
209
- end
210
-
211
- def test_trap_v1_with_nil
212
- assert_raises(ArgumentError) { @manager.trap_v1(nil) }
213
- end
214
-
215
- def test_trap_v2
216
- sent_data = @manager.trap_v2(1234, "1.3.6.1.2.3.4")
217
- pdu = Message.decode(sent_data).pdu
218
- assert_equal(1234, pdu.sys_up_time)
219
- assert_equal("1.3.6.1.2.3.4", pdu.trap_oid.to_s)
220
- assert_equal(2, pdu.vb_list.length)
221
-
222
- sent_data = @manager.trap_v2(1234, "1.3.6.1.2.3.4", ["1.2.3", "1.4.5.6"])
223
- pdu = Message.decode(sent_data).pdu
224
- assert_equal(1234, pdu.sys_up_time)
225
- assert_equal("1.3.6.1.2.3.4", pdu.trap_oid.to_s)
226
- assert_equal(4, pdu.vb_list.length)
227
- assert_equal("1.4.5.6", pdu.vb_list.last.name.to_s)
228
- end
229
-
230
- def test_trap_v2_with_nil
231
- assert_raises(ArgumentError) { @manager.trap_v2(nil, nil, nil) }
232
- end
233
-
234
- def test_inform
235
- response = @manager.inform(1234, "1.3.6.1.2.3.4")
236
- assert_equal(1234, response.vb_list[0].value)
237
- assert_equal("SNMPv2-SMI::mgmt.3.4", response.vb_list[1].value.to_s)
238
- assert_equal(2, response.vb_list.length)
239
-
240
- response = @manager.inform(1234, "1.3.6.1.2.3.4", ["1.2.3", "1.4.5.6"])
241
- assert_equal(1234, response.vb_list[0].value)
242
- assert_equal("SNMPv2-SMI::mgmt.3.4", response.vb_list[1].value.to_s)
243
- assert_equal(4, response.vb_list.length)
244
- end
245
- end
246
-
247
- class TrapTestTransport
248
- include SNMP
249
- def initialize
250
- @count = 0
251
- sys_up_varbind = VarBind.new(ObjectId.new("1.3.6.1.2.1.1.3.0"),
252
- TimeTicks.new(1234))
253
- trap_oid_varbind = VarBind.new(ObjectId.new("1.3.6.1.6.3.1.1.4.1.0"),
254
- ObjectId.new("1.2.3"))
255
- trap = SNMPv2_Trap.new(42, VarBindList.new([sys_up_varbind, trap_oid_varbind]))
256
- message = Message.new(:SNMPv2c, "public", trap)
257
- @data = message.encode
258
- end
259
-
260
- def close
261
- end
262
-
263
- def recvfrom(max_bytes)
264
- @count += 1
265
- case @count
266
- when 1
267
- return @data, "127.0.0.1"
268
- when 2
269
- Thread.exit
270
- else
271
- raise "Huh?"
272
- end
273
- end
274
- end
275
-
276
-
277
- class TestTrapListener < Minitest::Test
278
- include SNMP
279
-
280
- def test_init_no_handlers
281
- init_called = false
282
- m = TrapListener.new(:ServerTransport => TrapTestTransport.new) do |manager|
283
- init_called = true
284
- end
285
- m.join
286
- assert(init_called)
287
- end
288
-
289
- def test_v2c_handler
290
- default_called = false
291
- v2c_called = false
292
- m = TrapListener.new(:ServerTransport => TrapTestTransport.new) do |manager|
293
- manager.on_trap_default { default_called = true }
294
- manager.on_trap_v2c { v2c_called = true }
295
- end
296
- m.join
297
- assert(!default_called)
298
- assert(v2c_called)
299
- end
300
-
301
- def test_oid_handler
302
- default_called = false
303
- v2c_called = false
304
- oid_called = false
305
- m = TrapListener.new(:ServerTransport => TrapTestTransport.new) do |manager|
306
- manager.on_trap("1.2.3") do |trap|
307
- assert_equal(ObjectId.new("1.2.3"), trap.trap_oid)
308
- assert_equal("127.0.0.1", trap.source_ip)
309
- oid_called = true
310
- end
311
- manager.on_trap_default { default_called = true }
312
- manager.on_trap_v2c { v2c_called = true }
313
- end
314
- m.join
315
- assert(!default_called)
316
- assert(!v2c_called)
317
- assert(oid_called)
318
- end
319
-
320
- ##
321
- # Should filter traps with a 'public' community if that community is not accepted
322
- #
323
- def test_reject_community
324
- assert !public_trap_passes?("test")
325
- assert !public_trap_passes?(["foo", "bar"])
326
- assert !public_trap_passes?([])
327
- end
328
-
329
- ##
330
- # Should accept traps with a 'public' community if that community is allowed.
331
- #
332
- def test_accept_community
333
- assert public_trap_passes? "public"
334
- assert public_trap_passes? ["test", "public"]
335
- assert public_trap_passes? nil
336
- end
337
-
338
- def public_trap_passes?(community_filter)
339
- default_called = false
340
- m = TrapListener.new(
341
- :community => community_filter,
342
- :server_transport => TrapTestTransport.new) do |manager|
343
- manager.on_trap_default { default_called = true }
344
- end
345
- m.join
346
- default_called
347
- end
348
-
349
- end
data/test/test_mib.rb DELETED
@@ -1,100 +0,0 @@
1
- require 'minitest/autorun'
2
- require 'snmp/mib'
3
-
4
- module SNMP
5
-
6
- class TestMib < Minitest::Test
7
-
8
- def setup
9
- @mib = MIB.new
10
- @mib.load_module("SNMPv2-SMI")
11
- @mib.load_module("SNMPv2-MIB")
12
- @mib.load_module("IF-MIB")
13
- end
14
-
15
- def test_name_to_oid
16
- oid = @mib.oid("1.2.3.4")
17
- assert_equal("1.2.3.4", oid.to_s)
18
-
19
- oid = @mib.oid("ifTable")
20
- assert_equal("1.3.6.1.2.1.2.2", oid.to_s)
21
-
22
- oid = @mib.oid("sysDescr.0")
23
- assert_equal("1.3.6.1.2.1.1.1.0", oid.to_s)
24
-
25
- oid = @mib.oid("ifTable.1.23")
26
- assert_equal("1.3.6.1.2.1.2.2.1.23", oid.to_s)
27
-
28
- oid = @mib.oid("IF-MIB::ifTable.1.23")
29
- assert_equal("1.3.6.1.2.1.2.2.1.23", oid.to_s)
30
-
31
- assert_raises(MIB::ModuleNotLoadedError) {
32
- @mib.oid("IFMIB::ifTable.1.23")
33
- }
34
-
35
- assert_raises(ArgumentError) {
36
- @mib.oid("IF-MIB::")
37
- }
38
-
39
- assert_raises(ArgumentError) {
40
- MIB.new.oid("sysDescr.0")
41
- }
42
-
43
- assert_equal("1.2.3.4", MIB.new.oid("1.2.3.4").to_s)
44
- end
45
-
46
- def test_varbind_list
47
- vb_list = @mib.varbind_list("1.2.3.4")
48
- assert_equal(1, vb_list.length)
49
- assert_equal("1.2.3.4", vb_list.first.name.to_s)
50
-
51
- vb_list = @mib.varbind_list(["1.2.3.4"])
52
- assert_equal(1, vb_list.length)
53
- assert_equal("1.2.3.4", vb_list.first.name.to_s)
54
-
55
- vb_list = @mib.varbind_list(["IF-MIB::ifTable.1.23", "1.2.3.4"])
56
- assert_equal(2, vb_list.length)
57
- assert_equal("1.3.6.1.2.1.2.2.1.23", vb_list.first.name.to_s)
58
- end
59
-
60
- def test_varbind_list_with_nil
61
- assert_raises(ArgumentError) { @mib.varbind_list(nil) }
62
- end
63
-
64
- def test_varbind
65
- vb = @mib.varbind("1.2.3.4", Null)
66
- assert_equal("1.2.3.4", vb.name.to_s)
67
- assert_equal(Null, vb.value)
68
-
69
- vb = @mib.varbind("IF-MIB::ifTable.3.45", Integer.new(2))
70
- assert_equal("1.3.6.1.2.1.2.2.3.45", vb.name.to_s)
71
- assert_equal(2, vb.value)
72
- end
73
-
74
- def test_list
75
- list = MIB.list_imported(/SNMPv2/)
76
- assert_equal(4, list.length)
77
- end
78
-
79
- def test_name
80
- cases = [["1.3.6.1.2.1.2.2.3.45", "IF-MIB::ifTable.3.45"],
81
- ["1.3.6.1.2.1.1.0", "SNMPv2-MIB::system.0"],
82
- ["1.2.3.4", "1.2.3.4"],
83
- ["1.3", "SNMPv2-SMI::org"],
84
- ["1.2", "1.2"],
85
- ["1", "1"],
86
- ["", ""]]
87
- cases.each do |oid, expected_name|
88
- name = @mib.name(oid)
89
- assert_equal(expected_name, name)
90
- end
91
- end
92
-
93
- # def test_import
94
- # module_name = MIB.import_module('SNMPv2-MIB')
95
- # assert_equal('SNMPv2-MIB', module_name)
96
- # end
97
-
98
- end
99
-
100
- end
data/test/test_pdu.rb DELETED
@@ -1,187 +0,0 @@
1
- # encoding: ascii-8bit
2
-
3
- require 'snmp/pdu'
4
- require 'minitest/autorun'
5
-
6
- class TestProtocol < Minitest::Test
7
-
8
- include SNMP
9
-
10
- def test_message_decode_v1
11
- message = SNMP::Message.decode("0'\002\001\000\004\006public\240\032\002\002\003\350\002\001\000\002\001\0000\0160\f\006\010+\006\001\002\001\001\001\000\005\000")
12
- assert_equal(:SNMPv1, message.version)
13
- assert_equal("public", message.community)
14
- assert_equal(SNMP::GetRequest, message.pdu.class)
15
- varbind_list = message.pdu.vb_list;
16
- assert_equal(1, varbind_list.length)
17
- assert_equal([1,3,6,1,2,1,1,1,0], varbind_list.first.name)
18
- assert_equal(SNMP::Null, varbind_list.first.value)
19
- end
20
-
21
- def test_message_decode_v2c
22
- message = SNMP::Message.decode("0)\002\001\001\004\006public\240\034\002\0040\265\020\202\002\001\000\002\001\0000\0160\f\006\010+\006\001\002\001\001\001\000\005\000")
23
- assert_equal(:SNMPv2c, message.version)
24
- assert_equal("public", message.community)
25
- varbind_list = message.pdu.vb_list;
26
- assert_equal(1, varbind_list.length)
27
- assert_equal([1,3,6,1,2,1,1,1,0], varbind_list.first.name)
28
- assert_equal(SNMP::Null, varbind_list.first.value)
29
- end
30
-
31
- def test_message_decoder_v3
32
- assert_raises(SNMP::UnsupportedVersion) do
33
- SNMP::Message.decode("0>\002\001\0030\021\002\004&\266\342\314\002\003\000\377\343\004\001\004\002\001\003\004\0200\016\004\000\002\001\000\002\001\000\004\000\004\000\004\0000\024\004\000\004\000\240\016\002\004\v\3623\233\002\001\000\002\001\0000\000")
34
- end
35
- end
36
-
37
- def test_encode_message
38
- varbind = SNMP::VarBind.new([1,3,6,1234], SNMP::OctetString.new("value"))
39
- list = SNMP::VarBindList.new
40
- list << varbind << varbind;
41
- pdu = SNMP::Response.new(12345, list)
42
- message = SNMP::Message.new(:SNMPv2c, "public", pdu)
43
- assert_equal("07\002\001\001\004\006public\242*\002\00209\002\001\000\002\001\0000\0360\r\006\004+\006\211R\004\005value0\r\006\004+\006\211R\004\005value", message.encode)
44
- end
45
-
46
- def test_get_request_from_single_string
47
- request = SNMP::GetRequest.new(42, VarBindList.new(["1.3.6.1"]))
48
- assert_equal(42, request.request_id)
49
- assert_equal(1, request.varbind_list.length)
50
- assert_equal([1,3,6,1], request.varbind_list.first.name)
51
- assert_equal(SNMP::Null, request.varbind_list.first.value)
52
- end
53
-
54
- def test_get_request_from_multi_string
55
- request = SNMP::GetRequest.new(42, VarBindList.new(["1.3.6.1", "1.3.6.2"]))
56
- assert_equal(2, request.varbind_list.length)
57
- assert_equal([1,3,6,1], request.varbind_list.first.name)
58
- end
59
-
60
- def test_get_request_from_varbind
61
- request = GetRequest.new(42, VarBindList.new(VarBind.new([1,3,6,1], Null)))
62
- assert_equal(1, request.varbind_list.length)
63
- assert_equal([1,3,6,1], request.varbind_list.first.name)
64
- end
65
-
66
- def test_get_next_from_single_string
67
- request = SNMP::GetNextRequest.new(42, VarBindList.new("1.3.5.1"))
68
- assert_equal(42, request.request_id)
69
- assert_equal(1, request.varbind_list.length)
70
- assert_equal([1,3,5,1], request.varbind_list.first.name)
71
- end
72
-
73
- def test_get_next_from_single_object_id
74
- request = SNMP::GetNextRequest.new(42, VarBindList.new([ObjectId.new("1.3.5.1")]))
75
- assert_equal(42, request.request_id)
76
- assert_equal(1, request.varbind_list.length)
77
- assert_equal([1,3,5,1], request.varbind_list.first.name)
78
- end
79
-
80
- def test_each_varbind
81
- request = SNMP::GetRequest.new(42, VarBindList.new(["1.3.6.1", "1.3.6.2"]))
82
- count = 0
83
- request.each_varbind do |v|
84
- case count
85
- when 0
86
- assert_equal(ObjectName.new("1.3.6.1"), v.name)
87
- when 1
88
- assert_equal(ObjectName.new("1.3.6.2"), v.name)
89
- else
90
- fail "Unexpected count"
91
- end
92
- count +=1
93
- end
94
- end
95
-
96
- def test_get_bulk_create
97
- request = SNMP::GetBulkRequest.new(1234, VarBindList.new("1.3.6.2"), 20, 10)
98
- assert_equal(1234, request.request_id)
99
- assert_equal(20, request.non_repeaters)
100
- assert_equal(10, request.max_repetitions)
101
- assert_equal(1, request.varbind_list.length)
102
- assert_equal("1.3.6.2", request.varbind_list.first.name.to_s)
103
- end
104
-
105
- def test_get_bulk_encode
106
- request = SNMP::GetBulkRequest.new(1234, VarBindList.new, 0, 10)
107
- assert_equal("\245\f\002\002\004\322\002\001\000\002\001\n0\000", request.encode)
108
- end
109
-
110
- def test_error_status
111
- request = GetRequest.new(42, VarBindList.new("1.3.12.23.4"))
112
- assert_equal(:noError, request.error_status)
113
-
114
- request.error_status = :noCreation
115
- assert_equal(:noCreation, request.error_status)
116
-
117
- request.error_status = 2
118
- assert_equal(:noSuchName, request.error_status)
119
-
120
- assert_raises(InvalidErrorStatus) {request.error_status = 42}
121
- end
122
-
123
- def test_snmpv2_trap
124
- sys_up_varbind = VarBind.new(ObjectId.new("1.3.6.1.2.1.1.3.0"),
125
- TimeTicks.new(1234))
126
- trap_oid_varbind = VarBind.new(ObjectId.new("1.3.6.1.6.3.1.1.4.1.0"),
127
- ObjectId.new("1.2.3"))
128
- trap = SNMPv2_Trap.new(42, VarBindList.new([sys_up_varbind, trap_oid_varbind]))
129
- assert_equal("\247-\002\001*\002\001\000\002\001\0000\"0\016\006\010+\006\001\002\001\001\003\000C\002\004\3220\020\006\n+\006\001\006\003\001\001\004\001\000\006\002*\003", trap.encode)
130
- assert_equal(1234, trap.sys_up_time.to_i)
131
- assert_equal("1.2.3", trap.trap_oid.to_s)
132
- end
133
-
134
- def test_snmpv2_invalid_trap
135
- trap = SNMPv2_Trap.new(42, VarBindList.new([]))
136
- assert_raises(InvalidTrapVarbind) { trap.sys_up_time }
137
- assert_raises(InvalidTrapVarbind) { trap.trap_oid }
138
- end
139
-
140
- def test_snmpv1_generic_trap
141
- trap = SNMPv1_Trap.new(nil, nil, 0, nil, nil, nil)
142
- assert_equal(:coldStart, trap.generic_trap)
143
-
144
- trap.generic_trap = :warmStart
145
- assert_equal(:warmStart, trap.generic_trap)
146
-
147
- trap.generic_trap = 6
148
- assert_equal(:enterpriseSpecific, trap.generic_trap)
149
-
150
- assert_raises(InvalidGenericTrap) { trap.generic_trap = -1 }
151
- assert_raises(InvalidGenericTrap) { trap.generic_trap = 7 }
152
- end
153
-
154
- def test_snmpv1_trap_encode
155
- enterprise = ObjectId.new("1.3.6.1.123")
156
- agent_addr = IpAddress.new("1.2.3.4")
157
- generic_trap = :linkDown
158
- specific_trap = 0
159
- timestamp = TimeTicks.new(2176117721)
160
- varbinds = VarBindList.new([VarBind.new("1.3.6.2", SNMP::Integer.new(1))])
161
- trap = SNMPv1_Trap.new(enterprise, agent_addr, generic_trap, specific_trap, timestamp, varbinds)
162
- assert_equal("\244%\006\004+\006\001{@\004\001\002\003\004\002\001\002\002\001\000C\005\000\201\264\353\3310\n0\010\006\003+\006\002\002\001\001", trap.encode)
163
-
164
- encoded = Message.new(:SNMPv1, "public", trap).encode
165
- trap = Message.decode(encoded).pdu
166
- assert_equal(enterprise, trap.enterprise)
167
- assert_equal(agent_addr, trap.agent_addr)
168
- assert_equal(:linkDown, trap.generic_trap)
169
- assert_equal(0, trap.specific_trap)
170
- assert_equal(2176117721, trap.timestamp.to_i)
171
- assert_equal(1, trap.varbind_list.length)
172
- assert_equal(ObjectId.new("1.3.6.2"), trap.varbind_list.first.name)
173
- end
174
-
175
- def test_response_pdu
176
- pdu = Response.new(2147483647, VarBindList.new, :noError, 0)
177
- assert_equal("\242\016\002\004\177\377\377\377\002\001\000\002\001\0000\000", pdu.encode)
178
-
179
- encoded = Message.new(:SNMPv2c, "public", pdu).encode
180
- pdu = Message.decode(encoded).pdu
181
- assert_equal(2147483647, pdu.request_id)
182
- assert_equal(:noError, pdu.error_status)
183
- assert_equal(0, pdu.error_index)
184
- assert_equal(0, pdu.varbind_list.length)
185
- end
186
-
187
- end