snmp 0.4.1 → 0.5.0
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.
- data/README +31 -21
- data/Rakefile +4 -4
- data/data/ruby/snmp/mibs/ACCOUNTING-CONTROL-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/ADSL-LINE-EXT-MIB.yaml +59 -54
- data/data/ruby/snmp/mibs/ADSL-LINE-MIB.yaml +13 -1
- data/data/ruby/snmp/mibs/ADSL-TC-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/AGENTX-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/APM-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/APPC-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/APPLETALK-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/APPLICATION-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/APPN-DLUR-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/APPN-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/APPN-TRAP-MIB.yaml +7 -1
- data/data/ruby/snmp/mibs/APS-MIB.yaml +6 -1
- data/data/ruby/snmp/mibs/ATM-ACCOUNTING-INFORMATION-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/ATM-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/ATM-TC-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/ATM2-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/BGP4-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/BLDG-HVAC-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/BRIDGE-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/CHARACTER-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/CIRCUIT-IF-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/CLNS-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/COFFEE-POT-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/COPS-CLIENT-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DECNET-PHIV-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DIAL-CONTROL-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/DIFFSERV-CONFIG-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DIFFSERV-DSCP-TC.yaml +1 -1
- data/data/ruby/snmp/mibs/DIFFSERV-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DIRECTORY-SERVER-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DISMAN-EVENT-MIB.yaml +6 -1
- data/data/ruby/snmp/mibs/DISMAN-EXPRESSION-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DISMAN-NSLOOKUP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DISMAN-PING-MIB.yaml +4 -1
- data/data/ruby/snmp/mibs/DISMAN-SCHEDULE-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/DISMAN-SCRIPT-MIB.yaml +4 -1
- data/data/ruby/snmp/mibs/DISMAN-TRACEROUTE-MIB.yaml +4 -1
- data/data/ruby/snmp/mibs/DLSW-MIB.yaml +7 -1
- data/data/ruby/snmp/mibs/DNS-RESOLVER-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DNS-SERVER-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DOCS-BPI-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DOCS-CABLE-DEVICE-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DOCS-IF-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DOT12-IF-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DS0-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DS0BUNDLE-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DS1-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/DS3-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/DSA-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/DSMON-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/EBN-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/ENTITY-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/ENTITY-SENSOR-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/ETHER-CHIPSET-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/ETHER-WIS.yaml +1 -1
- data/data/ruby/snmp/mibs/EtherLike-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/FDDI-SMT73-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/FIBRE-CHANNEL-FE-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/FLOW-METER-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/FR-ATM-PVC-SERVICE-IWF-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/FR-MFR-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/FRAME-RELAY-DTE-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/FRNETSERV-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/FRSLD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/Finisher-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/GSMP-MIB.yaml +11 -1
- data/data/ruby/snmp/mibs/HC-ALARM-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/HC-PerfHist-TC-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/HC-RMON-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/HCNUM-TC.yaml +1 -1
- data/data/ruby/snmp/mibs/HDSL2-SHDSL-LINE-MIB.yaml +115 -99
- data/data/ruby/snmp/mibs/HOST-RESOURCES-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/HOST-RESOURCES-TYPES.yaml +1 -1
- data/data/ruby/snmp/mibs/HPR-IP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/HPR-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/IF-INVERTED-STACK-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/IF-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/IGMP-STD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/INET-ADDRESS-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/INTEGRATED-SERVICES-GUARANTEED-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/INTEGRATED-SERVICES-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/INTERFACETOPN-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/IP-FORWARD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/IP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/IPATM-IPMC-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/IPMROUTE-STD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/IPOA-MIB.yaml +5 -1
- data/data/ruby/snmp/mibs/IPV6-FLOW-LABEL-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/IPV6-ICMP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/IPV6-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/IPV6-MLD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/IPV6-TCP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/IPV6-UDP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/ISDN-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/Job-Monitoring-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/L2TP-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/MALLOC-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/MAU-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/MIOX25-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/MIP-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/MPLS-FTN-STD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/MPLS-LDP-ATM-STD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/MPLS-LDP-FRAME-RELAY-STD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/MPLS-LDP-GENERIC-STD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/MPLS-LDP-STD-MIB.yaml +5 -1
- data/data/ruby/snmp/mibs/MPLS-LSR-STD-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/MPLS-TC-STD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/MPLS-TE-STD-MIB.yaml +5 -1
- data/data/ruby/snmp/mibs/MTA-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/Modem-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/NETWORK-SERVICES-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/NHRP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/NOTIFICATION-LOG-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/OPT-IF-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/OSPF-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/OSPF-TRAP-MIB.yaml +17 -1
- data/data/ruby/snmp/mibs/P-BRIDGE-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/PARALLEL-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/PIM-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/PINT-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/POWER-ETHERNET-MIB.yaml +4 -1
- data/data/ruby/snmp/mibs/PPP-BRIDGE-NCP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/PPP-IP-NCP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/PPP-LCP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/PPP-SEC-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/PTOPO-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/PerfHist-TC-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/Printer-MIB.yaml +2 -1
- data/data/ruby/snmp/mibs/Q-BRIDGE-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RADIUS-ACC-CLIENT-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RADIUS-ACC-SERVER-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RADIUS-AUTH-CLIENT-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RADIUS-AUTH-SERVER-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RDBMS-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/RFC1065-SMI.yaml +1 -1
- data/data/ruby/snmp/mibs/RFC1155-SMI.yaml +1 -1
- data/data/ruby/snmp/mibs/RFC1158-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RFC1213-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RFC1269-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/RFC1271-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RFC1285-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RFC1316-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RFC1381-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RFC1382-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/RFC1414-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RIPv2-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RMON-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/RMON2-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/ROHC-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/ROHC-RTP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/ROHC-UNCOMPRESSED-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RS-232-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/RSVP-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/RTP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SFLOW-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SIP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SLAPM-MIB.yaml +13 -1
- data/data/ruby/snmp/mibs/SMON-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SNA-NAU-MIB.yaml +5 -1
- data/data/ruby/snmp/mibs/SNA-SDLC-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/SNMP-COMMUNITY-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMP-FRAMEWORK-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMP-MPD-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMP-NOTIFICATION-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMP-PROXY-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMP-REPEATER-MIB.yaml +6 -1
- data/data/ruby/snmp/mibs/SNMP-TARGET-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMP-USER-BASED-SM-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMPv2-MIB.yaml +4 -1
- data/data/ruby/snmp/mibs/SNMPv2-SMI.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMPv2-TM.yaml +1 -1
- data/data/ruby/snmp/mibs/SNMPv2-USEC-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SONET-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SOURCE-ROUTING-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/SYSAPPL-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/TCP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/TCPIPX-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/TN3270E-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/TN3270E-RT-MIB.yaml +5 -1
- data/data/ruby/snmp/mibs/TOKEN-RING-RMON-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/TOKENRING-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/TOKENRING-STATION-SR-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/TRANSPORT-ADDRESS-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/TUNNEL-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/UDP-MIB.yaml +1 -1
- data/data/ruby/snmp/mibs/UPS-MIB.yaml +5 -1
- data/data/ruby/snmp/mibs/VDSL-LINE-MIB.yaml +13 -1
- data/data/ruby/snmp/mibs/VRRP-MIB.yaml +3 -1
- data/data/ruby/snmp/mibs/WWW-MIB.yaml +1 -1
- data/examples/dump.rb +1 -1
- data/lib/snmp/manager.rb +32 -5
- data/lib/snmp/mib.rb +4 -0
- data/lib/snmp/pdu.rb +3 -1
- data/test/test_ber.rb +4 -0
- data/test/test_manager.rb +16 -3
- data/test/test_mib.rb +9 -0
- data/test/test_pdu.rb +2 -2
- data/test/test_smi.rb +19 -0
- data/test/test_walk.rb +21 -1
- metadata +10 -6
|
@@ -88,4 +88,4 @@ wwwRequestInRequests: 1.3.6.1.2.1.65.1.2.2.1.2
|
|
|
88
88
|
wwwResponseOutLastTime: 1.3.6.1.2.1.65.1.2.5.1.4
|
|
89
89
|
wwwDocumentStatistics: 1.3.6.1.2.1.65.1.3
|
|
90
90
|
wwwDocCtrlTable: 1.3.6.1.2.1.65.1.3.1
|
|
91
|
-
wwwDocBucketIndex: 1.3.6.1.2.1.65.1.3.3.1.1
|
|
91
|
+
wwwDocBucketIndex: 1.3.6.1.2.1.65.1.3.3.1.1
|
data/examples/dump.rb
CHANGED
|
@@ -9,7 +9,7 @@ next_oid = start_oid
|
|
|
9
9
|
while next_oid.subtree_of?(start_oid)
|
|
10
10
|
response = manager.get_next(next_oid)
|
|
11
11
|
varbind = response.varbind_list.first
|
|
12
|
-
break if varbind.value
|
|
12
|
+
break if EndOfMibView == varbind.value
|
|
13
13
|
next_oid = varbind.name
|
|
14
14
|
puts "#{varbind.name.to_s} #{varbind.value.to_s} #{varbind.value.asn1_type}"
|
|
15
15
|
end
|
data/lib/snmp/manager.rb
CHANGED
|
@@ -202,6 +202,28 @@ class Manager
|
|
|
202
202
|
try_request(request)
|
|
203
203
|
end
|
|
204
204
|
|
|
205
|
+
##
|
|
206
|
+
# Sends a get request for the supplied list of ObjectId or VarBind
|
|
207
|
+
# objects.
|
|
208
|
+
#
|
|
209
|
+
# Returns a list of the varbind values only, not the entire response,
|
|
210
|
+
# in the same order as the initial object_list. This method is
|
|
211
|
+
# useful for retrieving scalar values.
|
|
212
|
+
#
|
|
213
|
+
# For example:
|
|
214
|
+
#
|
|
215
|
+
# SNMP::Manager.open(:Host => "localhost") do |manager|
|
|
216
|
+
# puts manager.get_value("sysDescr.0")
|
|
217
|
+
# end
|
|
218
|
+
#
|
|
219
|
+
def get_value(object_list)
|
|
220
|
+
if object_list.respond_to? :to_ary
|
|
221
|
+
get(object_list).vb_list.collect { |vb| vb.value }
|
|
222
|
+
else
|
|
223
|
+
get(object_list).vb_list.first.value
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
|
|
205
227
|
##
|
|
206
228
|
# Sends a get-next request for the supplied list of ObjectId or VarBind
|
|
207
229
|
# objects.
|
|
@@ -273,17 +295,19 @@ class Manager
|
|
|
273
295
|
loop do
|
|
274
296
|
varbind_list = get_next(varbind_list).varbind_list
|
|
275
297
|
first_vb = varbind_list.first
|
|
298
|
+
break if EndOfMibView == first_vb.value
|
|
276
299
|
stop_oid = first_vb.name
|
|
277
300
|
if stop_oid <= last_oid
|
|
278
301
|
warn "OIDs are not increasing, #{last_oid} followed by #{stop_oid}"
|
|
279
302
|
break
|
|
280
303
|
end
|
|
281
304
|
break unless stop_oid.subtree_of?(start_oid)
|
|
282
|
-
break if stop_oid == EndOfMibView
|
|
283
305
|
last_oid = stop_oid
|
|
284
|
-
if
|
|
306
|
+
if object_list.respond_to?(:to_str) ||
|
|
307
|
+
object_list.respond_to?(:to_varbind)
|
|
308
|
+
then
|
|
285
309
|
yield first_vb
|
|
286
|
-
else
|
|
310
|
+
else
|
|
287
311
|
yield varbind_list
|
|
288
312
|
end
|
|
289
313
|
end
|
|
@@ -318,6 +342,8 @@ class Manager
|
|
|
318
342
|
end
|
|
319
343
|
rescue Timeout::Error
|
|
320
344
|
# no action - try again
|
|
345
|
+
rescue => e
|
|
346
|
+
warn e.to_s
|
|
321
347
|
end
|
|
322
348
|
end
|
|
323
349
|
raise RequestTimeout, "host #{@config[:Host]} not responding", caller
|
|
@@ -333,7 +359,7 @@ class Manager
|
|
|
333
359
|
message = Message.decode(data)
|
|
334
360
|
response = message.pdu
|
|
335
361
|
if (request.request_id != response.request_id)
|
|
336
|
-
raise "Request ID mismatch: expected #{request.request_id}, got #{
|
|
362
|
+
raise RuntimeError, "Request ID mismatch: expected #{request.request_id}, got #{response.request_id}", caller
|
|
337
363
|
end
|
|
338
364
|
response
|
|
339
365
|
end
|
|
@@ -418,7 +444,8 @@ class TrapListener
|
|
|
418
444
|
|
|
419
445
|
##
|
|
420
446
|
# Define a trap handler block for a specific trap ObjectId. This handler
|
|
421
|
-
# only applies to SNMPv2 traps.
|
|
447
|
+
# only applies to SNMPv2 traps. Note that symbolic OIDs are not
|
|
448
|
+
# supported by this method (like in the SNMP.Manager class).
|
|
422
449
|
#
|
|
423
450
|
def on_trap(object_id, &block)
|
|
424
451
|
raise ArgumentError, "a block must be provided" unless block
|
data/lib/snmp/mib.rb
CHANGED
|
@@ -77,8 +77,12 @@ class MIB
|
|
|
77
77
|
if mib["nodes"]
|
|
78
78
|
oid_hash = {}
|
|
79
79
|
mib["nodes"].each { |key, value| oid_hash[key] = value["oid"] }
|
|
80
|
+
if mib["notifications"]
|
|
81
|
+
mib["notifications"].each { |key, value| oid_hash[key] = value["oid"] }
|
|
82
|
+
end
|
|
80
83
|
File.open(module_file_name(module_name, mib_dir), 'w') do |file|
|
|
81
84
|
YAML.dump(oid_hash, file)
|
|
85
|
+
file.puts
|
|
82
86
|
end
|
|
83
87
|
module_name
|
|
84
88
|
else
|
data/lib/snmp/pdu.rb
CHANGED
|
@@ -111,6 +111,8 @@ class PDU
|
|
|
111
111
|
attr_accessor :error_index
|
|
112
112
|
attr_accessor :varbind_list
|
|
113
113
|
|
|
114
|
+
alias vb_list varbind_list
|
|
115
|
+
|
|
114
116
|
def self.decode(pdu_class, pdu_data)
|
|
115
117
|
request_id, remainder = decode_integer(pdu_data)
|
|
116
118
|
error_status, remainder = decode_integer(remainder)
|
|
@@ -218,7 +220,7 @@ class Response < PDU
|
|
|
218
220
|
class << self
|
|
219
221
|
def from_pdu(request)
|
|
220
222
|
Response.new(request.request_id, request.varbind_list,
|
|
221
|
-
|
|
223
|
+
:noError, 0)
|
|
222
224
|
end
|
|
223
225
|
end
|
|
224
226
|
|
data/test/test_ber.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'test/unit'
|
|
2
|
+
require 'snmp/varbind'
|
|
2
3
|
require 'snmp/ber'
|
|
3
4
|
|
|
4
5
|
class ASN1_Test < Test::Unit::TestCase
|
|
@@ -231,6 +232,9 @@ class ASN1_Test < Test::Unit::TestCase
|
|
|
231
232
|
assert_equal("\006\003" << 82.chr << "\202\001", encode_object_id([2,2,257]))
|
|
232
233
|
assert_raise(InvalidObjectId) { encode_object_id([3,2,257]) }
|
|
233
234
|
assert_raise(InvalidObjectId) { encode_object_id([]) }
|
|
235
|
+
|
|
236
|
+
assert_equal("\006\a+\203\377\177\203\377\177",
|
|
237
|
+
encode_object_id(SNMP::ObjectId.new("1.3.65535.65535")))
|
|
234
238
|
end
|
|
235
239
|
end
|
|
236
240
|
|
data/test/test_manager.rb
CHANGED
|
@@ -13,7 +13,7 @@ class EchoTransport
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def recv(max_bytes)
|
|
16
|
-
Message.decode(@data).response.encode[0,max_bytes]
|
|
16
|
+
SNMP::Message.decode(@data).response.encode[0,max_bytes]
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
@@ -58,6 +58,19 @@ class TestManager < Test::Unit::TestCase
|
|
|
58
58
|
assert_equal(ObjectId.new("1.2.3.4.5"), response.varbind_list[1].name)
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
+
def test_get_value
|
|
62
|
+
value = @manager.get_value("1.2.3.4")
|
|
63
|
+
assert_equal(Null, value)
|
|
64
|
+
|
|
65
|
+
value = @manager.get_value(["1.2.3.4"])
|
|
66
|
+
assert_equal([Null], value)
|
|
67
|
+
|
|
68
|
+
values = @manager.get_value(["1.2.3.4", "1.2.3.4.5"])
|
|
69
|
+
assert_equal(2, values.length)
|
|
70
|
+
assert_equal(Null, values[0])
|
|
71
|
+
assert_equal(Null, values[1])
|
|
72
|
+
end
|
|
73
|
+
|
|
61
74
|
def test_get_next
|
|
62
75
|
response = @manager.get_next("1.2.3.4")
|
|
63
76
|
assert_equal("1.2.3.4", response.varbind_list.first.name.to_s)
|
|
@@ -82,8 +95,8 @@ class TestManager < Test::Unit::TestCase
|
|
|
82
95
|
|
|
83
96
|
def test_get_bulk
|
|
84
97
|
response = @manager.get_bulk(1, 3, ["1.3.6.1.3.1.1.1.0", "1.3.6.1.3.1.1.2.0"])
|
|
85
|
-
assert_equal(:
|
|
86
|
-
assert_equal(
|
|
98
|
+
assert_equal(:noError, response.error_status)
|
|
99
|
+
assert_equal(0, response.error_index)
|
|
87
100
|
assert_equal(2, response.varbind_list.length)
|
|
88
101
|
assert_equal("1.3.6.1.3.1.1.1.0", response.varbind_list[0].name.to_s)
|
|
89
102
|
assert_equal("1.3.6.1.3.1.1.2.0", response.varbind_list[1].name.to_s)
|
data/test/test_mib.rb
CHANGED
|
@@ -41,6 +41,10 @@ class TestMib < Test::Unit::TestCase
|
|
|
41
41
|
assert_equal(1, vb_list.length)
|
|
42
42
|
assert_equal("1.2.3.4", vb_list.first.name.to_s)
|
|
43
43
|
|
|
44
|
+
vb_list = @mib.varbind_list(["1.2.3.4"])
|
|
45
|
+
assert_equal(1, vb_list.length)
|
|
46
|
+
assert_equal("1.2.3.4", vb_list.first.name.to_s)
|
|
47
|
+
|
|
44
48
|
vb_list = @mib.varbind_list(["IF-MIB::ifTable.1.23", "1.2.3.4"])
|
|
45
49
|
assert_equal(2, vb_list.length)
|
|
46
50
|
assert_equal("1.3.6.1.2.1.2.2.1.23", vb_list.first.name.to_s)
|
|
@@ -61,6 +65,11 @@ class TestMib < Test::Unit::TestCase
|
|
|
61
65
|
assert_equal(4, list.length)
|
|
62
66
|
end
|
|
63
67
|
|
|
68
|
+
# def test_import
|
|
69
|
+
# module_name = MIB.import_module('SNMPv2-MIB')
|
|
70
|
+
# assert_equal('SNMPv2-MIB', module_name)
|
|
71
|
+
# end
|
|
72
|
+
|
|
64
73
|
end
|
|
65
74
|
|
|
66
75
|
end
|
data/test/test_pdu.rb
CHANGED
|
@@ -10,7 +10,7 @@ class TestProtocol < Test::Unit::TestCase
|
|
|
10
10
|
assert_equal(:SNMPv1, message.version)
|
|
11
11
|
assert_equal("public", message.community)
|
|
12
12
|
assert_equal(SNMP::GetRequest, message.pdu.class)
|
|
13
|
-
varbind_list = message.pdu.
|
|
13
|
+
varbind_list = message.pdu.vb_list;
|
|
14
14
|
assert_equal(1, varbind_list.length)
|
|
15
15
|
assert_equal([1,3,6,1,2,1,1,1,0], varbind_list.first.name)
|
|
16
16
|
assert_equal(SNMP::Null, varbind_list.first.value)
|
|
@@ -20,7 +20,7 @@ class TestProtocol < Test::Unit::TestCase
|
|
|
20
20
|
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")
|
|
21
21
|
assert_equal(:SNMPv2c, message.version)
|
|
22
22
|
assert_equal("public", message.community)
|
|
23
|
-
varbind_list = message.pdu.
|
|
23
|
+
varbind_list = message.pdu.vb_list;
|
|
24
24
|
assert_equal(1, varbind_list.length)
|
|
25
25
|
assert_equal([1,3,6,1,2,1,1,1,0], varbind_list.first.name)
|
|
26
26
|
assert_equal(SNMP::Null, varbind_list.first.value)
|
data/test/test_smi.rb
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
|
|
3
|
+
begin
|
|
4
|
+
require 'smi'
|
|
5
|
+
|
|
6
|
+
class TestSmi < Test::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_walk.rb
CHANGED
|
@@ -40,11 +40,31 @@ class TestWalk < Test::Unit::TestCase
|
|
|
40
40
|
$transport_pdu_count = 3
|
|
41
41
|
list = []
|
|
42
42
|
manager.walk("ifTable") do |vb|
|
|
43
|
+
assert(vb.kind_of?(VarBind), "Expected a VarBind")
|
|
44
|
+
list << vb
|
|
45
|
+
end
|
|
46
|
+
assert_equal(3, list.length)
|
|
47
|
+
|
|
48
|
+
$transport_pdu_count = 3
|
|
49
|
+
list = []
|
|
50
|
+
manager.walk(ObjectId.new("1.3.4.5")) do |vb|
|
|
51
|
+
assert(vb.kind_of?(VarBind), "Expected a VarBind")
|
|
43
52
|
list << vb
|
|
44
53
|
end
|
|
45
54
|
assert_equal(3, list.length)
|
|
46
55
|
end
|
|
47
56
|
|
|
57
|
+
def test_single_object_list
|
|
58
|
+
$transport_pdu_count = 1
|
|
59
|
+
executed_block = false
|
|
60
|
+
manager.walk(["1.3.6.1"]) do |vb_list|
|
|
61
|
+
executed_block = true
|
|
62
|
+
assert_equal(1, vb_list.length)
|
|
63
|
+
assert_equal("1.3.6.1.1", vb_list.first.name.to_s)
|
|
64
|
+
end
|
|
65
|
+
assert(executed_block, "Did not execute block")
|
|
66
|
+
end
|
|
67
|
+
|
|
48
68
|
def test_object_list
|
|
49
69
|
$transport_pdu_count = 3
|
|
50
70
|
list1 = []
|
|
@@ -60,7 +80,7 @@ class TestWalk < Test::Unit::TestCase
|
|
|
60
80
|
def test_empty
|
|
61
81
|
$transport_pdu_count = 0
|
|
62
82
|
manager.walk("1.2.3.4") do |vb|
|
|
63
|
-
fail
|
|
83
|
+
fail("Expected block to not be executed")
|
|
64
84
|
end
|
|
65
85
|
end
|
|
66
86
|
|
metadata
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
|
-
rubygems_version: 0.8.
|
|
2
|
+
rubygems_version: 0.8.10
|
|
3
3
|
specification_version: 1
|
|
4
4
|
name: snmp
|
|
5
5
|
version: !ruby/object:Gem::Version
|
|
6
|
-
version: 0.
|
|
7
|
-
date:
|
|
6
|
+
version: 0.5.0
|
|
7
|
+
date: 2005-06-15
|
|
8
8
|
summary: A Ruby implementation of SNMP (the Simple Network Management Protocol).
|
|
9
9
|
require_paths:
|
|
10
10
|
- lib
|
|
@@ -41,6 +41,7 @@ files:
|
|
|
41
41
|
- test/test_manager.rb
|
|
42
42
|
- test/test_mib.rb
|
|
43
43
|
- test/test_pdu.rb
|
|
44
|
+
- test/test_smi.rb
|
|
44
45
|
- test/test_varbind.rb
|
|
45
46
|
- test/test_walk.rb
|
|
46
47
|
- examples/dump.rb
|
|
@@ -242,11 +243,14 @@ files:
|
|
|
242
243
|
- data/ruby/snmp/mibs/VRRP-MIB.yaml
|
|
243
244
|
- data/ruby/snmp/mibs/WWW-MIB.yaml
|
|
244
245
|
test_files: []
|
|
245
|
-
rdoc_options:
|
|
246
|
+
rdoc_options:
|
|
247
|
+
- "--main"
|
|
248
|
+
- README
|
|
249
|
+
- "--title"
|
|
250
|
+
- SNMP Library for Ruby
|
|
246
251
|
extra_rdoc_files:
|
|
247
252
|
- README
|
|
248
253
|
executables: []
|
|
249
254
|
extensions: []
|
|
250
|
-
requirements:
|
|
251
|
-
- none
|
|
255
|
+
requirements: []
|
|
252
256
|
dependencies: []
|