snmpjr 0.1.3-java → 0.1.4-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|