sloe 0.6.0 → 0.7.0

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