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_retry.rb DELETED
@@ -1,82 +0,0 @@
1
- require 'minitest/autorun'
2
- require 'snmp'
3
-
4
- class TimeoutManager < SNMP::Manager
5
- attr_accessor :response_count
6
-
7
- def initialize(config)
8
- super(config)
9
- @response_count = 0
10
- @raise_on_send = false
11
- @raise_on_get = false
12
- end
13
-
14
- def raise_send_error
15
- @raise_on_send = true
16
- end
17
-
18
- def raise_get_error
19
- @raise_on_get = true
20
- end
21
-
22
- def send_request(request, community, host, port)
23
- raise RuntimeError if @raise_on_send
24
- end
25
-
26
- def get_response(request)
27
- @response_count += 1
28
- raise RuntimeError if @raise_on_get
29
- raise Timeout::Error, "testing retry count"
30
- end
31
- end
32
-
33
- class MismatchIdTransport
34
- def initialize
35
- @data = []
36
- end
37
-
38
- def close
39
- end
40
-
41
- def send(data, host, port)
42
- bad_id_data = data.dup
43
- bad_msg = SNMP::Message.decode(bad_id_data)
44
- bad_msg.pdu.request_id -= 3 # corrupt request_id
45
- @data << bad_msg.encode # insert corrupted PDU before real data
46
- @data << bad_id_data
47
- end
48
-
49
- def recv(max_bytes)
50
- raise "receive queue is empty" unless @data.first
51
- SNMP::Message.decode(@data.shift).response.encode[0,max_bytes]
52
- end
53
- end
54
-
55
-
56
- class TestRetry < Minitest::Test
57
- def test_retry_count
58
- assert_response_count(0, 1, SNMP::RequestTimeout)
59
- assert_response_count(1, 2, SNMP::RequestTimeout)
60
- assert_response_count(5, 6, SNMP::RequestTimeout)
61
- end
62
-
63
- def test_retry_on_error
64
- assert_response_count(5, 0, RuntimeError) { |m| m.raise_send_error }
65
- old_verbose = $VERBOSE
66
- $VERBOSE = nil
67
- assert_response_count(5, 6, SNMP::RequestTimeout) { |m| m.raise_get_error }
68
- $VERBOSE = old_verbose
69
- end
70
-
71
- def assert_response_count(retry_count, response_count, exception)
72
- m = TimeoutManager.new( :Retries => retry_count )
73
- yield m if block_given?
74
- assert_raises(exception) { m.get("1.2.3.4") }
75
- assert_equal(response_count, m.response_count)
76
- end
77
-
78
- def test_drop_mismatched_id
79
- m = SNMP::Manager.new(:Transport => MismatchIdTransport.new)
80
- m.get("1.2.3.4")
81
- end
82
- end
data/test/test_smi.rb DELETED
@@ -1,19 +0,0 @@
1
- require 'minitest/autorun'
2
-
3
- begin
4
- require 'smi'
5
-
6
- class TestSmi < MiniTest::Unit::TestCase
7
-
8
- include SNMP::SMI
9
-
10
- def test_load
11
- name, oid_hash = load_smi_module('test/mibs/IF-MIB')
12
- assert_equal("IF-MIB", name)
13
- assert_equal("1.3.6.1.2.1.2.2", oid_hash["ifTable"])
14
- end
15
-
16
- end
17
- rescue LoadError
18
- # snmp/smi may not always be available because it is a C extention
19
- end
data/test/test_varbind.rb DELETED
@@ -1,382 +0,0 @@
1
- # encoding: ascii-8bit
2
-
3
- require 'snmp/varbind'
4
- require 'minitest/autorun'
5
-
6
- class TestVarBind < Minitest::Test
7
-
8
- include SNMP
9
-
10
- def test_varbind_encode
11
- v = VarBind.new([1,3,6,1], OctetString.new("test"))
12
- assert_equal("0\v\006\003+\006\001\004\004test", v.encode)
13
- refute_nil(v.asn1_type)
14
- assert_equal("[name=1.3.6.1, value=test (OCTET STRING)]", v.to_s)
15
- end
16
-
17
- def test_varbind_decode
18
- varbind, remainder = VarBind.decode("0\f\006\010+\006\001\002\001\001\001\000\005\000")
19
- assert_equal(Null, varbind.value)
20
- assert_equal("", remainder)
21
-
22
- varbind, remainder = VarBind.decode("0\f\006\010+\006\001\002\001\001\001\000\005\0000\f\006\010+\006\001\002\001\001\002\000\005\000")
23
- assert_equal(Null, varbind.value)
24
- assert_equal("0\f\006\010+\006\001\002\001\001\002\000\005\000", remainder)
25
- end
26
-
27
- def test_varbind_to_s
28
- mib = MIB.new
29
- mib.load_module("IF-MIB")
30
-
31
- vb = VarBind.new("1.3.6.1.2.1.2.2.1.2.1.1", OctetString.new("description")).with_mib(mib)
32
- assert_equal "[name=IF-MIB::ifDescr.1.1, value=description (OCTET STRING)]", vb.to_s
33
-
34
- vb = VarBind.new("1.3.6.1.2.1.2.2.1.2.1.1", ObjectId.new("1.3.6.1.2.1.2.2.1.2.1.1")).with_mib(mib)
35
- assert_equal "[name=IF-MIB::ifDescr.1.1, value=IF-MIB::ifDescr.1.1 (OBJECT IDENTIFIER)]", vb.to_s
36
- end
37
-
38
- def test_varbind_name_alias_oid
39
- vb = VarBind.new("1.2.3.4", OctetString.new("blah"))
40
- assert_equal(ObjectId.new("1.2.3.4"), vb.name)
41
- assert_equal(ObjectId.new("1.2.3.4"), vb.oid)
42
- end
43
-
44
- def test_varbind_list_create
45
- list = VarBindList.new
46
- assert_equal(0, list.length)
47
-
48
- check_varbind_list_create(VarBindList.new(["1.2.3.4.5"]))
49
- check_varbind_list_create(VarBindList.new([ObjectId.new("1.2.3.4.5")]))
50
- check_varbind_list_create(VarBindList.new([VarBind.new("1.2.3.4.5", Null)]))
51
-
52
- check_varbind_list_create(VarBindList.new(
53
- ["1.2.3.4.5", "1.2.3.4.6"]), 2)
54
-
55
- check_varbind_list_create(VarBindList.new(
56
- [ObjectId.new("1.2.3.4.5"),
57
- ObjectId.new("1.2.3.4.6")]
58
- ), 2)
59
-
60
- check_varbind_list_create(VarBindList.new(
61
- [VarBind.new("1.2.3.4.5", Null),
62
- VarBind.new("1.2.3.4.6", SNMP::Integer.new(123)),
63
- ObjectId.new("1.2.3.4.7")]
64
- ), 3)
65
-
66
- list = VarBindList.new([VarBind.new("1.3.6.2", SNMP::Integer.new(1))])
67
- assert_equal(1, list.length)
68
- assert_equal("1.3.6.2", list.first.name.to_s)
69
- assert_equal(1, list.first.value.to_i)
70
- end
71
-
72
- def check_varbind_list_create(list, n=1)
73
- assert_equal(n, list.length)
74
- assert_equal("1.2.3.4.5", list.first.name.to_s)
75
- assert_equal(Null, list.first.value)
76
- end
77
-
78
- def test_varbind_list_encode
79
- list = VarBindList.new
80
- assert_equal("0\000", list.encode)
81
- refute_nil(list.asn1_type)
82
-
83
- list << VarBind.new([1,3,6,1], OctetString.new("test"))
84
- assert_equal("0\r0\v\006\003+\006\001\004\004test", list.encode)
85
-
86
- list << VarBind.new([1,3,6,1], OctetString.new("blah"))
87
- assert_equal("0\0320\v\006\003+\006\001\004\004test0\v\006\003+\006\001\004\004blah", list.encode)
88
- end
89
-
90
- def test_varbind_list_decode
91
- list, remainder = VarBindList.decode("0\r0\v\006\003+\006\001\004\004test")
92
- assert_equal(1, list.length)
93
- assert_equal("", remainder)
94
-
95
- list, remainder = VarBindList.decode("0\0320\v\006\003+\006\001\004\004test0\v\006\003+\006\001\004\004blah")
96
- assert_equal(2, list.length)
97
- assert_equal("", remainder)
98
-
99
- list, remainder = VarBindList.decode("0\000")
100
- assert_equal(0, list.length)
101
- assert_equal("", remainder)
102
- end
103
-
104
- def test_octet_string
105
- string = OctetString.new("test")
106
- assert_equal("test", string.to_s)
107
- assert_equal("\004\004test", string.encode)
108
- refute_nil(string.asn1_type)
109
- end
110
-
111
- def test_octet_string_equals
112
- s1 = OctetString.new("test")
113
- s2 = "test"
114
- s3 = OctetString.new("test")
115
- assert_equal(s1, s2)
116
- assert(s1 == s2)
117
- refute_same(s1, s3)
118
- assert_equal(s1, s3)
119
- end
120
-
121
- def test_octet_string_to_oid
122
- s = OctetString.new("test")
123
- assert_equal(ObjectId.new([116, 101, 115, 116]), s.to_oid)
124
- end
125
-
126
- def test_object_id
127
- id = ObjectId.new([1,3,6,1])
128
- assert_equal("1.3.6.1", id.to_s)
129
- assert_equal("\006\003+\006\001", id.encode)
130
- refute_nil(id.asn1_type)
131
- assert_equal("1.3.6.1", id.to_varbind.name.to_s)
132
-
133
- assert_raises(ArgumentError) {
134
- ObjectId.new("xyzzy")
135
- }
136
-
137
- assert_equal("", ObjectId.new.to_s)
138
- end
139
-
140
- def test_object_id_to_s_with_mib
141
- mib = MIB.new
142
- mib.load_module("IF-MIB")
143
- id = ObjectId.new("1.3.6.1.2.1.2.2.1.2.1.1", mib)
144
- assert_equal("IF-MIB::ifDescr.1.1", id.to_s)
145
- assert_equal("1.3.6.1.2.1.2.2.1.2.1.1", id.to_str)
146
- assert_equal("[1.3.6.1.2.1.2.2.1.2.1.1]", id.inspect)
147
- end
148
-
149
- def test_object_id_create
150
- assert_equal("1.3.6.1", ObjectId.new("1.3.6.1").to_s)
151
- assert_equal("1.3.6.1", ObjectId.new([1,3,6,1]).to_s)
152
- assert_equal("1.3.6.1", ObjectId.new(ObjectId.new("1.3.6.1")).to_s)
153
- end
154
-
155
- def test_object_id_equals
156
- id1 = ObjectId.new("1.3.3.4")
157
- id2 = ObjectId.new([1,3,3,4])
158
- refute_same(id1, id2)
159
- assert(id1 == id2)
160
- assert_equal(id1, id2)
161
- end
162
-
163
- def test_object_id_comparable
164
- id1 = ObjectId.new("1.3.3.4")
165
- id2 = ObjectId.new("1.3.3.4.1")
166
- id3 = ObjectId.new("1.3.3.4.5")
167
- id4 = ObjectId.new("1.3.3.5")
168
- assert(id1 < id2)
169
- assert(id2 > id1)
170
- assert(id2 < id3)
171
- assert(id3 > id2)
172
- assert(id3 < id4)
173
- assert(id4 > id3)
174
- end
175
-
176
- def test_object_id_subtree
177
- id1 = ObjectId.new("1.3.3.4")
178
- id2 = ObjectId.new("1.3.3.4.1")
179
- id3 = ObjectId.new("1.3.3.4.5")
180
- id4 = ObjectId.new("1.3.3.5")
181
- assert(id2.subtree_of?(id1))
182
- assert(id3.subtree_of?(id1))
183
- assert(!id3.subtree_of?(id2))
184
- assert(!id1.subtree_of?(id2))
185
- assert(!id4.subtree_of?(id1))
186
- assert(!id4.subtree_of?(id3))
187
- assert(id1.subtree_of?("1.3.3.4"))
188
- assert(!id4.subtree_of?("1.3.3.4"))
189
- end
190
-
191
- def test_object_id_index
192
- id1 = ObjectId.new("1.3.3.4")
193
- id2 = ObjectId.new("1.3.3.4.1")
194
- id3 = ObjectId.new("1.3.3.4.1.2")
195
- assert_equal(ObjectId.new("1"), id2.index(id1))
196
- assert_equal(ObjectId.new("1.2"), id3.index(id1))
197
- assert_equal(ObjectId.new("1.2"), id3.index("1.3.3.4"))
198
- assert_raises(ArgumentError) { id1.index(id3) }
199
- assert_raises(ArgumentError) { id1.index(id1) }
200
- end
201
-
202
- def test_object_name_from_string
203
- id = ObjectName.new("1.3.4.5.6")
204
- assert_equal("1.3.4.5.6", id.to_s)
205
- assert_equal("\006\004+\004\005\006", id.encode)
206
- end
207
-
208
- def test_integer_create
209
- i = SNMP::Integer.new(12345)
210
- assert_equal("12345", i.to_s)
211
- assert_equal(12345, i.to_i)
212
- assert_equal("\002\00209", i.encode)
213
- refute_nil(i.asn1_type)
214
- end
215
-
216
- def test_integer_create_from_string
217
- i = SNMP::Integer.new("12345")
218
- assert_equal(12345, i.to_i)
219
- end
220
-
221
- def test_integer_decode
222
- i = SNMP::Integer.decode("09")
223
- assert_equal(12345, i.to_i)
224
- end
225
-
226
- def test_integer_equal
227
- i1 = SNMP::Integer.new(12345)
228
- i2 = SNMP::Integer.new(12345)
229
- i3 = 12345.2
230
- i4 = 12345
231
- refute_same(i1, i2)
232
- assert_equal(i1, i2)
233
- assert_equal(i4, i1)
234
- assert_equal(i1, i4)
235
- assert_equal(i1, i3)
236
- end
237
-
238
- def test_integer_comparable
239
- i1 = SNMP::Integer.new(12345)
240
- i2 = SNMP::Integer.new(54321.0)
241
- assert(i1 < i2)
242
- assert(i2 > i1)
243
- assert(123 < i1)
244
- assert(123.0 < i1)
245
- assert(i2 > 54000)
246
- assert(i1 != NoSuchInstance)
247
- assert(NoSuchInstance != i1)
248
- end
249
-
250
- def test_integer_to_oid
251
- assert_equal(ObjectId.new("123"), SNMP::Integer.new(123).to_oid)
252
- assert_equal(ObjectId.new("0"), SNMP::Integer.new(0).to_oid)
253
-
254
- i = SNMP::Integer.new(-1)
255
- assert_raises(RangeError) { i.to_oid }
256
- end
257
-
258
- def test_ip_address_from_string
259
- ip = IpAddress.new("10.0.255.1")
260
- assert_equal("10.0.255.1", ip.to_s)
261
- assert_raises(InvalidIpAddress) { IpAddress.new("1233.2.3.4") }
262
- assert_raises(InvalidIpAddress) { IpAddress.new("1.2.3.-1") }
263
- assert_raises(InvalidIpAddress) { IpAddress.new("1.2.3") }
264
- end
265
-
266
- def test_ip_address_from_self
267
- ip1 = IpAddress.new("1.2.3.4")
268
- ip2 = IpAddress.new(ip1)
269
- assert_equal(ip1, ip2)
270
- end
271
-
272
- def test_ip_address_create
273
- ip = IpAddress.new("\001\002\003\004")
274
- assert_equal("1.2.3.4", ip.to_s)
275
- assert_equal("\001\002\003\004", ip.to_str)
276
- assert_equal("@\004\001\002\003\004", ip.encode)
277
- refute_nil(ip.asn1_type)
278
- end
279
-
280
- def test_ip_address_decode
281
- ip = IpAddress.decode("\001\002\003\004")
282
- assert_equal("1.2.3.4", ip.to_s)
283
- end
284
-
285
- def test_ip_address_decode_extra_octets
286
- ip = IpAddress.decode("\000\000\000\000\000\000\000\000")
287
- assert_equal("0.0.0.0.0.0.0.0", ip.to_s)
288
-
289
- ip = IpAddress.decode("\001\002\003")
290
- assert_equal("1.2.3", ip.to_s)
291
-
292
- ip = IpAddress.decode("\001\002\003\004\005")
293
- assert_equal("1.2.3.4.5", ip.to_s)
294
- end
295
-
296
- def test_ip_address_equals
297
- ip1 = IpAddress.new("1.2.3.4")
298
- ip2 = IpAddress.new("1.2.3.4")
299
- ip3 = IpAddress.new("10.2.3.4")
300
- assert(ip1 == ip2)
301
- assert(ip1.eql?(ip2))
302
- assert(!ip1.equal?(ip2))
303
- assert(ip1 != ip3)
304
- assert(ip1.hash == ip2.hash)
305
- assert(ip1.hash != ip3.hash)
306
- assert(!ip1.eql?(12))
307
- end
308
-
309
- def test_ip_address_to_oid
310
- ip = IpAddress.new("1.2.3.4")
311
- assert_equal(ObjectId.new("1.2.3.4"), ip.to_oid)
312
- end
313
-
314
- def test_counter32_create
315
- i = Counter32.new(12345)
316
- assert_equal("12345", i.to_s)
317
- assert_equal(12345, i.to_i)
318
- assert_equal("\x41\00209", i.encode)
319
- refute_nil(i.asn1_type)
320
- end
321
-
322
- def test_counter32_decode
323
- i = Counter32.decode("09")
324
- assert_equal(12345, i.to_i)
325
- end
326
-
327
- # Decode as a positive number even though high bit is set.
328
- # Not strict ASN.1, but implemented in some agents.
329
- def test_unsigned_decode
330
- i = Counter32.decode("\201\264\353\331")
331
- assert_equal(2176117721, i.to_i)
332
-
333
- i = TimeTicks.decode("\201\264\353\331")
334
- assert_equal(2176117721, i.to_i)
335
- end
336
-
337
- def test_counter64
338
- i = Counter64.new(18446744073709551615)
339
- assert_equal(18446744073709551615, i.to_i)
340
- assert_equal("18446744073709551615", i.to_s)
341
- assert_equal("F\t\000\377\377\377\377\377\377\377\377", i.encode)
342
- assert_equal(i, Counter64.decode("\000\377\377\377\377\377\377\377\377"))
343
- refute_nil(i.asn1_type)
344
- end
345
-
346
- def test_opaque
347
- q = Opaque.new("test")
348
- assert_equal("D\004test", q.encode)
349
- assert_equal("test", Opaque.decode("test"))
350
- assert_equal("test", q.to_s)
351
- refute_nil(q.asn1_type)
352
- end
353
-
354
- def test_exception_methods
355
- exception_types = [NoSuchObject, NoSuchInstance, EndOfMibView]
356
- exception_types.each do |type|
357
- assert(type.respond_to?(:decode))
358
- assert(type.respond_to?(:encode))
359
- assert_equal(type.asn1_type, type.to_s)
360
- end
361
- end
362
-
363
- def test_timeticks
364
- assert_equal("00:00:00.00", TimeTicks.new(0).to_s)
365
- assert_equal("00:00:00.01", TimeTicks.new(1).to_s)
366
- assert_equal("00:00:01.00", TimeTicks.new(100).to_s)
367
- assert_equal("00:01:00.00", TimeTicks.new(60 * 100).to_s)
368
- assert_equal("01:00:00.00", TimeTicks.new(60 * 60 * 100).to_s)
369
- assert_equal("23:59:59.99", TimeTicks.new(24 * 60 * 60 * 100 - 1).to_s)
370
- assert_equal("1 day, 00:00:00.00", TimeTicks.new(24 * 60 * 60 * 100).to_s)
371
- assert_equal("1 day, 23:59:59.99", TimeTicks.new(48 * 60 * 60 * 100 - 1).to_s)
372
- assert_equal("2 days, 00:00:00.00", TimeTicks.new(48 * 60 * 60 * 100).to_s)
373
- assert_equal("497 days, 02:27:52.95", TimeTicks.new(4294967295).to_s)
374
- assert_equal(4294967295, TimeTicks.new(4294967295).to_i)
375
- assert_raises(ArgumentError) {
376
- TimeTicks.new(4294967296)
377
- }
378
- assert_raises(ArgumentError) {
379
- TimeTicks.new(-1)
380
- }
381
- end
382
- end
data/test/test_walk.rb DELETED
@@ -1,191 +0,0 @@
1
- require 'snmp'
2
- require 'minitest/autorun'
3
- require 'yaml'
4
-
5
- include SNMP
6
-
7
- ##
8
- # Accept get and get-next requests, returning the data from the
9
- # provided YAML data file. The file contains a list of OID, value, and
10
- # value type.
11
- #
12
- class YamlDataTransport
13
- def self.load_data(yaml_file)
14
- values = YAML.load(File.new(yaml_file))
15
- @@get_map = {}
16
- @@get_next_map = {}
17
- values.each_index do |i|
18
- name, value, klass = values[i]
19
- if i < values.length - 1
20
- next_name, next_value, next_klass = values[i + 1]
21
- else
22
- next_value = SNMP::EndOfMibView
23
- next_klass = SNMP::EndOfMibView
24
- end
25
- @@get_map[name] = [name, value, klass]
26
- @@get_next_map[name] = [next_name, next_value, next_klass]
27
- end
28
- end
29
-
30
- def initialize
31
- @responses = []
32
- end
33
-
34
- def close
35
- end
36
-
37
- def send(data, host, port)
38
- msg = Message.decode(data)
39
- req_class = msg.pdu.class
40
- if req_class == SNMP::GetRequest
41
- oid_map = @@get_map
42
- elsif req_class == SNMP::GetNextRequest
43
- oid_map = @@get_next_map
44
- else
45
- raise "request not supported: " + req_class
46
- end
47
-
48
- resp = msg.response
49
- resp.pdu.vb_list.each do |vb|
50
- name, value, klass = oid_map[vb.name.to_s]
51
- vb.name = ObjectId.new(name)
52
- if klass == "SNMP::NoSuchObject" or klass == "SNMP::NoSuchInstance"
53
- vb.value = eval(klass)
54
- elsif value
55
- vb.value = eval("#{klass}.new(value)")
56
- else
57
- vb.value = SNMP::NoSuchInstance
58
- end
59
- end
60
- @responses << resp.encode
61
- end
62
-
63
- def recv(max_bytes)
64
- @responses.shift
65
- end
66
- end
67
-
68
- class TestTransport < Minitest::Test
69
-
70
- def test_get
71
- YamlDataTransport.load_data(File.dirname(__FILE__) + "/if_table6.yaml")
72
- SNMP::Manager.open(:Transport => YamlDataTransport.new) do |snmp|
73
- value = snmp.get_value("ifDescr.1")
74
- assert_equal("lo0", value)
75
- end
76
- end
77
-
78
- def test_get_next
79
- YamlDataTransport.load_data(File.dirname(__FILE__) + "/if_table6.yaml")
80
- SNMP::Manager.open(:Transport => YamlDataTransport.new) do |snmp|
81
- vb = snmp.get_next("ifDescr.1")
82
- assert_equal("gif0", vb.vb_list.first.value)
83
- end
84
- end
85
-
86
- end
87
-
88
- class TestWalk < Minitest::Test
89
-
90
- ##
91
- # A single string or single ObjectId can be passed to walk()
92
- #
93
- def test_single_object
94
- list = []
95
- ifTable6_manager.walk("ifDescr") do |vb|
96
- assert(vb.kind_of?(VarBind), "Expected a VarBind")
97
- list << vb
98
- end
99
- assert_equal(6, list.length)
100
-
101
- list = []
102
- ifTable6_manager.walk(ObjectId.new("1.3.6.1.2.1.2.2.1.2")) do |vb|
103
- assert(vb.kind_of?(VarBind), "Expected a VarBind")
104
- list << vb
105
- end
106
- assert_equal(6, list.length)
107
- end
108
-
109
-
110
- ##
111
- # If a list of one element is passed to walk() then a list of
112
- # one element is passed as the block parameter.
113
- #
114
- def test_single_object_list
115
- executed_block = false
116
- ifTable6_manager.walk(["1.3.6.1.2.1.2.2.1.2"]) do |vb_list|
117
- executed_block = true
118
- assert_equal(1, vb_list.length)
119
- assert_equal("IF-MIB::ifDescr.1", vb_list.first.name.to_s)
120
- break
121
- end
122
- assert(executed_block, "Did not execute block")
123
- end
124
-
125
- ##
126
- # If a list of multiple items are passed to walk() then
127
- # multiple items are passed to the block.
128
- #
129
- def test_object_list
130
- list1 = []
131
- list2 = []
132
- ifTable6_manager.walk(["ifIndex", "ifDescr"]) do |vb1, vb2|
133
- list1 << vb1
134
- list2 << vb2
135
- end
136
- assert_equal(6, list1.length)
137
- assert_equal(6, list2.length)
138
-
139
- list1 = []
140
- list2 = []
141
- ifTable6_manager.walk(["ifIndex", "ifDescr"], 1) do |vb1, vb2|
142
- list1 << vb1
143
- list2 << vb2
144
- end
145
- assert_equal(6, list1.length)
146
- assert_equal(6, list2.length)
147
- end
148
-
149
- def test_empty
150
- ifTable6_manager.walk("1.3.6.1.2.1.2.2.1.2.1") do |vb|
151
- fail("Expected block to not be executed")
152
- end
153
- end
154
-
155
- def test_one
156
- list = []
157
- ifTable1_manager.walk(["1.3.6.1.2.1.2.2.1.1", "1.3.6.1.2.1.2.2.1.2"]) do |vb|
158
- assert_equal("IF-MIB::ifIndex.1", vb[0].name.to_s)
159
- assert_equal("IF-MIB::ifDescr.1", vb[1].name.to_s)
160
- list << vb
161
- end
162
- assert_equal(1, list.length)
163
- end
164
-
165
- def test_hole_in_one
166
- list = []
167
- ifTable1_manager.walk(["ifIndex", "ifDescr", "ifType"]) do |vb|
168
- assert_equal("IF-MIB::ifIndex.1", vb[0].name.to_s)
169
- assert_equal(1, vb[0].value)
170
- assert_equal("IF-MIB::ifDescr.1", vb[1].name.to_s)
171
- assert_equal("lo0", vb[1].value)
172
- assert_equal("IF-MIB::ifType.1", vb[2].name.to_s)
173
- assert_equal(NoSuchInstance, vb[2].value)
174
- list << vb
175
- break
176
- end
177
- assert_equal(1, list.length)
178
- end
179
-
180
- private
181
-
182
- def ifTable1_manager
183
- YamlDataTransport.load_data(File.dirname(__FILE__) + "/if_table1.yaml")
184
- Manager.new(:Transport => YamlDataTransport.new)
185
- end
186
-
187
- def ifTable6_manager
188
- YamlDataTransport.load_data(File.dirname(__FILE__) + "/if_table6.yaml")
189
- Manager.new(:Transport => YamlDataTransport.new)
190
- end
191
- end