sloe 0.3.2 → 0.4.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.
- data/README.md +9 -0
- data/lib/sloe.rb +2 -21
- data/lib/sloe/common.rb +23 -0
- data/lib/sloe/device.rb +14 -0
- data/lib/sloe/junos.rb +23 -0
- data/lib/sloe/version.rb +1 -1
- data/spec/blocks_spec.rb +25 -1
- metadata +5 -2
data/README.md
CHANGED
@@ -56,6 +56,15 @@ An alternate way to use this module is:
|
|
56
56
|
|
57
57
|
All options supported by Netconf, Net::SCP and SNMP are supported in this gem too. The :target option is aliased to the SNMP :host option so there is no need to duplicate that option key.
|
58
58
|
|
59
|
+
## Vendor specific Netconf extensions
|
60
|
+
|
61
|
+
Sloe supports vendor specific Netconf extensions. To add that vendor specific support call new() on one of the supported classes. Sloe supports the following:
|
62
|
+
|
63
|
+
*Sloe::Device - no vendor specific Netconf extensions added
|
64
|
+
*Sloe::Junos - Junos vendor specific Netconf extensions added
|
65
|
+
|
66
|
+
Just simply call Sloe::Junos.new() to get the Junos extensions added
|
67
|
+
|
59
68
|
## SUPPORT
|
60
69
|
|
61
70
|
This software is not officially supported by Juniper Networks, but by a team dedicated to helping customers, partners, and the development community. To report bug-fixes, issues, susggestions, please contact David Gethings <dgethings@juniper.net>
|
data/lib/sloe.rb
CHANGED
@@ -1,26 +1,7 @@
|
|
1
1
|
require 'sloe/version'
|
2
|
-
require '
|
3
|
-
require '
|
4
|
-
require 'snmp'
|
5
|
-
|
2
|
+
require 'sloe/device'
|
3
|
+
require 'sloe/junos'
|
6
4
|
|
7
5
|
module Sloe
|
8
|
-
class Device < Netconf::SSH
|
9
|
-
|
10
|
-
attr_reader :snmp
|
11
6
|
|
12
|
-
def initialize(args, &block)
|
13
|
-
@snmp_args = {:host => args[:target], :mib_dir => args[:mib_dir], :mib_modules => args[:mib_modules]}
|
14
|
-
@snmp = SNMP::Manager.new(@snmp_args)
|
15
|
-
|
16
|
-
if block_given?
|
17
|
-
super( args, &block )
|
18
|
-
return
|
19
|
-
else
|
20
|
-
super(args)
|
21
|
-
self.open
|
22
|
-
self
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
7
|
end
|
data/lib/sloe/common.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'net/scp'
|
2
|
+
require 'snmp'
|
3
|
+
|
4
|
+
module Sloe
|
5
|
+
class Common < Netconf::SSH
|
6
|
+
|
7
|
+
attr_reader :snmp
|
8
|
+
|
9
|
+
def initialize(args, &block)
|
10
|
+
@snmp_args = {:host => args[:target], :mib_dir => args[:mib_dir], :mib_modules => args[:mib_modules]}
|
11
|
+
@snmp = SNMP::Manager.new(@snmp_args)
|
12
|
+
|
13
|
+
if block_given?
|
14
|
+
super( args, &block )
|
15
|
+
return
|
16
|
+
else
|
17
|
+
super(args)
|
18
|
+
self.open
|
19
|
+
self
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/sloe/device.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'net/netconf'
|
2
|
+
require 'sloe/common'
|
3
|
+
|
4
|
+
module Sloe
|
5
|
+
class Device < Sloe::Common
|
6
|
+
|
7
|
+
def initialize(args, &block)
|
8
|
+
|
9
|
+
# Stop netconf gem from defaulting to :Junos and thus not loading :Junos extensions
|
10
|
+
args[:os_type] = :Netconf
|
11
|
+
super( args, &block )
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/sloe/junos.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'net/netconf/jnpr'
|
2
|
+
require 'sloe/common'
|
3
|
+
|
4
|
+
module Sloe
|
5
|
+
class Junos < Sloe::Common
|
6
|
+
|
7
|
+
# attr_reader :snmp
|
8
|
+
|
9
|
+
def initialize(args, &block)
|
10
|
+
# @snmp_args = {:host => args[:target], :mib_dir => args[:mib_dir], :mib_modules => args[:mib_modules]}
|
11
|
+
# @snmp = SNMP::Manager.new(@snmp_args)
|
12
|
+
|
13
|
+
# if block_given?
|
14
|
+
super( args, &block )
|
15
|
+
# return
|
16
|
+
# else
|
17
|
+
# super(args)
|
18
|
+
# self.open
|
19
|
+
# self
|
20
|
+
# end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/sloe/version.rb
CHANGED
data/spec/blocks_spec.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'sloe'
|
2
|
-
require '
|
2
|
+
require 'sloe/junos'
|
3
|
+
# require 'ruby-debug'
|
3
4
|
|
4
5
|
describe Sloe do
|
5
6
|
context "invoked with block" do
|
@@ -26,5 +27,28 @@ describe Sloe do
|
|
26
27
|
}
|
27
28
|
@hostname.should include @login[:target]
|
28
29
|
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
context "Junos extensions" do
|
34
|
+
before(:all) do
|
35
|
+
@login = {
|
36
|
+
:target => 'capella',
|
37
|
+
:username => 'dgethings',
|
38
|
+
:password => 'mcisamilf'
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
it "Sloe::Junos responds to Junos specific RPCs" do
|
43
|
+
Sloe::Junos.new ( @login ) { |dut|
|
44
|
+
dut.rpc.respond_to?(:lock_configuration).should be true
|
45
|
+
}
|
46
|
+
end
|
47
|
+
it "Sloe::Device does not respond to Junos specific RPCs" do
|
48
|
+
Sloe::Device.new ( @login ) { |dut|
|
49
|
+
dut.rpc.respond_to?(:lock_configuration).should be false
|
50
|
+
}
|
51
|
+
end
|
52
|
+
|
29
53
|
end
|
30
54
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sloe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: snmp
|
@@ -124,6 +124,9 @@ files:
|
|
124
124
|
- Rakefile
|
125
125
|
- lib/import-mibs.rb
|
126
126
|
- lib/sloe.rb
|
127
|
+
- lib/sloe/common.rb
|
128
|
+
- lib/sloe/device.rb
|
129
|
+
- lib/sloe/junos.rb
|
127
130
|
- lib/sloe/version.rb
|
128
131
|
- mibs/ACCOUNTING-CONTROL-MIB.yaml
|
129
132
|
- mibs/ADSL-LINE-EXT-MIB.yaml
|