net-snmp 0.1.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/.document +5 -0
- data/.gitignore +4 -0
- data/.rspec +1 -0
- data/Gemfile +8 -0
- data/LICENSE +20 -0
- data/README.rdoc +146 -0
- data/Rakefile +2 -0
- data/VERSION +1 -0
- data/bin/snmpget.rb +30 -0
- data/c/Makefile +3 -0
- data/c/test +0 -0
- data/c/test.c +137 -0
- data/interface/snmp_api.h +1086 -0
- data/interface/snmp_api.i +16 -0
- data/interface/snmp_api_wrap.xml +6747 -0
- data/lib/net-snmp.rb +57 -0
- data/lib/net/snmp.rb +54 -0
- data/lib/net/snmp/constants.rb +239 -0
- data/lib/net/snmp/error.rb +23 -0
- data/lib/net/snmp/inline.rb +39 -0
- data/lib/net/snmp/mib.rb +20 -0
- data/lib/net/snmp/mib/node.rb +58 -0
- data/lib/net/snmp/oid.rb +39 -0
- data/lib/net/snmp/pdu.rb +80 -0
- data/lib/net/snmp/session.rb +223 -0
- data/lib/net/snmp/varbind.rb +36 -0
- data/lib/net/snmp/version.rb +5 -0
- data/lib/net/snmp/wrapper.rb +382 -0
- data/net-snmp.gemspec +24 -0
- data/spec/mib_spec.rb +45 -0
- data/spec/net-snmp_spec.rb +202 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/wrapper_spec.rb +83 -0
- metadata +138 -0
data/net-snmp.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "net/snmp/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "net-snmp"
|
7
|
+
s.version = Net::Snmp::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Ron McClain"]
|
10
|
+
s.email = ["mixtli@github.com"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{Object oriented wrapper around C net-snmp libraries}
|
13
|
+
s.description = %q{Uses ffi to create an object oriented wrapper around C net-snmp libraries}
|
14
|
+
|
15
|
+
s.rubyforge_project = "net-snmp"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
s.add_development_dependency "rspec"
|
22
|
+
s.add_development_dependency "eventmachine"
|
23
|
+
s.add_dependency "nice-ffi"
|
24
|
+
end
|
data/spec/mib_spec.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe Net::SNMP::MIB::Node do
|
4
|
+
it "should get info for sysDescr" do
|
5
|
+
node = Net::SNMP::MIB::Node.get_node("sysDescr")
|
6
|
+
node.label.should eq("sysDescr")
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should get parent" do
|
10
|
+
node = Net::SNMP::MIB::Node.get_node("sysDescr")
|
11
|
+
node.parent.label.should eq("system")
|
12
|
+
# puts node.parent.inspect
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should get children" do
|
16
|
+
node = Net::SNMP::MIB::Node.get_node("system")
|
17
|
+
node.children.each do |c|
|
18
|
+
# puts c.inspect
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should get siblings" do
|
23
|
+
node = Net::SNMP::MIB::Node.get_node("sysDescr")
|
24
|
+
node.siblings.should include{|n| n.label == "sysName"}
|
25
|
+
puts node.siblings.map(&:label)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should get oid" do
|
29
|
+
node = Net::SNMP::MIB::Node.get_node("sysDescr")
|
30
|
+
puts node.struct.inspect
|
31
|
+
node.oid.should eq("1.3.6.1.2.1.1.1")
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should get by oid" do
|
35
|
+
node = Net::SNMP::MIB::Node.get_node("1.3.6.1.2.1.1.1")
|
36
|
+
node.label.should eq("sysDescr")
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should do stuff" do
|
40
|
+
node = Net::SNMP::MIB::Node.get_node("ipAdEntIfIndex")
|
41
|
+
puts node.inspect
|
42
|
+
puts node.struct.inspect
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,202 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe "NetSnmp" do
|
4
|
+
it "should get single oid" do
|
5
|
+
Net::SNMP::Session.open(:peername => "test.net-snmp.org", :community => "demopublic" ) do |sess|
|
6
|
+
result = sess.get("sysDescr.0")
|
7
|
+
result.varbinds.first.value.should eql("test.net-snmp.org")
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should get multiple oids" do
|
12
|
+
Net::SNMP::Session.open(:peername => "test.net-snmp.org", :community => 'demopublic' ) do |sess|
|
13
|
+
result = sess.get(["sysDescr.0", "sysName.0"])
|
14
|
+
result.varbinds[0].value.should eql("test.net-snmp.org")
|
15
|
+
result.varbinds[1].value.should eql("test.net-snmp.org")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should get multiple requests asynchronously" do
|
20
|
+
did_callback = false
|
21
|
+
session = Net::SNMP::Session.open(:peername => 'test.net-snmp.org', :community => 'demopublic') do |s|
|
22
|
+
s.get(["sysDescr.0", "sysContact.0"]) do |result|
|
23
|
+
puts "in callback"
|
24
|
+
did_callback = true
|
25
|
+
result.varbinds[0].value.should eql("test.net-snmp.org")
|
26
|
+
result.varbinds[1].value.should match(/Coders/)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
Net::SNMP.dispatcher(false)
|
30
|
+
did_callback.should be(true)
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
it "should get an oid asynchronously in a thread" do
|
37
|
+
did_callback = false
|
38
|
+
session = Net::SNMP::Session.open(:peername => 'test.net-snmp.org', :community => 'demopublic') do |s|
|
39
|
+
s.get(["sysDescr.0", "sysContact.0"]) do |result|
|
40
|
+
puts "in callback"
|
41
|
+
did_callback = true
|
42
|
+
result.varbinds[0].value.should eql("test.net-snmp.org")
|
43
|
+
result.varbinds[1].value.should match(/Coders/)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
Thread.new do
|
47
|
+
while Net::SNMP.dispatcher == 0
|
48
|
+
sleep 1
|
49
|
+
end
|
50
|
+
end.join
|
51
|
+
did_callback.should be(true)
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
it "invalid oid should return error" do
|
56
|
+
Net::SNMP::Session.open(:peername => "test.net-snmp.org", :community => "demopublic" ) do |sess|
|
57
|
+
result = sess.get(["XXXsysDescr.0"]) #misspelled
|
58
|
+
result.should be_error
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should get using snmpv3" do
|
63
|
+
Net::SNMP::Session.open(:peername => 'test.net-snmp.org', :version => 3, :username => 'MD5User', :security_level => Net::SNMP::Constants::SNMP_SEC_LEVEL_AUTHNOPRIV, :auth_protocol => :md5, :password => 'The Net-SNMP Demo Password') do |sess|
|
64
|
+
result = sess.get("sysDescr.0")
|
65
|
+
result.varbinds.first.value.should eql('test.net-snmp.org')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should get async using snmpv3" do
|
70
|
+
did_callback = false
|
71
|
+
Net::SNMP::Session.open(:peername => 'test.net-snmp.org', :version => 3, :username => 'MD5User',:security_level => Net::SNMP::Constants::SNMP_SEC_LEVEL_AUTHNOPRIV, :auth_protocol => :md5, :password => 'The Net-SNMP Demo Password') do |sess|
|
72
|
+
sess.get(["sysDescr.0", "sysName.0"]) do |result|
|
73
|
+
did_callback = true
|
74
|
+
result.varbinds[0].value.should eql('test.net-snmp.org')
|
75
|
+
result.varbinds[1].value.should eql('test.net-snmp.org')
|
76
|
+
0
|
77
|
+
end
|
78
|
+
sleep(1)
|
79
|
+
Net::SNMP.dispatcher()
|
80
|
+
did_callback.should be(true)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
|
85
|
+
# To test sets, you have to have a local snmpd running with write permissions
|
86
|
+
it "should set a value" do
|
87
|
+
Net::SNMP::Session.open(:peername => '127.0.0.1', :version => 1) do |sess|
|
88
|
+
result = sess.set([['sysContact.0', Net::SNMP::Constants::ASN_OCTET_STR, 'yomama']])
|
89
|
+
result.varbinds.first.value.should match(/yomama/)
|
90
|
+
result.should_not be_error
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
#it "should set using snmpv3" do
|
95
|
+
# pending
|
96
|
+
# Net::SNMP::Session.open(:peername => '127.0.0.1', :version => 3, :username => 'myuser', :authprotocol => :sha1, :authkey => '0x1234', :privprotocol => :des, :privkey => '0x25252') do |sess|
|
97
|
+
# result = sess.set([["sysDescr.0", Net::SNMP::Constants::ASN_OCTET_STR, 'yomama']])
|
98
|
+
# result.varbinds.first.value.should match(/Darwin/)
|
99
|
+
# end
|
100
|
+
#end
|
101
|
+
|
102
|
+
it "should get next an array of oids" do
|
103
|
+
Net::SNMP::Session.open(:peername => "test.net-snmp.org", :community => "demopublic" ) do |sess|
|
104
|
+
result = sess.get_next(["sysUpTimeInstance.0"])
|
105
|
+
result.varbinds.first.name.should eql("1.3.6.1.2.1.1.4.0")
|
106
|
+
result.varbinds.first.value.should match(/Net-SNMP Coders/)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
it "should get_bulk_request" do
|
112
|
+
Net::SNMP::Session.open(:peername => "test.net-snmp.org" , :version => '2c', :community => 'demopublic') do |sess|
|
113
|
+
result = sess.get_bulk(["sysContact.0"], :max_repetitions => 10)
|
114
|
+
result.varbinds.first.oid.should eql("1.3.6.1.2.1.1.5.0")
|
115
|
+
result.varbinds.first.value.should eql("test.net-snmp.org")
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should get a table of values"
|
120
|
+
|
121
|
+
it "should work in event_machine" do
|
122
|
+
require 'eventmachine'
|
123
|
+
did_callback = false
|
124
|
+
EM.run do
|
125
|
+
tickloop = EM.tick_loop do
|
126
|
+
Net::SNMP.dispatcher
|
127
|
+
end
|
128
|
+
|
129
|
+
session = Net::SNMP::Session.open(:peername => 'test.net-snmp.org', :community => 'demopublic') do |s|
|
130
|
+
s.get("sysDescr.0") do |result|
|
131
|
+
did_callback = true
|
132
|
+
result.varbinds[0].value.should eql("test.net-snmp.org")
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
EM.add_timer(2) do
|
138
|
+
puts "in timer"
|
139
|
+
did_callback.should be_true
|
140
|
+
EM.stop
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
it "should work in a fiber" do
|
146
|
+
require 'eventmachine'
|
147
|
+
did_callback = false
|
148
|
+
EM.run do
|
149
|
+
tickloop = EM.tick_loop do
|
150
|
+
Net::SNMP.dispatcher
|
151
|
+
end
|
152
|
+
|
153
|
+
Fiber.new {
|
154
|
+
session = Net::SNMP::Session.open(:peername => 'test.net-snmp.org', :community => 'demopublic') do |s|
|
155
|
+
s.get("sysDescr.0") do |result|
|
156
|
+
did_callback = true
|
157
|
+
puts "INHERERERERERERE"
|
158
|
+
puts result.inspect
|
159
|
+
result.varbinds[0].value.should eql("test.net-snmp.org")
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
EM.add_timer(2) do
|
165
|
+
puts "in timer"
|
166
|
+
did_callback.should eql(true)
|
167
|
+
EM.stop
|
168
|
+
end
|
169
|
+
}.resume
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
it "get should work in a fiber with synchronous calling style" do
|
176
|
+
require 'eventmachine'
|
177
|
+
did_callback = false
|
178
|
+
EM.run do
|
179
|
+
puts "em fiber = #{Fiber.current.inspect}"
|
180
|
+
Fiber.new {
|
181
|
+
puts "inner fiber = #{Fiber.current.inspect}"
|
182
|
+
|
183
|
+
EM.tick_loop do
|
184
|
+
#puts "tick_fiber = #{Fiber.current.inspect}"
|
185
|
+
|
186
|
+
Net::SNMP.dispatcher
|
187
|
+
end
|
188
|
+
sleep 1
|
189
|
+
session = Net::SNMP::Session.open(:peername => 'test.net-snmp.org', :community => 'demopublic')
|
190
|
+
puts "calling aget"
|
191
|
+
result = session.get("sysDescr.0")
|
192
|
+
result.varbinds[0].value.should eql("test.net-snmp.org")
|
193
|
+
|
194
|
+
|
195
|
+
}.resume
|
196
|
+
EM.stop
|
197
|
+
end
|
198
|
+
|
199
|
+
end
|
200
|
+
|
201
|
+
|
202
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe "Net::SNMP::Wrapper" do
|
4
|
+
def init_session
|
5
|
+
community = "demopublic"
|
6
|
+
peername = "test.net-snmp.org"
|
7
|
+
|
8
|
+
sess = Net::SNMP::Wrapper::SnmpSession.new
|
9
|
+
Net::SNMP::Wrapper.snmp_sess_init(sess.pointer)
|
10
|
+
sess.community = FFI::MemoryPointer.new(:pointer, community.length + 1)
|
11
|
+
#sess.community.autorelease = false
|
12
|
+
sess.community.write_string(community)
|
13
|
+
sess.community_len = community.length
|
14
|
+
sess.peername = FFI::MemoryPointer.new(:pointer, peername.length + 1)
|
15
|
+
#sess.peername.autorelease = false
|
16
|
+
sess.peername.write_string(peername)
|
17
|
+
sess.version = Net::SNMP::SNMP_VERSION_1
|
18
|
+
|
19
|
+
@handle = Net::SNMP::Wrapper.snmp_sess_open(sess.pointer)
|
20
|
+
Net::SNMP::Wrapper.snmp_sess_session(@handle)
|
21
|
+
|
22
|
+
sess
|
23
|
+
end
|
24
|
+
|
25
|
+
def make_pdu
|
26
|
+
pdu_ptr = Net::SNMP::Wrapper.snmp_pdu_create(Net::SNMP::SNMP_MSG_GET)
|
27
|
+
pdu = Net::SNMP::Wrapper::SnmpPdu.new(pdu_ptr)
|
28
|
+
anOID = FFI::MemoryPointer.new(:ulong, Net::SNMP::MAX_OID_LEN)
|
29
|
+
anOIDLen = FFI::MemoryPointer.new(:size_t)
|
30
|
+
anOIDLen.write_int(Net::SNMP::MAX_OID_LEN)
|
31
|
+
Net::SNMP::Wrapper.snmp_parse_oid("sysDescr.0", anOID, anOIDLen)
|
32
|
+
Net::SNMP::Wrapper.snmp_add_null_var(pdu.pointer, anOID, anOIDLen.read_int)
|
33
|
+
pdu
|
34
|
+
end
|
35
|
+
|
36
|
+
it "wrapper should snmpget synchronously" do
|
37
|
+
#pending
|
38
|
+
sess = init_session
|
39
|
+
sess = Net::SNMP::Wrapper.snmp_open(sess.pointer)
|
40
|
+
|
41
|
+
pdu = make_pdu
|
42
|
+
|
43
|
+
response_ptr = FFI::MemoryPointer.new(:pointer)
|
44
|
+
#response_ptr.autorelease = false
|
45
|
+
status = Net::SNMP::Wrapper.snmp_sess_synch_response(@handle, pdu.pointer, response_ptr)
|
46
|
+
status.should eql(0)
|
47
|
+
|
48
|
+
response = Net::SNMP::Wrapper::SnmpPdu.new(response_ptr.read_pointer)
|
49
|
+
value = response.variables.val[:string].read_string
|
50
|
+
puts "val_len = #{response.variables.val_len}"
|
51
|
+
value.should eql('test.net-snmp.org')
|
52
|
+
end
|
53
|
+
|
54
|
+
it "wrapper should snmpget asynchronously" do
|
55
|
+
pending
|
56
|
+
sess = init_session
|
57
|
+
pdu = make_pdu
|
58
|
+
did_callback = 0
|
59
|
+
result = nil
|
60
|
+
sess.callback = lambda do |operation, session, reqid, pdu_ptr, magic|
|
61
|
+
did_callback = 1
|
62
|
+
pdu = Net::SNMP::Wrapper::SnmpPdu.new(pdu_ptr)
|
63
|
+
variables = Net::SNMP::Wrapper::VariableList.new(pdu.variables)
|
64
|
+
result = variables.val[:string].read_string
|
65
|
+
0
|
66
|
+
end
|
67
|
+
sess = Net::SNMP::Wrapper.snmp_open(sess.pointer)
|
68
|
+
Net::SNMP::Wrapper.snmp_send(sess.pointer, pdu)
|
69
|
+
|
70
|
+
fdset = Net::SNMP::Wrapper.get_fd_set
|
71
|
+
fds = FFI::MemoryPointer.new(:int)
|
72
|
+
#fds.autorelease = false
|
73
|
+
tval = Net::SNMP::Wrapper::TimeVal.new
|
74
|
+
block = FFI::MemoryPointer.new(:int)
|
75
|
+
#block.autorelease = false
|
76
|
+
block.write_int(1)
|
77
|
+
Net::SNMP::Wrapper.snmp_select_info(fds, fdset, tval.pointer, block )
|
78
|
+
Net::SNMP::Wrapper.select(fds.read_int, fdset, nil, nil, nil)
|
79
|
+
Net::SNMP::Wrapper.snmp_read(fdset)
|
80
|
+
did_callback.should be(1)
|
81
|
+
result.should eql('test.net-snmp.org')
|
82
|
+
end
|
83
|
+
end
|
metadata
ADDED
@@ -0,0 +1,138 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: net-snmp
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
version: 0.1.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Ron McClain
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-03-24 00:00:00 -05:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rspec
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
type: :development
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: eventmachine
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
44
|
+
type: :development
|
45
|
+
version_requirements: *id002
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: nice-ffi
|
48
|
+
prerelease: false
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
segments:
|
55
|
+
- 0
|
56
|
+
version: "0"
|
57
|
+
type: :runtime
|
58
|
+
version_requirements: *id003
|
59
|
+
description: Uses ffi to create an object oriented wrapper around C net-snmp libraries
|
60
|
+
email:
|
61
|
+
- mixtli@github.com
|
62
|
+
executables:
|
63
|
+
- snmpget.rb
|
64
|
+
extensions: []
|
65
|
+
|
66
|
+
extra_rdoc_files: []
|
67
|
+
|
68
|
+
files:
|
69
|
+
- .document
|
70
|
+
- .gitignore
|
71
|
+
- .rspec
|
72
|
+
- Gemfile
|
73
|
+
- LICENSE
|
74
|
+
- README.rdoc
|
75
|
+
- Rakefile
|
76
|
+
- VERSION
|
77
|
+
- bin/snmpget.rb
|
78
|
+
- c/Makefile
|
79
|
+
- c/test
|
80
|
+
- c/test.c
|
81
|
+
- interface/snmp_api.h
|
82
|
+
- interface/snmp_api.i
|
83
|
+
- interface/snmp_api_wrap.xml
|
84
|
+
- lib/net-snmp.rb
|
85
|
+
- lib/net/snmp.rb
|
86
|
+
- lib/net/snmp/constants.rb
|
87
|
+
- lib/net/snmp/error.rb
|
88
|
+
- lib/net/snmp/inline.rb
|
89
|
+
- lib/net/snmp/mib.rb
|
90
|
+
- lib/net/snmp/mib/node.rb
|
91
|
+
- lib/net/snmp/oid.rb
|
92
|
+
- lib/net/snmp/pdu.rb
|
93
|
+
- lib/net/snmp/session.rb
|
94
|
+
- lib/net/snmp/varbind.rb
|
95
|
+
- lib/net/snmp/version.rb
|
96
|
+
- lib/net/snmp/wrapper.rb
|
97
|
+
- net-snmp.gemspec
|
98
|
+
- spec/mib_spec.rb
|
99
|
+
- spec/net-snmp_spec.rb
|
100
|
+
- spec/spec_helper.rb
|
101
|
+
- spec/wrapper_spec.rb
|
102
|
+
has_rdoc: true
|
103
|
+
homepage: ""
|
104
|
+
licenses: []
|
105
|
+
|
106
|
+
post_install_message:
|
107
|
+
rdoc_options: []
|
108
|
+
|
109
|
+
require_paths:
|
110
|
+
- lib
|
111
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
+
none: false
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
segments:
|
117
|
+
- 0
|
118
|
+
version: "0"
|
119
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
|
+
none: false
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
version: "0"
|
127
|
+
requirements: []
|
128
|
+
|
129
|
+
rubyforge_project: net-snmp
|
130
|
+
rubygems_version: 1.3.7
|
131
|
+
signing_key:
|
132
|
+
specification_version: 3
|
133
|
+
summary: Object oriented wrapper around C net-snmp libraries
|
134
|
+
test_files:
|
135
|
+
- spec/mib_spec.rb
|
136
|
+
- spec/net-snmp_spec.rb
|
137
|
+
- spec/spec_helper.rb
|
138
|
+
- spec/wrapper_spec.rb
|