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 +15 -0
- data/Rakefile +6 -0
- data/lib/sloe/common.rb +58 -0
- data/lib/sloe/version.rb +1 -1
- data/sloe.gemspec +1 -1
- metadata +8 -22
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
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
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('
|
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.
|
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
|
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:
|
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:
|
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:
|
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:
|
475
|
+
rubygems_version: 2.0.3
|
490
476
|
signing_key:
|
491
|
-
specification_version:
|
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:
|