snmpjr 0.1.3-java → 0.1.4-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 +8 -8
- data/history.rdoc +4 -0
- data/lib/snmpjr/response.rb +26 -0
- data/lib/snmpjr/session.rb +5 -4
- data/lib/snmpjr/version.rb +1 -1
- data/spec/integration/snmpjr_spec.rb +8 -6
- data/spec/snmpjr/response_spec.rb +58 -0
- data/spec/snmpjr/session_spec.rb +4 -2
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MmUwZDc1YTk1N2M5MzY5ZjAxODgwNTU3ZjgzMjVlZTE5MWM5MWU5Mg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZTRlZmVhNTg0ODEyNDBmYTc4ODE3ZjUwZTNmNDMzY2VmYjY1MDk0ZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YjY5MjZhNWEwZTE4MGJhNTgzZmFhODcwMDRiNTY0MjAzOGE5ODExMDg5Y2Rl
|
10
|
+
ZjhlMGZiNjJkYzcxZTQ0OWE2Y2RjMWE5Y2Q1NjhiZDdiMmY1ZTE1YmQ1NjI1
|
11
|
+
OTAzYzViMDQ4ZjExNmE5MjY3NDVmZjhlNzRhNGUzZGEwMjZiMjI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MDNiMDE3MWM4NDUxMjIyZjZhZDBkZGQwZjViN2E5NWM4NGFjYWZkYWIyYWYy
|
14
|
+
MzgxNjU4MTgyODI1ODQ1YWQ2NWIwZDYwNjZiNGU4N2IwYjg4OTM2NWJlYzIw
|
15
|
+
M2EzNmU4MmI0MWZiZGU4OTIxY2E1YTc1MDQxMjA0MDQ2ZTU5NjU=
|
data/history.rdoc
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
class Snmpjr
|
2
|
+
class Response
|
3
|
+
attr_reader :error
|
4
|
+
|
5
|
+
def initialize response = {}
|
6
|
+
@error = response[:error] || ''
|
7
|
+
@value = response[:value] || ''
|
8
|
+
end
|
9
|
+
|
10
|
+
def error?
|
11
|
+
if @error.empty?
|
12
|
+
false
|
13
|
+
else
|
14
|
+
true
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def to_s
|
19
|
+
@value
|
20
|
+
end
|
21
|
+
|
22
|
+
def ==(other)
|
23
|
+
@error == other.error && to_s == other.to_s
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/snmpjr/session.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'snmpjr/wrappers/transport'
|
2
|
+
require 'snmpjr/response'
|
2
3
|
|
3
4
|
class Snmpjr
|
4
5
|
class Session
|
@@ -15,12 +16,12 @@ class Snmpjr
|
|
15
16
|
begin
|
16
17
|
result = @snmp.send(pdu, target)
|
17
18
|
if result.response.nil?
|
18
|
-
|
19
|
+
Snmpjr::Response.new(:error => 'Request timed out')
|
19
20
|
else
|
20
|
-
result.response.variable_bindings.first.variable.to_s
|
21
|
+
Snmpjr::Response.new(:value => result.response.variable_bindings.first.variable.to_s)
|
21
22
|
end
|
22
|
-
rescue Exception =>
|
23
|
-
|
23
|
+
rescue Exception => error
|
24
|
+
Snmpjr::Response.new(:error => error.to_s)
|
24
25
|
end
|
25
26
|
end
|
26
27
|
|
data/lib/snmpjr/version.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'snmpjr'
|
2
|
+
require 'snmpjr/response'
|
2
3
|
|
3
4
|
describe "snmpjr" do
|
4
5
|
|
@@ -7,20 +8,22 @@ describe "snmpjr" do
|
|
7
8
|
subject { Snmpjr.new(:host => 'demo.snmplabs.com', :port => 161, :community => 'public') }
|
8
9
|
|
9
10
|
it "can perform a simple synchronous get request on an snmp agent" do
|
10
|
-
expect(subject.get '1.3.6.1.2.1.1.1.0').to eq 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m'
|
11
|
+
expect(subject.get '1.3.6.1.2.1.1.1.0').to eq Snmpjr::Response.new(:value => 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m')
|
11
12
|
end
|
12
13
|
|
13
|
-
let(:expected) { ['SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m',
|
14
|
+
let(:expected) { [Snmpjr::Response.new(:value => 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m'),
|
15
|
+
Snmpjr::Response.new(:value => 'zeus.snmplabs.com')] }
|
14
16
|
it "can perform a series of gets if passed an array of oids" do
|
15
17
|
expect(subject.get ['1.3.6.1.2.1.1.1.0', '1.3.6.1.2.1.1.5.0']).to eq expected
|
16
18
|
end
|
17
19
|
|
18
20
|
context "when an invalid oid is requested" do
|
19
21
|
|
20
|
-
let(:expected) { [
|
22
|
+
let(:expected) { [Snmpjr::Response.new(:error => 'Invalid first sub-identifier (must be 0, 1, or 2)'),
|
23
|
+
Snmpjr::Response.new(:value => 'zeus.snmplabs.com')] }
|
24
|
+
|
21
25
|
it "returns an error" do
|
22
26
|
expect(subject.get ['6.5.4.3.2.1', '1.3.6.1.2.1.1.5.0']).to eq expected
|
23
|
-
|
24
27
|
end
|
25
28
|
end
|
26
29
|
end
|
@@ -29,9 +32,8 @@ describe "snmpjr" do
|
|
29
32
|
subject { Snmpjr.new(:host => 'example.com', :port => 161, :community => 'public') }
|
30
33
|
|
31
34
|
it "the request times out after 5 seconds" do
|
32
|
-
expect(subject.get '1.3.6.1.2.1.1.1.0').to eq
|
35
|
+
expect(subject.get '1.3.6.1.2.1.1.1.0').to eq Snmpjr::Response.new(:error => 'Request timed out')
|
33
36
|
end
|
34
37
|
end
|
35
|
-
|
36
38
|
end
|
37
39
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require production_code
|
2
|
+
|
3
|
+
describe Snmpjr::Response do
|
4
|
+
|
5
|
+
describe '.new' do
|
6
|
+
context 'when initialized with a value' do
|
7
|
+
it 'assigns that value' do
|
8
|
+
response = described_class.new(:value => 'Some value')
|
9
|
+
expect(response.to_s).to eq 'Some value'
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'sets the error to an empty string' do
|
13
|
+
response = described_class.new(:value => 'Some value')
|
14
|
+
expect(response.error).to eq ''
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when initialized with an error' do
|
19
|
+
it 'assigns that error' do
|
20
|
+
response = described_class.new(:error => 'Some error')
|
21
|
+
expect(response.error).to eq 'Some error'
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'sets the value to an empty string' do
|
25
|
+
response = described_class.new(:error => 'Some error')
|
26
|
+
expect(response.to_s).to eq ''
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#error?' do
|
32
|
+
it 'returns true if there is an error' do
|
33
|
+
response = described_class.new(:error => 'Some error')
|
34
|
+
expect(response.error?).to be_truthy
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'returns false if there isnt an error' do
|
38
|
+
response = described_class.new(:value => 'Some value')
|
39
|
+
expect(response.error?).to be_falsey
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe '#==' do
|
44
|
+
context 'when the objects are equal' do
|
45
|
+
let(:other) { Snmpjr::Response.new(:value => 'some value') }
|
46
|
+
it 'returns true' do
|
47
|
+
expect(described_class.new(:value => 'some value')).to eq other
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'when the objects are not equal' do
|
52
|
+
let(:other) { Snmpjr::Response.new(:error => 'some value') }
|
53
|
+
it 'returns true' do
|
54
|
+
expect(described_class.new(:error => 'some error')).to_not eq other
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/spec/snmpjr/session_spec.rb
CHANGED
@@ -47,8 +47,9 @@ describe Snmpjr::Session do
|
|
47
47
|
allow(result).to receive(:response).and_return nil
|
48
48
|
end
|
49
49
|
|
50
|
+
let(:expected_response) { Snmpjr::Response.new(:error => 'Request timed out') }
|
50
51
|
it 'returns a request timeout' do
|
51
|
-
expect(subject.send(pdu, target)).to eq
|
52
|
+
expect(subject.send(pdu, target)).to eq expected_response
|
52
53
|
end
|
53
54
|
end
|
54
55
|
|
@@ -57,8 +58,9 @@ describe Snmpjr::Session do
|
|
57
58
|
allow(snmp_session).to receive(:send).and_raise(RuntimeError.new('Some error'))
|
58
59
|
end
|
59
60
|
|
61
|
+
let(:expected_response) { Snmpjr::Response.new(:error => 'Some error') }
|
60
62
|
it 'returns the error without blowing up' do
|
61
|
-
expect(subject.send(pdu, target)).to eq
|
63
|
+
expect(subject.send(pdu, target)).to eq expected_response
|
62
64
|
end
|
63
65
|
end
|
64
66
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snmpjr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Zen Kyprianou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: ! 'Snmpjr aims to provide a clean and simple interface to use SNMP in
|
14
14
|
your ruby code. It will wrap the popular SNMP4J library in Java.
|
@@ -32,6 +32,7 @@ files:
|
|
32
32
|
- lib/snmpjr.rb
|
33
33
|
- lib/snmpjr/getter.rb
|
34
34
|
- lib/snmpjr/pdu.rb
|
35
|
+
- lib/snmpjr/response.rb
|
35
36
|
- lib/snmpjr/session.rb
|
36
37
|
- lib/snmpjr/target.rb
|
37
38
|
- lib/snmpjr/version.rb
|
@@ -43,6 +44,7 @@ files:
|
|
43
44
|
- spec/integration/snmpjr_spec.rb
|
44
45
|
- spec/snmpjr/getter_spec.rb
|
45
46
|
- spec/snmpjr/pdu_spec.rb
|
47
|
+
- spec/snmpjr/response_spec.rb
|
46
48
|
- spec/snmpjr/session_spec.rb
|
47
49
|
- spec/snmpjr/target_spec.rb
|
48
50
|
- spec/snmpjr_spec.rb
|
@@ -75,6 +77,7 @@ test_files:
|
|
75
77
|
- spec/integration/snmpjr_spec.rb
|
76
78
|
- spec/snmpjr/getter_spec.rb
|
77
79
|
- spec/snmpjr/pdu_spec.rb
|
80
|
+
- spec/snmpjr/response_spec.rb
|
78
81
|
- spec/snmpjr/session_spec.rb
|
79
82
|
- spec/snmpjr/target_spec.rb
|
80
83
|
- spec/snmpjr_spec.rb
|