sloe 0.6.0 → 0.7.0

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 ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YTVlZTU2MDNhY2Q4MmMxYmUxYzU1NjI0NTVmNGM5MzQ1MmEzZTc5YQ==
5
+ data.tar.gz: !binary |-
6
+ MTAzZjBkM2VkNjg1NzQ0MjY2OWM3NjU5MzFhMjhhOGU5MWZlNDU1ZQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MTVjOTJkZGNkOGFkNmMzYTM5MzcwN2YxODM3NDM0YjRkMDU4OTc3MzEwZjBi
10
+ ZmFlNTMwYzFhOTM0OGZhMGRlNzQ5NTRjZDIxZTI2NWY5MDg0MjE3YzVmZDk4
11
+ ZTVjNjNiYjdlZmVmYTdhZTQ4NWY4ODY5ZTNlM2MzZDI0YTY2YTU=
12
+ data.tar.gz: !binary |-
13
+ MDU1ZGI2OWVjZWJkYjRjYmMxNDEzZDMyNTYwNGEyYmIxOWMyZGYyOTc0Yzc3
14
+ NDNiYzRjMDdlZmE1NzI1NWU1ZTI3N2MwNzc5NTQxM2MwZGE3Y2QxZDc2OTll
15
+ Y2QxZTlhNzcwMDYzNWVjZjllMmU5NTdkYjEzNDRhOTBjMWY1ZjU=
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task :default => :spec
7
+ task :test => :spec
data/lib/sloe/common.rb CHANGED
@@ -7,6 +7,7 @@ module Sloe
7
7
 
8
8
  # Provides access to the SNMP object
9
9
  attr_reader :snmp
10
+ attr_accessor :logging
10
11
 
11
12
  # Create Sloe::Common object.
12
13
  # Accepts arguments for {http://rubydoc.info/gems/netconf/Netconf/SSH:initialize Netconf::SSH#new} and {http://rubydoc.info/gems/snmp/SNMP/Manager:initialize SNMP::Manager#new}
@@ -17,6 +18,11 @@ module Sloe
17
18
  :mib_modules => args[:mib_modules]
18
19
  }
19
20
  @snmp = SNMP::Manager.new(@snmp_args)
21
+
22
+ # logging of RPCs is optional. If arguments are provided then
23
+ # they must be needed/enabled. This also requires extending
24
+ # Netconf::RPC::Executor.method_missing(), which is done below
25
+ self.logging = args[:logging]
20
26
 
21
27
  if block_given?
22
28
  super( args, &block )
@@ -29,3 +35,55 @@ module Sloe
29
35
  end
30
36
  end
31
37
  end
38
+
39
+ # monkey patch to include logging of RPCs
40
+ module Netconf
41
+ class Transport
42
+ attr_accessor :logging
43
+
44
+ def initialize( &block )
45
+
46
+ @state = :NETCONF_CLOSED
47
+ @os_type = @args[:os_type] || Netconf::DEFAULT_OS_TYPE
48
+
49
+ @rpc = Netconf::RPC::Executor.new( self, @os_type, self.logging )
50
+ @rpc_message_id = 1
51
+
52
+ if block_given?
53
+ open( &block = nil ) # do not pass this block to open()
54
+ yield self
55
+ close()
56
+ end
57
+
58
+ end
59
+ end
60
+ module RPC
61
+ class Executor
62
+
63
+ def initialize( trans, os_type, logging )
64
+ @trans = trans
65
+ @logging = logging
66
+ begin
67
+ extend Netconf::RPC::const_get( os_type )
68
+ rescue NameError
69
+ # no extensions available ...
70
+ end
71
+ end
72
+
73
+ def method_missing( method, params = nil, attrs = nil )
74
+ rpc = Netconf::RPC::Builder.send( method, params, attrs )
75
+ if @logging
76
+ # log_attrs = attrs[:format] = 'text' ? attrs : {:format => 'text'}
77
+ log_attrs = attrs ? attrs : {}
78
+ log_attrs[:format] = 'text'
79
+ Dir.mkdir @logging[:path]
80
+ File.open("#{@logging[:path]}/#{@logging[:file]}", "w") { |file|
81
+ file.write rpc
82
+ file.write @trans.rpc_exec( Netconf::RPC::Builder.send( method, params, log_attrs ))
83
+ }
84
+ end
85
+ @trans.rpc_exec( rpc )
86
+ end
87
+ end
88
+ end
89
+ end
data/lib/sloe/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Sloe
2
2
  # Current version
3
- VERSION = "0.6.0"
3
+ VERSION = "0.7.0"
4
4
  end
data/sloe.gemspec CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.add_dependency('net-scp', '>= 1.0.4')
18
18
  gem.add_development_dependency('rspec', '>= 2.12.0')
19
19
  gem.add_development_dependency('yard')
20
- gem.add_development_dependency('ruby-debug19', '>= 0.11.6')
20
+ gem.add_development_dependency('debugger', '>= 1.6.0')
21
21
 
22
22
  gem.files = `git ls-files`.split($/)
23
23
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sloe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
5
- prerelease:
4
+ version: 0.7.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - David Gethings
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-27 00:00:00.000000000 Z
11
+ date: 2013-06-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: snmp
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: netconf
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: net-scp
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ! '>='
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ! '>='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ! '>='
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: yard
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ! '>='
84
74
  - !ruby/object:Gem::Version
@@ -86,27 +76,24 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ! '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
- name: ruby-debug19
84
+ name: debugger
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ! '>='
100
88
  - !ruby/object:Gem::Version
101
- version: 0.11.6
89
+ version: 1.6.0
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ! '>='
108
95
  - !ruby/object:Gem::Version
109
- version: 0.11.6
96
+ version: 1.6.0
110
97
  description: Sloe uses NETCONF and/or SNMP to gather data regarding a network device.
111
98
  Designed to help with automated testing this gem can also be used with things like
112
99
  Ruby on Rails
@@ -468,27 +455,26 @@ files:
468
455
  - spec_helper.rb
469
456
  homepage: https://github.com/dgjnpr/Sloe
470
457
  licenses: []
458
+ metadata: {}
471
459
  post_install_message:
472
460
  rdoc_options: []
473
461
  require_paths:
474
462
  - lib
475
463
  required_ruby_version: !ruby/object:Gem::Requirement
476
- none: false
477
464
  requirements:
478
465
  - - ! '>='
479
466
  - !ruby/object:Gem::Version
480
467
  version: '0'
481
468
  required_rubygems_version: !ruby/object:Gem::Requirement
482
- none: false
483
469
  requirements:
484
470
  - - ! '>='
485
471
  - !ruby/object:Gem::Version
486
472
  version: '0'
487
473
  requirements: []
488
474
  rubyforge_project:
489
- rubygems_version: 1.8.24
475
+ rubygems_version: 2.0.3
490
476
  signing_key:
491
- specification_version: 3
477
+ specification_version: 4
492
478
  summary: A one stop shop for collecting data from a network device using NETCONF or
493
479
  SNMP
494
480
  test_files: