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 +5 -13
 - data/.gitignore +1 -0
 - data/.rubocop.yml +2 -0
 - data/.ruby-version +1 -0
 - data/.semver +6 -0
 - data/.travis.yml +1 -1
 - data/Gemfile +1 -10
 - data/Rakefile +6 -6
 - data/history.rdoc +4 -0
 - data/lib/snmpjr/session.rb +1 -0
 - data/lib/snmpjr/version.rb +1 -1
 - data/lib/snmpjr/walker.rb +51 -0
 - data/lib/snmpjr/wrappers/snmp4j-agent-2.3.0.jar +0 -0
 - data/lib/snmpjr/wrappers/snmp4j.rb +2 -6
 - data/lib/snmpjr/wrappers/util.rb +9 -0
 - data/lib/snmpjr.rb +19 -8
 - data/snmpjr.gemspec +9 -0
 - data/spec/integration/{snmpjr_spec.rb → snmpjr_get_spec.rb} +0 -0
 - data/spec/integration/snmpjr_walk_spec.rb +35 -0
 - data/spec/snmpjr/walker_spec.rb +98 -0
 - data/spec/snmpjr_spec.rb +55 -27
 - metadata +148 -15
 - data/.rvmrc +0 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,15 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              data.tar.gz: !binary |-
         
     | 
| 
       6 
     | 
    
         
            -
                ZTI3OTIwODllMTgzMDhmNzk5NmFmYTFjZjIyOWJiMGNlYWQ3NmMyZA==
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 984e607b44990794ebd24b64ad23f28dc81cf794
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 830142b3571061e4b2ef4c2fa48d630cd22bece7
         
     | 
| 
       7 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       8 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       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
    
    
    
        data/.rubocop.yml
    CHANGED
    
    
    
        data/.ruby-version
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            jruby-1.7.16
         
     | 
    
        data/.semver
    ADDED
    
    
    
        data/.travis.yml
    CHANGED
    
    
    
        data/Gemfile
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'rake/clean'
         
     | 
| 
       2 
     | 
    
         
            -
            require ' 
     | 
| 
      
 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 
     | 
    
         
            -
              :" 
     | 
| 
       12 
     | 
    
         
            -
              :" 
     | 
| 
       13 
     | 
    
         
            -
              :" 
     | 
| 
       14 
     | 
    
         
            -
              :" 
     | 
| 
       15 
     | 
    
         
            -
              :" 
     | 
| 
      
 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
    
    
    
        data/lib/snmpjr/session.rb
    CHANGED
    
    
    
        data/lib/snmpjr/version.rb
    CHANGED
    
    
| 
         @@ -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
         
     | 
| 
         Binary file 
     | 
    
        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 
     | 
    
         
            -
             
     | 
| 
       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 
     | 
    
         
            -
                 
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
      
 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 
     | 
    
         
            -
                 
     | 
| 
      
 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
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -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 
     | 
    
         
            -
                 
     | 
| 
      
 16 
     | 
    
         
            +
                let(:getter) { double Snmpjr::Getter }
         
     | 
| 
       6 
17 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                   
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
      
 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 
     | 
    
         
            -
             
     | 
| 
      
 23 
     | 
    
         
            +
                subject { described_class.new(agent_details.merge({max_oids_per_request: 20})) }
         
     | 
| 
       18 
24 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
      
 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 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       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 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                      subject.get  
     | 
| 
       32 
     | 
    
         
            -
                     
     | 
| 
      
 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 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       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. 
     | 
| 
      
 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- 
     | 
| 
       12 
     | 
    
         
            -
            dependencies: 
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
              ruby 
     | 
| 
      
 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 
     | 
    
         
            -
            - . 
     | 
| 
      
 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/ 
     | 
| 
      
 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. 
     | 
| 
       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/ 
     | 
| 
      
 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
         
     |