snmpjr 0.1.7-java → 0.2.0-java
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.
- checksums.yaml +5 -13
- data/.gitignore +1 -0
- data/.rubocop.yml +2 -0
- data/.ruby-version +1 -0
- data/.semver +6 -0
- data/.travis.yml +1 -1
- data/Gemfile +1 -10
- data/Rakefile +6 -6
- data/history.rdoc +4 -0
- data/lib/snmpjr/session.rb +1 -0
- data/lib/snmpjr/version.rb +1 -1
- data/lib/snmpjr/walker.rb +51 -0
- data/lib/snmpjr/wrappers/snmp4j-agent-2.3.0.jar +0 -0
- data/lib/snmpjr/wrappers/snmp4j.rb +2 -6
- data/lib/snmpjr/wrappers/util.rb +9 -0
- data/lib/snmpjr.rb +19 -8
- data/snmpjr.gemspec +9 -0
- data/spec/integration/{snmpjr_spec.rb → snmpjr_get_spec.rb} +0 -0
- data/spec/integration/snmpjr_walk_spec.rb +35 -0
- data/spec/snmpjr/walker_spec.rb +98 -0
- data/spec/snmpjr_spec.rb +55 -27
- metadata +148 -15
- data/.rvmrc +0 -1
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZTI3OTIwODllMTgzMDhmNzk5NmFmYTFjZjIyOWJiMGNlYWQ3NmMyZA==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 984e607b44990794ebd24b64ad23f28dc81cf794
|
4
|
+
data.tar.gz: 830142b3571061e4b2ef4c2fa48d630cd22bece7
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NjllOTUwNDI3MTYxZDYzM2YxZjQzMzU5MjA4ZTU2YzUxOWFhMzk4YWMyYWVi
|
11
|
-
YTllZjJlMjg1ZDZkMTIxM2JmNzJkZjNjNzcyZmEyOTRhMjM5MDA=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MTZiYTc5NzBhZjFhODE5YjdkN2U4ZWFkMWU3ZTljZmViYzEwYWRhNjA2OTdj
|
14
|
-
YjFmMDBiYTZjYjAzOWI2NDM1ZmQzNmMyNzRmNTQ3NGFlNTUzNzRmZGU3ZDk2
|
15
|
-
MmU5ZDAwZDhiZTRkN2JjMWZmNjVlNzIxMzI4M2MxNDhjN2EzZjE=
|
6
|
+
metadata.gz: 0891f288cd4f9b4d1b9f7fe16459957b95c6a23223dc2ec6490fa6d6e93626b7fabd7424d74756b40329974a9ade1d4f9c02b44b7dbb32686d6d7d5a7a88b1bb
|
7
|
+
data.tar.gz: e28a301bdfdc75ec77c872c1a89a9547ec5bae2fe31c3cce31ae2e9c83a1e62d4fdf9596f21371114947cfdacf5a5d4016a3955499e84046ce0669a0ebea4294
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
jruby-1.7.16
|
data/.semver
ADDED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rake/clean'
|
2
|
-
require '
|
2
|
+
require 'rake_n_bake'
|
3
3
|
require 'rubocop/rake_task'
|
4
4
|
|
5
5
|
@external_dependencies = %w( jruby java )
|
@@ -8,9 +8,9 @@ RuboCop::RakeTask.new
|
|
8
8
|
|
9
9
|
task default: [
|
10
10
|
:clean,
|
11
|
-
:"
|
12
|
-
:"
|
13
|
-
:"
|
14
|
-
:"
|
15
|
-
:"
|
11
|
+
:"bake:check_external_dependencies",
|
12
|
+
:"bake:code_quality:all",
|
13
|
+
:"bake:rspec",
|
14
|
+
:"bake:coverage:check_specs",
|
15
|
+
:"bake:ok"
|
16
16
|
]
|
data/history.rdoc
CHANGED
data/lib/snmpjr/session.rb
CHANGED
data/lib/snmpjr/version.rb
CHANGED
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'snmpjr/wrappers/util'
|
2
|
+
require 'snmpjr/wrappers/smi'
|
3
|
+
require 'snmpjr/session'
|
4
|
+
|
5
|
+
class Snmpjr
|
6
|
+
class Walker
|
7
|
+
def initialize opts = {}
|
8
|
+
@target = opts.fetch(:target)
|
9
|
+
@session = Snmpjr::Session.new
|
10
|
+
@tree_utils = Snmpjr::Wrappers::Util::TreeUtils.new(@session.snmp, pdu_factory)
|
11
|
+
end
|
12
|
+
|
13
|
+
def walk oid
|
14
|
+
begin
|
15
|
+
@session.start
|
16
|
+
response = @tree_utils.getSubtree(@target, oid)
|
17
|
+
rescue Exception => e
|
18
|
+
raise RuntimeError.new e.to_s
|
19
|
+
ensure
|
20
|
+
@session.close
|
21
|
+
end
|
22
|
+
response.flat_map {|response_event|
|
23
|
+
check_event_for_errors(response_event)
|
24
|
+
extract_variable_bindings(response_event.variable_bindings)
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def extract_variable_bindings variable_bindings
|
31
|
+
variable_bindings.flat_map {|vb|
|
32
|
+
Snmpjr::Response.new(value: vb.variable.to_s)
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
def check_event_for_errors event
|
37
|
+
if event.is_error?
|
38
|
+
if event.error_message == 'Request timed out.'
|
39
|
+
raise Snmpjr::TargetTimeoutError.new('Request timed out')
|
40
|
+
else
|
41
|
+
raise RuntimeError.new(event.error_message)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def pdu_factory
|
47
|
+
Snmpjr::Wrappers::Util::DefaultPDUFactory.new
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
Binary file
|
data/lib/snmpjr.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require "snmpjr/version"
|
2
|
+
require 'snmpjr/wrappers/smi'
|
2
3
|
require "snmpjr/getter"
|
4
|
+
require "snmpjr/walker"
|
3
5
|
require "snmpjr/target"
|
4
6
|
|
5
7
|
class Snmpjr
|
@@ -9,27 +11,36 @@ class Snmpjr
|
|
9
11
|
@port = options.fetch(:port) { 161 }
|
10
12
|
@community = options.fetch(:community)
|
11
13
|
@timeout = options.fetch(:timeout) { 5000 }
|
12
|
-
@max_oids_per_request = options.fetch(:max_oids_per_request) { 30 }
|
13
14
|
@retries = options.fetch(:retries) { 0 }
|
14
|
-
end
|
15
15
|
|
16
|
-
|
17
|
-
target = Snmpjr::Target.new.create(host: @host,
|
16
|
+
@target = Snmpjr::Target.new.create(host: @host,
|
18
17
|
port: @port,
|
19
18
|
community: @community,
|
20
19
|
timeout: @timeout,
|
21
20
|
retries: @retries
|
22
21
|
)
|
23
|
-
getter = Snmpjr::Getter.new(target: target, max_oids_per_request: @max_oids_per_request)
|
24
22
|
|
25
|
-
|
26
|
-
|
23
|
+
@max_oids_per_request = options.fetch(:max_oids_per_request) { 30 }
|
24
|
+
end
|
25
|
+
|
26
|
+
def get oids
|
27
|
+
getter = Snmpjr::Getter.new(target: @target, max_oids_per_request: @max_oids_per_request)
|
28
|
+
|
29
|
+
if oids.is_a?(String)
|
27
30
|
getter.get oids
|
28
|
-
|
31
|
+
elsif oids.is_a?(Array)
|
29
32
|
getter.get_multiple oids
|
30
33
|
else
|
31
34
|
raise ArgumentError.new 'You can request a single Oid using a String, or multiple using an Array'
|
32
35
|
end
|
33
36
|
end
|
34
37
|
|
38
|
+
def walk oid
|
39
|
+
if oid.is_a?(String)
|
40
|
+
Snmpjr::Walker.new(target: @target).walk Snmpjr::Wrappers::SMI::OID.new(oid)
|
41
|
+
else
|
42
|
+
raise ArgumentError.new 'The oid needs to be passed in as a String'
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
35
46
|
end
|
data/snmpjr.gemspec
CHANGED
@@ -19,4 +19,13 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.platform = 'java'
|
22
|
+
spec.add_development_dependency 'rake-n-bake'
|
23
|
+
spec.add_development_dependency 'coveralls'
|
24
|
+
spec.add_development_dependency 'codeclimate-test-reporter'
|
25
|
+
spec.add_development_dependency 'rubocop'
|
26
|
+
spec.add_development_dependency 'pry'
|
27
|
+
spec.add_development_dependency 'rspec'
|
28
|
+
spec.add_development_dependency 'semver2'
|
29
|
+
spec.add_development_dependency 'rake'
|
30
|
+
spec.add_development_dependency 'simplecov'
|
22
31
|
end
|
File without changes
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'snmpjr'
|
2
|
+
require 'snmpjr/response'
|
3
|
+
require 'snmpjr/target_timeout_error'
|
4
|
+
|
5
|
+
describe "snmpjr" do
|
6
|
+
|
7
|
+
describe 'WALK' do
|
8
|
+
context 'when the host is reachable' do
|
9
|
+
subject { Snmpjr.new(host: 'demo.snmplabs.com', port: 161, community: 'public') }
|
10
|
+
|
11
|
+
it 'can perform a simple synchronous walk request on an snmp agent' do
|
12
|
+
response = subject.walk '1.3.6.1.2.1.1'
|
13
|
+
expect(response.count).to eq 11
|
14
|
+
expect(response.first.to_s).to eq 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m'
|
15
|
+
expect(response.last.to_s).to match /^\d+\:\d+:\d+\.\d+$/
|
16
|
+
end
|
17
|
+
|
18
|
+
context "when a non existent subtree is walked" do
|
19
|
+
it 'returns an empty array' do
|
20
|
+
expect(subject.walk '1.3.6.1.5').to eq []
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'when the host is unreachable' do
|
26
|
+
subject { Snmpjr.new(host: 'example.com', port: 161, community: 'public', timeout: 50) }
|
27
|
+
|
28
|
+
it 'the request times out after 5 seconds' do
|
29
|
+
expect{
|
30
|
+
subject.walk '1.3.6.1.2.1.1'
|
31
|
+
}.to raise_error(Snmpjr::TargetTimeoutError)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require production_code
|
2
|
+
|
3
|
+
describe Snmpjr::Walker do
|
4
|
+
let(:target) { double :target }
|
5
|
+
let(:oid) { Snmpjr::Wrappers::SMI::OID.new '1.2.3.4.5.6' }
|
6
|
+
let(:session) { double(:session).as_null_object }
|
7
|
+
|
8
|
+
let(:pdu_factory) { double Snmpjr::Wrappers::Util::DefaultPDUFactory }
|
9
|
+
let(:tree_util) { double Snmpjr::Wrappers::Util::TreeUtils }
|
10
|
+
|
11
|
+
subject { described_class.new(target: target) }
|
12
|
+
|
13
|
+
let(:vb1) { Snmpjr::Wrappers::SMI::VariableBinding.new(
|
14
|
+
Snmpjr::Wrappers::SMI::OID.new('1.3.6'),
|
15
|
+
Snmpjr::Wrappers::SMI::OctetString.new('Sample Result 1'))
|
16
|
+
}
|
17
|
+
|
18
|
+
let(:vb2) { Snmpjr::Wrappers::SMI::VariableBinding.new(
|
19
|
+
Snmpjr::Wrappers::SMI::OID.new('1.3.6.1'),
|
20
|
+
Snmpjr::Wrappers::SMI::OctetString.new('Sample Result 2'))
|
21
|
+
}
|
22
|
+
let(:tree_event_1) { double :tree_event_1, {variable_bindings: [vb1], is_error?: false} }
|
23
|
+
let(:tree_event_2) { double :tree_event_2, {variable_bindings: [vb2], is_error?: false} }
|
24
|
+
let(:example_event_responses) { [tree_event_1, tree_event_2] }
|
25
|
+
|
26
|
+
before do
|
27
|
+
allow(Snmpjr::Wrappers::Util::DefaultPDUFactory).to receive(:new).and_return pdu_factory
|
28
|
+
allow(Snmpjr::Session).to receive(:new).and_return session
|
29
|
+
|
30
|
+
allow(Snmpjr::Wrappers::Util::TreeUtils).to receive(:new).with(session.snmp, pdu_factory).and_return tree_util
|
31
|
+
allow(tree_util).to receive(:getSubtree).with(target, oid).and_return example_event_responses
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '#walk' do
|
35
|
+
it 'starts an snmp session' do
|
36
|
+
expect(session).to receive(:start)
|
37
|
+
subject.walk oid
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'when an exception is raised' do
|
41
|
+
before do
|
42
|
+
allow(tree_util).to receive(:getSubtree).with(target, oid).and_raise Exception.new 'noAccess'
|
43
|
+
end
|
44
|
+
it 'raises a runtime error' do
|
45
|
+
expect{
|
46
|
+
subject.walk oid
|
47
|
+
}.to raise_error RuntimeError
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'when a target times out' do
|
52
|
+
let(:tree_event_1) { double :tree_event_1 }
|
53
|
+
before do
|
54
|
+
allow(tree_event_1).to receive(:is_error?).and_return true
|
55
|
+
allow(tree_event_1).to receive(:error_message).and_return 'Request timed out.'
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'raises a timeout error' do
|
59
|
+
expect{
|
60
|
+
subject.walk oid
|
61
|
+
}.to raise_error Snmpjr::TargetTimeoutError
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context 'when a random error occurs' do
|
66
|
+
let(:tree_event_1) { double :tree_event_1 }
|
67
|
+
before do
|
68
|
+
allow(tree_event_1).to receive(:is_error?).and_return true
|
69
|
+
allow(tree_event_1).to receive(:error_message).and_return 'noAccess'
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'raises a runtime error' do
|
73
|
+
expect{
|
74
|
+
subject.walk oid
|
75
|
+
}.to raise_error RuntimeError
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
context 'when a walk returns no variable bindings' do
|
80
|
+
let(:tree_event) { double :tree_event, {variable_bindings: [], is_error?: false } }
|
81
|
+
let(:example_event_responses) { [tree_event] }
|
82
|
+
|
83
|
+
it 'returns an empty array' do
|
84
|
+
expect(subject.walk oid).to eq []
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'performs a synchronous walk' do
|
89
|
+
expect(subject.walk oid).to match_array [Snmpjr::Response.new(value: vb1.variable.to_s),
|
90
|
+
Snmpjr::Response.new(value: vb2.variable.to_s)]
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'closes the snmp session' do
|
94
|
+
expect(session).to receive(:close)
|
95
|
+
subject.walk oid
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
data/spec/snmpjr_spec.rb
CHANGED
@@ -1,44 +1,72 @@
|
|
1
1
|
require production_code
|
2
2
|
|
3
3
|
describe Snmpjr do
|
4
|
+
let(:target) { double Snmpjr::Target }
|
5
|
+
let(:community_target) { double :community_target }
|
6
|
+
let(:agent_details) { { host: '127.0.0.1', port: 161, community: 'some_community', timeout: 50, retries: 50 } }
|
7
|
+
|
8
|
+
subject { described_class.new(agent_details) }
|
9
|
+
|
10
|
+
before do
|
11
|
+
allow(Snmpjr::Target).to receive(:new).and_return target
|
12
|
+
allow(target).to receive(:create).with(agent_details).and_return community_target
|
13
|
+
end
|
14
|
+
|
4
15
|
describe "#get" do
|
5
|
-
|
16
|
+
let(:getter) { double Snmpjr::Getter }
|
6
17
|
|
7
|
-
|
8
|
-
|
9
|
-
|
18
|
+
before do
|
19
|
+
allow(Snmpjr::Getter).to receive(:new).with(target: community_target, max_oids_per_request: 20).and_return getter
|
20
|
+
end
|
10
21
|
|
11
|
-
before do
|
12
|
-
allow(Snmpjr::Target).to receive(:new).and_return target
|
13
|
-
allow(target).to receive(:create).with(agent_details).and_return community_target
|
14
|
-
allow(Snmpjr::Getter).to receive(:new).with(target: community_target, max_oids_per_request: 20).and_return getter
|
15
|
-
end
|
16
22
|
|
17
|
-
|
23
|
+
subject { described_class.new(agent_details.merge({max_oids_per_request: 20})) }
|
18
24
|
|
19
|
-
|
25
|
+
context 'when passed a single oid' do
|
26
|
+
it 'performs a synchronous get' do
|
27
|
+
expect(getter).to receive(:get).with('1.2.3.4.5.6')
|
28
|
+
subject.get '1.2.3.4.5.6'
|
29
|
+
end
|
30
|
+
end
|
20
31
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
end
|
32
|
+
context 'when passed multiple oids' do
|
33
|
+
it 'performs a get multiple using the getter' do
|
34
|
+
expect(getter).to receive(:get_multiple).with(['1.2.3.4.5.6', '6.5.4.3.2.1'])
|
35
|
+
subject.get ['1.2.3.4.5.6', '6.5.4.3.2.1']
|
26
36
|
end
|
37
|
+
end
|
27
38
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
subject.get
|
32
|
-
|
39
|
+
context 'when an invalid argument was passed in' do
|
40
|
+
it 'raises an ArgumentError' do
|
41
|
+
expect {
|
42
|
+
subject.get({'oid_value' => '1.3.4.5.6'})
|
43
|
+
}.to raise_error ArgumentError
|
33
44
|
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe '#walk' do
|
49
|
+
let(:walker) { double Snmpjr::Walker }
|
50
|
+
let(:oid) { double :oid }
|
51
|
+
|
52
|
+
before do
|
53
|
+
allow(Snmpjr::Walker).to receive(:new).with(target: community_target).and_return walker
|
54
|
+
allow(Snmpjr::Wrappers::SMI::OID).to receive(:new).with('1.3.6.1.1').and_return oid
|
55
|
+
end
|
56
|
+
context 'when a string is passed' do
|
57
|
+
it 'performs a synchronous walk' do
|
58
|
+
expect(walker).to receive(:walk).with(oid)
|
59
|
+
subject.walk '1.3.6.1.1'
|
60
|
+
end
|
61
|
+
end
|
34
62
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
end
|
63
|
+
context 'when anything else is passed in' do
|
64
|
+
it 'raises an ArgumentError' do
|
65
|
+
expect {
|
66
|
+
subject.walk({'oid_value' => '1.3.4.5.6'})
|
67
|
+
}.to raise_error ArgumentError
|
41
68
|
end
|
42
69
|
end
|
70
|
+
|
43
71
|
end
|
44
72
|
end
|
metadata
CHANGED
@@ -1,17 +1,142 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snmpjr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Zen Kyprianou
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
ruby
|
11
|
+
date: 2014-10-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - '>='
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '0'
|
19
|
+
name: rake-n-bake
|
20
|
+
prerelease: false
|
21
|
+
type: :development
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
name: coveralls
|
34
|
+
prerelease: false
|
35
|
+
type: :development
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
name: codeclimate-test-reporter
|
48
|
+
prerelease: false
|
49
|
+
type: :development
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - '>='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
name: rubocop
|
62
|
+
prerelease: false
|
63
|
+
type: :development
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
name: pry
|
76
|
+
prerelease: false
|
77
|
+
type: :development
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
name: rspec
|
90
|
+
prerelease: false
|
91
|
+
type: :development
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
name: semver2
|
104
|
+
prerelease: false
|
105
|
+
type: :development
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
name: rake
|
118
|
+
prerelease: false
|
119
|
+
type: :development
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - '>='
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
name: simplecov
|
132
|
+
prerelease: false
|
133
|
+
type: :development
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
description: Snmpjr aims to provide a clean and simple interface to use SNMP in your ruby code. It will wrap the popular SNMP4J library in Java.
|
15
140
|
email:
|
16
141
|
- zen@kyprianou.eu
|
17
142
|
executables: []
|
@@ -21,7 +146,8 @@ files:
|
|
21
146
|
- .gitignore
|
22
147
|
- .rspec
|
23
148
|
- .rubocop.yml
|
24
|
-
- .
|
149
|
+
- .ruby-version
|
150
|
+
- .semver
|
25
151
|
- .travis.yml
|
26
152
|
- Gemfile
|
27
153
|
- LICENSE.txt
|
@@ -36,49 +162,56 @@ files:
|
|
36
162
|
- lib/snmpjr/target.rb
|
37
163
|
- lib/snmpjr/target_timeout_error.rb
|
38
164
|
- lib/snmpjr/version.rb
|
165
|
+
- lib/snmpjr/walker.rb
|
39
166
|
- lib/snmpjr/wrappers/smi.rb
|
40
167
|
- lib/snmpjr/wrappers/snmp4j-2.3.1.jar
|
168
|
+
- lib/snmpjr/wrappers/snmp4j-agent-2.3.0.jar
|
41
169
|
- lib/snmpjr/wrappers/snmp4j.rb
|
42
170
|
- lib/snmpjr/wrappers/transport.rb
|
171
|
+
- lib/snmpjr/wrappers/util.rb
|
43
172
|
- snmpjr.gemspec
|
44
|
-
- spec/integration/
|
173
|
+
- spec/integration/snmpjr_get_spec.rb
|
174
|
+
- spec/integration/snmpjr_walk_spec.rb
|
45
175
|
- spec/snmpjr/getter_spec.rb
|
46
176
|
- spec/snmpjr/pdu_spec.rb
|
47
177
|
- spec/snmpjr/response_spec.rb
|
48
178
|
- spec/snmpjr/session_spec.rb
|
49
179
|
- spec/snmpjr/target_spec.rb
|
180
|
+
- spec/snmpjr/walker_spec.rb
|
50
181
|
- spec/snmpjr_spec.rb
|
51
182
|
- spec/spec_helper.rb
|
52
183
|
homepage: https://github.com/zenonas/snmpjr
|
53
184
|
licenses:
|
54
185
|
- MIT
|
55
186
|
metadata: {}
|
56
|
-
post_install_message:
|
187
|
+
post_install_message:
|
57
188
|
rdoc_options: []
|
58
189
|
require_paths:
|
59
190
|
- lib
|
60
191
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
192
|
requirements:
|
62
|
-
- -
|
193
|
+
- - '>='
|
63
194
|
- !ruby/object:Gem::Version
|
64
195
|
version: '0'
|
65
196
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
197
|
requirements:
|
67
|
-
- -
|
198
|
+
- - '>='
|
68
199
|
- !ruby/object:Gem::Version
|
69
200
|
version: '0'
|
70
201
|
requirements: []
|
71
|
-
rubyforge_project:
|
72
|
-
rubygems_version: 2.
|
73
|
-
signing_key:
|
202
|
+
rubyforge_project:
|
203
|
+
rubygems_version: 2.1.9
|
204
|
+
signing_key:
|
74
205
|
specification_version: 4
|
75
206
|
summary: Simple SNMP interface for JRuby
|
76
207
|
test_files:
|
77
|
-
- spec/integration/
|
208
|
+
- spec/integration/snmpjr_get_spec.rb
|
209
|
+
- spec/integration/snmpjr_walk_spec.rb
|
78
210
|
- spec/snmpjr/getter_spec.rb
|
79
211
|
- spec/snmpjr/pdu_spec.rb
|
80
212
|
- spec/snmpjr/response_spec.rb
|
81
213
|
- spec/snmpjr/session_spec.rb
|
82
214
|
- spec/snmpjr/target_spec.rb
|
215
|
+
- spec/snmpjr/walker_spec.rb
|
83
216
|
- spec/snmpjr_spec.rb
|
84
217
|
- spec/spec_helper.rb
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use --create jruby-1.7.16@snmpjr
|