snmpjr 0.3.2-java → 0.3.3-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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- M2Q0Njg3ZDA2MTZhNDliMzUwZjgyOTAxZjdhZjkyYzM3MjQ3MTdmOA==
4
+ YzJkZTkwOTNhZTVlNDNlNmE5NTQ5MWQwNGZkNTdmZGE0ZGU2OGRhNA==
5
5
  data.tar.gz: !binary |-
6
- MzVkNDJmYWQzMDNiMmFmNGUwZTRjYjE1ZGZiZTdjYTQwZWM4MDYzNw==
6
+ ODk5YjVmMGQwYzU5MGM1OWM5ZmY0ZWFiZjdhNWE0NGYwYzYwOGRiNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MTc0NDVlNDJiMTY3ZTcwMzhjNjkwNjk3YzhhZDBmOTgzZjVmMDU4M2RkMDlj
10
- OWU5OTY1MGEwMDk3YTJiYjRiM2UzMzI1ZTlmZDRlNGYwMDZhMWVjMTljNzIx
11
- MTkzNDQwOTU5ODE3ZjIzNjQxYjQ3MThkNzkxNWViZWM3Njg2ZWU=
9
+ NTJiN2QwZWM3NTA4ODYzODMzZjk5ZDg5OGI0YWVlZmY1OGI3NzczNTVjNTcy
10
+ ZDEyOTJlOWViMGRjMzA2YjBjYWUxZDA3OTZmMTExODMwZTljOTM0ZTIwYzE0
11
+ MmVjMzA4YWMxZjhkN2Q4ODQ3M2E2N2JiNDJhYWFmNjlmOTEyYmE=
12
12
  data.tar.gz: !binary |-
13
- YThiNGQ0MDUxMGRkYWZjOTk4ZmRiM2I4MWFiNWY1YzFlNmZjOGQ1MjE2NDVj
14
- MTMxMjRkNzMyZmZhZjUwY2FlN2IzMjYyNjA2NmJmZmY3ODE4Y2JlZjM4ZDJj
15
- M2IwYzZhOTIyMDk0ZmRlMmI2NjQ2NWE2ODZmYThhNTE2ZDYzMDQ=
13
+ YTBlYmUwNzE0Yjg3NDRiNjUxM2QzMzVjMWZiODFhZTJhNDRhOTZlNDNlNDMw
14
+ ZGNkNWNkNTk4OGNlOTc4YzZmNTdhODdmZjkxMTI3OTJkMDdjMjMxYjEzM2Mz
15
+ YTJkMjBjN2RhZmYxY2U4OTRlN2UyMGM1MmNlNWIwNTRmMTYzZDA=
@@ -1,3 +1,5 @@
1
+ == v0.3.3 (14 January 2015)
2
+
1
3
  == v0.3.3 (06 January 2015)
2
4
 
3
5
  == v0.3.2 (06 January 2015)
@@ -1,11 +1,12 @@
1
1
  class Snmpjr
2
2
  class Response
3
- attr_reader :error, :oid
3
+ attr_reader :error, :oid, :type
4
4
 
5
5
  def initialize response = {}
6
6
  @error = response[:error] || ''
7
7
  @value = response[:value] || ''
8
8
  @oid = response[:oid] || ''
9
+ @type = response[:type] || ''
9
10
  end
10
11
 
11
12
  def error?
@@ -16,13 +17,17 @@ class Snmpjr
16
17
  end
17
18
  end
18
19
 
20
+ def to_h
21
+ { oid: @oid, value: @value, type: @type }
22
+ end
23
+
19
24
  def to_s
20
25
  @value
21
26
  end
22
27
 
23
28
  def ==(other)
24
29
  return false unless other.instance_of?(self.class)
25
- @error == other.error && to_s == other.to_s && @oid == other.oid
30
+ @error == other.error && to_h == other.to_h
26
31
  end
27
32
  end
28
33
  end
@@ -28,10 +28,6 @@ class Snmpjr
28
28
  end
29
29
  end
30
30
 
31
- def error_information pdu, target
32
- "#{target.address}, OIDs: #{pdu.to_array.map {|binding| binding.oid.to_s }.inspect}"
33
- end
34
-
35
31
  def close
36
32
  @snmp.close
37
33
  end
@@ -42,10 +38,13 @@ class Snmpjr
42
38
  if variable_binding.is_exception
43
39
  Snmpjr::Response.new(oid: variable_binding.oid.to_s, error: variable_binding.variable.to_s)
44
40
  else
45
- Snmpjr::Response.new(oid: variable_binding.oid.to_s, value: variable_binding.variable.to_s)
41
+ Snmpjr::Response.new(oid: variable_binding.oid.to_s, value: variable_binding.variable.to_s, type: variable_binding.variable.syntax_string)
46
42
  end
47
43
  end
48
44
 
45
+ def error_information pdu, target
46
+ "#{target.address}, OIDs: #{pdu.to_array.map {|binding| binding.oid.to_s }.inspect}"
47
+ end
49
48
  end
50
49
 
51
50
  class TargetTimeoutError < StandardError
@@ -30,7 +30,7 @@ class Snmpjr
30
30
 
31
31
  def extract_variable_bindings variable_bindings
32
32
  variable_bindings.flat_map {|vb|
33
- Snmpjr::Response.new(oid: vb.oid.to_s, value: vb.variable.to_s)
33
+ Snmpjr::Response.new(oid: vb.oid.to_s, value: vb.variable.to_s, type: vb.variable.syntax_string)
34
34
  }
35
35
  end
36
36
 
@@ -5,7 +5,7 @@ require 'snmpjr/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'snmpjr'
8
- spec.version = '0.3.2'
8
+ spec.version = '0.3.3'
9
9
  spec.authors = ['Zen Kyprianou']
10
10
  spec.email = ['zen@kyprianou.eu']
11
11
  spec.summary = 'Simple SNMP interface for JRuby'
@@ -16,19 +16,20 @@ describe "snmpjr for snmp v2c" do
16
16
  end
17
17
 
18
18
  it 'can perform a simple synchronous get request on an snmp agent' do
19
- expect(subject.get '1.3.6.1.2.1.1.1.0').to eq Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.1.0', value: 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m')
19
+ expect(subject.get '1.3.6.1.2.1.1.1.0').to eq Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.1.0', value: 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m', type: 'OCTET STRING')
20
20
  end
21
21
 
22
- let(:expected) { [Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.1.0', value: 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m'),
23
- Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.5.0', value: 'zeus.snmplabs.com')] }
22
+ let(:expected) { [Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.1.0', value: 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m', type: 'OCTET STRING'),
23
+ Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.5.0', value: 'zeus.snmplabs.com', type: 'OCTET STRING'),
24
+ Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.7.0', value: '72', type: 'Integer32')] }
24
25
  it 'can perform a series of gets if passed an array of oids' do
25
- expect(subject.get ['1.3.6.1.2.1.1.1.0', '1.3.6.1.2.1.1.5.0']).to eq expected
26
+ expect(subject.get ['1.3.6.1.2.1.1.1.0', '1.3.6.1.2.1.1.5.0', '1.3.6.1.2.1.1.7.0']).to eq expected
26
27
  end
27
28
 
28
29
  context "when an invalid oid is requested" do
29
30
 
30
31
  let(:expected) { [Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.5', error: 'noSuchInstance'),
31
- Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.5.0', value: 'zeus.snmplabs.com')] }
32
+ Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.5.0', value: 'zeus.snmplabs.com', type: 'OCTET STRING')] }
32
33
 
33
34
  it 'returns an error' do
34
35
  expect(subject.get ['1.3.6.1.2.1.1.5', '1.3.6.1.2.1.1.5.0']).to eq expected
@@ -19,8 +19,9 @@ describe "snmpjr for snmp v2c" do
19
19
  it 'can perform a simple synchronous walk request on an snmp agent' do
20
20
  response = subject.walk '1.3.6.1.2.1.1'
21
21
  expect(response.count).to eq 11
22
- expect(response.first.to_s).to eq 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m'
23
- expect(response.last.to_s).to match(/^\d+\:\d+:\d+\.\d+$/)
22
+ expect(response.first.to_h).to eq(
23
+ { oid: '1.3.6.1.2.1.1.1.0', value: 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m', type: 'OCTET STRING' }
24
+ )
24
25
  end
25
26
 
26
27
  context "when a non existent subtree is walked" do
@@ -18,13 +18,14 @@ describe "snmpjr for snmp v3" do
18
18
  end
19
19
 
20
20
  it 'can perform a simple synchronous get request on an snmp agent' do
21
- expect(subject.get '1.3.6.1.2.1.1.1.0').to eq Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.1.0', value: 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m')
21
+ expect(subject.get '1.3.6.1.2.1.1.1.0').to eq Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.1.0', value: 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m', type: 'OCTET STRING')
22
22
  end
23
23
 
24
- let(:expected) { [Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.1.0', value: 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m'),
25
- Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.5.0', value: 'zeus.snmplabs.com')] }
24
+ let(:expected) { [Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.1.0', value: 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m', type: 'OCTET STRING'),
25
+ Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.5.0', value: 'zeus.snmplabs.com', type: 'OCTET STRING'),
26
+ Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.7.0', value: '72', type: 'Integer32')] }
26
27
  it 'can perform a series of gets if passed an array of oids' do
27
- expect(subject.get ['1.3.6.1.2.1.1.1.0', '1.3.6.1.2.1.1.5.0']).to eq expected
28
+ expect(subject.get ['1.3.6.1.2.1.1.1.0', '1.3.6.1.2.1.1.5.0', '1.3.6.1.2.1.1.7.0']).to eq expected
28
29
  end
29
30
 
30
31
  context "when an invalid oid is requested" do
@@ -38,7 +39,7 @@ describe "snmpjr for snmp v3" do
38
39
  end
39
40
 
40
41
  let(:expected) { [Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.5', error: 'noSuchInstance'),
41
- Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.5.0', value: 'zeus.snmplabs.com')] }
42
+ Snmpjr::Response.new(oid: '1.3.6.1.2.1.1.5.0', value: 'zeus.snmplabs.com', type: 'OCTET STRING')] }
42
43
 
43
44
  it 'returns an error' do
44
45
  expect(subject.get ['1.3.6.1.2.1.1.5', '1.3.6.1.2.1.1.5.0']).to eq expected
@@ -20,8 +20,9 @@ describe "snmpjr for snmp v3" do
20
20
  it 'can perform a simple synchronous walk request on an snmp agent' do
21
21
  response = subject.walk '1.3.6.1.2.1.1'
22
22
  expect(response.count).to eq 11
23
- expect(response.first.to_s).to eq 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m'
24
- expect(response.last.to_s).to match(/^\d+\:\d+:\d+\.\d+$/)
23
+ expect(response.first.to_h).to eq(
24
+ { oid: '1.3.6.1.2.1.1.1.0', value: 'SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m', type: 'OCTET STRING' }
25
+ )
25
26
  end
26
27
 
27
28
  context "when a non existent subtree is walked" do
@@ -5,12 +5,12 @@ describe Snmpjr::Response do
5
5
  describe '.new' do
6
6
  context 'when initialized with a value' do
7
7
  it 'assigns that value' do
8
- response = described_class.new(oid: 'some oid', value: 'Some value')
9
- expect(response.to_s).to eq 'Some value'
8
+ response = described_class.new(oid: 'some oid', value: 'Some value', type: 'Some type')
9
+ expect(response.to_h).to eq({ oid: 'some oid', value: 'Some value', type: 'Some type' })
10
10
  end
11
11
 
12
12
  it 'sets the error to an empty string' do
13
- response = described_class.new(oid: 'some oid', value: 'Some value')
13
+ response = described_class.new(oid: 'some oid', value: 'Some value', type: 'Some type')
14
14
  expect(response.error).to eq ''
15
15
  end
16
16
  end
@@ -42,30 +42,25 @@ describe Snmpjr::Response do
42
42
  end
43
43
 
44
44
  it 'returns false if there isnt an error' do
45
- response = described_class.new(oid: 'some oid', value: 'Some value')
45
+ response = described_class.new(oid: 'some oid', value: 'Some value', type: 'Some type')
46
46
  expect(response.error?).to be_falsey
47
47
  end
48
48
  end
49
49
 
50
50
  describe '#==' do
51
51
  context 'when the objects are equal' do
52
- let(:other) { Snmpjr::Response.new(oid: 'some oid', value: 'some value') }
52
+ let(:other) { Snmpjr::Response.new(oid: 'some oid', value: 'some value', type: 'Some type') }
53
53
  it 'returns true' do
54
- expect(described_class.new(oid: 'some oid', value: 'some value')).to eq other
54
+ expect(described_class.new(oid: 'some oid', value: 'some value', type: 'Some type')).to eq other
55
55
  end
56
56
  end
57
57
 
58
- context 'when the objects are not equal' do
59
- let(:other) { Snmpjr::Response.new(oid: 'some oid', error: 'some value') }
60
- it 'returns true' do
61
- expect(described_class.new(oid: 'some oid', error: 'some error')).to_not eq other
62
- end
63
- end
64
-
65
- context 'when the oids are different' do
66
- let(:other) { Snmpjr::Response.new(oid: 'some oid', error: 'some error') }
67
- it 'returns true' do
68
- expect(described_class.new(oid: 'another oid', error: 'some error')).to_not eq other
58
+ context 'when the objects are different' do
59
+ context 'when the objects are equal' do
60
+ let(:other) { Snmpjr::Response.new(oid: 'some oid', error: 'some error') }
61
+ it 'returns false' do
62
+ expect(described_class.new(oid: 'some oid', error: 'another error')).to_not eq other
63
+ end
69
64
  end
70
65
  end
71
66
 
@@ -73,12 +68,12 @@ describe Snmpjr::Response do
73
68
  let(:other) { double :response }
74
69
  before do
75
70
  allow(other).to receive(:error).and_return ''
76
- allow(other).to receive(:to_s).and_return 'some value'
71
+ allow(other).to receive(:to_h).and_return({ value: 'some value', type: 'Some type' })
77
72
  allow(other).to receive(:oid).and_return 'some oid'
78
73
  end
79
74
 
80
75
  it 'returns false' do
81
- expect(described_class.new(oid: 'some oid', value: 'some value')).to_not eq other
76
+ expect(described_class.new(oid: 'some oid', value: 'some value', type: 'Some type')).to_not eq other
82
77
  end
83
78
  end
84
79
  end
@@ -37,9 +37,11 @@ describe Snmpjr::SessionV2C do
37
37
 
38
38
  before do
39
39
  allow(snmp_session).to receive(:send).and_return response
40
+ allow(vb1).to receive_message_chain('variable.syntax_string')
40
41
  allow(vb1).to receive_message_chain('variable.to_s')
41
42
  allow(vb1).to receive_message_chain('oid.to_s') { "1.2.3" }
42
43
  allow(vb1).to receive(:is_exception)
44
+ allow(vb2).to receive_message_chain('variable.syntax_string')
43
45
  allow(vb2).to receive_message_chain('variable.to_s')
44
46
  allow(vb2).to receive_message_chain('oid.to_s') { "4.5.6" }
45
47
  allow(vb2).to receive(:is_exception)
@@ -40,6 +40,7 @@ describe Snmpjr::Walker do
40
40
  before do
41
41
  allow(tree_util).to receive(:getSubtree).with(target, oid).and_raise Exception.new 'noAccess'
42
42
  end
43
+
43
44
  it 'raises a runtime error' do
44
45
  expect{
45
46
  subject.walk oid
@@ -49,6 +50,7 @@ describe Snmpjr::Walker do
49
50
 
50
51
  context 'when a target times out' do
51
52
  let(:tree_event_1) { double :tree_event_1 }
53
+
52
54
  before do
53
55
  allow(tree_event_1).to receive(:is_error?).and_return true
54
56
  allow(tree_event_1).to receive(:error_message).and_return 'Request timed out.'
@@ -63,6 +65,7 @@ describe Snmpjr::Walker do
63
65
 
64
66
  context 'when a random error occurs' do
65
67
  let(:tree_event_1) { double :tree_event_1 }
68
+
66
69
  before do
67
70
  allow(tree_event_1).to receive(:is_error?).and_return true
68
71
  allow(tree_event_1).to receive(:error_message).and_return 'noAccess'
@@ -85,8 +88,8 @@ describe Snmpjr::Walker do
85
88
  end
86
89
 
87
90
  it 'performs a synchronous walk' do
88
- expect(subject.walk oid).to match_array [Snmpjr::Response.new(oid: vb1.oid.to_s, value: vb1.variable.to_s),
89
- Snmpjr::Response.new(oid: vb2.oid.to_s, value: vb2.variable.to_s)]
91
+ expect(subject.walk oid).to match_array [Snmpjr::Response.new(oid: vb1.oid.to_s, value: vb1.variable.to_s, type: vb1.variable.syntax_string),
92
+ Snmpjr::Response.new(oid: vb2.oid.to_s, value: vb2.variable.to_s, type: vb1.variable.syntax_string)]
90
93
  end
91
94
 
92
95
  it 'closes the snmp session' do
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.3.2
4
+ version: 0.3.3
5
5
  platform: java
6
6
  authors:
7
7
  - Zen Kyprianou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-06 00:00:00.000000000 Z
11
+ date: 2015-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-n-bake