snmpjr 0.1.7-java → 0.2.0-java

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