snmp 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|