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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NGVjMjA0ZTY4YTdmN2Q3YWZkYzJlNTAzM2NjN2RjZDhjYmVjYWEwNw==
5
- data.tar.gz: !binary |-
6
- ZTI3OTIwODllMTgzMDhmNzk5NmFmYTFjZjIyOWJiMGNlYWQ3NmMyZA==
2
+ SHA1:
3
+ metadata.gz: 984e607b44990794ebd24b64ad23f28dc81cf794
4
+ data.tar.gz: 830142b3571061e4b2ef4c2fa48d630cd22bece7
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZmIzZDU5ZTE3MWUyMWQzZThlYWQwZmJjNDExZmMwYmE2ZGM1MjI1YjQ2YzJm
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
@@ -1,3 +1,4 @@
1
+ *.DS_Store
1
2
  log/*
2
3
  *.swo
3
4
  *.swp
data/.rubocop.yml CHANGED
@@ -1,3 +1,5 @@
1
1
  AllCops:
2
2
  Exclude:
3
3
  - 'vendor/**/*'
4
+ Metrics/LineLength:
5
+ Max: 132
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ jruby-1.7.16
data/.semver ADDED
@@ -0,0 +1,6 @@
1
+ ---
2
+ :major: 0
3
+ :minor: 2
4
+ :patch: '0'
5
+ :special: ''
6
+ :metadata: ''
data/.travis.yml CHANGED
@@ -2,7 +2,7 @@ language: ruby
2
2
  branches:
3
3
  only:
4
4
  - master
5
- - /^[0-9]+\.[0-9]+\.[0-9]+/
5
+ - /^v[0-9]+\.[0-9]+\.[0-9]+/
6
6
  env:
7
7
  global:
8
8
  - CODECLIMATE_REPO_TOKEN=151e29085225a0d503821bd67ad8d5dadddb7352fe0d585512c325990c85492b
data/Gemfile CHANGED
@@ -1,12 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- group :test do
4
- gem 'rake_rack'
5
- gem 'coveralls', require: false
6
- gem 'codeclimate-test-reporter', require: false
7
- gem 'rubocop'
8
- gem 'pry'
9
- gem 'rspec'
10
- gem 'rake'
11
- gem 'simplecov'
12
- end
3
+ gemspec
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'rake/clean'
2
- require 'rake_rack'
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
- :"rake_rack:check_external_dependencies",
12
- :"rake_rack:code_quality:all",
13
- :"rake_rack:rspec",
14
- :"rake_rack:coverage:check_specs",
15
- :"rake_rack:ok"
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
@@ -1,3 +1,7 @@
1
+ == v0.2.0 (27 October 2014)
2
+
3
+ * Add SNMP Walk functionality
4
+
1
5
  == 0.1.7 (16 October 2014)
2
6
 
3
7
  * Fix travis.yml not building tag properly
@@ -4,6 +4,7 @@ require 'snmpjr/target_timeout_error'
4
4
 
5
5
  class Snmpjr
6
6
  class Session
7
+ attr_reader :snmp
7
8
 
8
9
  def initialize
9
10
  @snmp = Snmpjr::Wrappers::Snmp.new(Snmpjr::Wrappers::Transport::DefaultUdpTransportMapping.new)
@@ -1,3 +1,3 @@
1
1
  class Snmpjr
2
- VERSION = "0.1.7"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -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
@@ -1,11 +1,7 @@
1
1
  class Snmpjr
2
2
  module Wrappers
3
- begin
4
- require 'java'
5
- require 'snmpjr/wrappers/snmp4j-2.3.1.jar'
6
- rescue
7
- raise "Snmpjr requires JRuby"
8
- end
3
+ require 'java'
4
+ require 'snmpjr/wrappers/snmp4j-2.3.1.jar'
9
5
 
10
6
  include_package 'org.snmp4j'
11
7
  end
@@ -0,0 +1,9 @@
1
+ require 'snmpjr/wrappers/snmp4j'
2
+
3
+ class Snmpjr
4
+ module Wrappers
5
+ module Util
6
+ include_package 'org.snmp4j.util'
7
+ end
8
+ end
9
+ end
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
- def get oids
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
- case oids.class.to_s
26
- when 'String'
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
- when 'Array'
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
@@ -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
- context "when the call is synchronous" do
16
+ let(:getter) { double Snmpjr::Getter }
6
17
 
7
- let(:target) { double Snmpjr::Target }
8
- let(:community_target) { double :community_target }
9
- let(:getter) { double Snmpjr::Getter }
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
- let(:agent_details) { { host: '127.0.0.1', port: 161, community: 'some_community', timeout: 50, retries: 50 } }
23
+ subject { described_class.new(agent_details.merge({max_oids_per_request: 20})) }
18
24
 
19
- subject { described_class.new(agent_details.merge({max_oids_per_request: 20})) }
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
- context 'when passed a single oid' do
22
- it 'performs a synchronous get' do
23
- expect(getter).to receive(:get).with('1.2.3.4.5.6')
24
- subject.get '1.2.3.4.5.6'
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
- context 'when passed multiple oids' do
29
- it 'performs a get multiple using the getter' do
30
- expect(getter).to receive(:get_multiple).with(['1.2.3.4.5.6', '6.5.4.3.2.1'])
31
- subject.get ['1.2.3.4.5.6', '6.5.4.3.2.1']
32
- end
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
- context 'when an invalid argument was passed in' do
36
- it 'raises an ArgumentError' do
37
- expect {
38
- subject.get({'oid_value' => '1.3.4.5.6'})
39
- }.to raise_error ArgumentError
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.1.7
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-16 00:00:00.000000000 Z
12
- dependencies: []
13
- description: Snmpjr aims to provide a clean and simple interface to use SNMP in your
14
- ruby code. It will wrap the popular SNMP4J library in Java.
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
- - .rvmrc
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/snmpjr_spec.rb
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.4.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/snmpjr_spec.rb
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