sloe 0.8.5 → 0.8.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 42fe5c84de5b299199ac4cbdc8410907fa92f966
4
- data.tar.gz: 244610b987c788afdac45093de958878dc77ac44
3
+ metadata.gz: 70dbc4a381ed8fdeedc2880478b1505fd52ca7c7
4
+ data.tar.gz: b0569e9879ac1c7009b040334a382d659fe0a589
5
5
  SHA512:
6
- metadata.gz: 80417d5d6395447689ded0445a4d1ddb6fd20530d1db131dd1f5248273217aed333556199d0237de98ea7ed773c6659d2c0ac15d26a92144767626a0b691a75f
7
- data.tar.gz: 0a3ec219af1ab3429796eb3a612ba81d13ffc9cb710e1784405b26ff60af2421f4aa2cbb06cd32f92735a26cbd12bb7b991e08c3ef91a32e2fbf8b3284da1349
6
+ metadata.gz: 3213a4ef90102fca971c467eba65efbb3c51f1c39955eaf95cd708fafed5f1d4195a6147d1ac75baf10a63a58b8d3bdbad15100cc4eb3a270d1ded306a77b9aa
7
+ data.tar.gz: 2cbba263c6c19e5b3b97cc46f21a8fafe7ea0bc781f273001a7ef72826dc853663b98035efcc8b1b25f2fd363fcd51dc25376b12ab1c32337156de4c8ebabf57
data/lib/sloe/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Sloe
2
2
  # Current version
3
- VERSION = "0.8.5"
3
+ VERSION = "0.8.6"
4
4
  end
data/sloe.gemspec CHANGED
@@ -12,15 +12,16 @@ Gem::Specification.new do |gem|
12
12
  gem.summary = %q{A one stop shop for collecting data from a network device using NETCONF or SNMP}
13
13
  gem.homepage = "https://github.com/dgjnpr/Sloe"
14
14
 
15
- gem.add_dependency('snmp', '~> 1.1')
16
- gem.add_dependency('netconf', '~> 0.3')
17
- gem.add_dependency('net-scp', '~> 1.0')
18
- gem.add_development_dependency('rspec', '~> 2.12')
19
- gem.add_development_dependency('yard')
20
- # gem.add_development_dependency('pry-debugger')
21
- gem.add_development_dependency('simplecov')
22
- gem.add_development_dependency('ci_reporter')
23
- gem.add_development_dependency('rake')
15
+ gem.add_dependency('snmp', '~> 1.2')
16
+ gem.add_dependency('net-netconf', '~> 0.3')
17
+ gem.add_dependency('net-scp', '~> 1.2')
18
+ gem.add_development_dependency('rspec', '~> 3.4')
19
+ gem.add_development_dependency('yard', '~> 0.8')
20
+ gem.add_development_dependency('simplecov', '~> 0.11')
21
+ gem.add_development_dependency('ci_reporter', '~> 2.0')
22
+ gem.add_development_dependency('ci_reporter_rspec')
23
+ gem.add_development_dependency('rake', '>= 10')
24
+ gem.add_development_dependency('pry-byebug', '~> 3.3')
24
25
 
25
26
  gem.files = `git ls-files`.split($/)
26
27
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
data/spec/blocks_spec.rb CHANGED
@@ -1,52 +1,31 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Sloe do
4
+ let(:login) { {target: 'crtj-0dc1-0001', username: 'netadmin', password: 'pass123'} }
4
5
  context "invoked with block" do
5
- before(:all) do
6
- @login = {
7
- :target => 'capella',
8
- :username => 'netconf',
9
- :password => 'netconf'
10
- }
11
- @hostname = ''
12
- end
13
-
14
6
  it "calls Netconf RPC" do
15
- Sloe::Device.new( @login ) { |dut|
16
- sw_info = dut.rpc.get_system_information
17
- @hostname = sw_info.xpath('//host-name').text
7
+ hostname = ''
8
+ Sloe::Device.new(login) { |dut|
9
+ hostname = dut.rpc.get_system_information.xpath('//host-name').text
18
10
  }
19
- @hostname.should include @login[:target]
11
+ expect(hostname).to include login[:target]
20
12
  end
21
13
 
22
14
  it "calls SNMP RPC" do
23
- Sloe::Device.new ( @login ) { |dut|
24
- @hostname = dut.snmp.get_value( 'sysName.0' ).to_s
15
+ hostname = ''
16
+ Sloe::Device.new (login) { |dut|
17
+ hostname = dut.snmp.get_value( 'sysName.0' ).to_s
25
18
  }
26
- @hostname.should include @login[:target]
19
+ expect(hostname).to include login[:target]
27
20
  end
28
-
29
21
  end
30
22
 
31
23
  context "Junos extensions" do
32
- before(:all) do
33
- @login = {
34
- :target => 'capella',
35
- :username => 'netconf',
36
- :password => 'netconf'
37
- }
38
- end
39
-
40
24
  it "Sloe::Junos responds to Junos specific RPCs" do
41
- Sloe::Junos.new ( @login ) { |dut|
42
- dut.rpc.respond_to?(:lock_configuration).should be true
43
- }
25
+ expect( Sloe::Junos.new(login).rpc ).to respond_to(:lock_configuration)
44
26
  end
45
27
  it "Sloe::Device does not respond to Junos specific RPCs" do
46
- Sloe::Device.new ( @login ) { |dut|
47
- dut.rpc.respond_to?(:lock_configuration).should be false
48
- }
28
+ expect( Sloe::Device.new(login).rpc ).to_not respond_to(:lock_configuration)
49
29
  end
50
-
51
30
  end
52
31
  end
data/spec/methods_spec.rb CHANGED
@@ -1,107 +1,74 @@
1
1
  require 'sloe/junos'
2
2
 
3
3
  describe Sloe do
4
-
5
- before(:all) do
6
- @jnx_mibs = Dir.glob("./mibs/JUNIPER-*.yaml").map { |f| File.basename(f, '.yaml') }
7
- @args = {
8
- :target => 'capella',
9
- :username => 'netconf',
10
- :password => 'netconf',
11
- :mib_dir => './mibs',
12
- :mib_modules => ["SNMPv2-SMI", "SNMPv2-MIB", "IF-MIB", "IP-MIB", "TCP-MIB", "UDP-MIB"].concat(@jnx_mibs)
13
- }
14
-
15
- @dut = Sloe::Junos.new(@args)
16
- end
4
+ let(:jnx_mibs) { Dir.glob("./mibs/JUNIPER-*.yaml").map { |f| File.basename(f, '.yaml') } }
5
+ let(:login) { {
6
+ target: 'crtj-0dc1-0001',
7
+ username: 'netadmin',
8
+ password: 'pass123',
9
+ mib_dir: './mibs',
10
+ mib_modules: ["SNMPv2-SMI", "SNMPv2-MIB", "IF-MIB", "IP-MIB", "TCP-MIB", "UDP-MIB"].concat(jnx_mibs) }
11
+ }
12
+ subject(:dut) { Sloe::Junos.new(login) }
17
13
 
18
14
  context "SNMP API" do
19
15
  it "snmp.get_value() returns valid value" do
20
- @dut.snmp.get_value('sysDescr.0').should =~ /^Juniper Networks,/
16
+ expect( dut.snmp.get_value('sysDescr.0') ).to =~ /^Juniper Networks,/
21
17
  end
22
18
  it "snmp.get() returns one PDU" do
23
- @pdu = @dut.snmp.get('sysDescr.0')
24
- @pdu.varbind_list.should have(1).item
19
+ expect( dut.snmp.get('sysDescr.0').varbind_list.size ).to eq(1)
25
20
  end
26
21
  it "snmp.get_bulk() returns a list of PDUs" do
27
- @pdu = @dut.snmp.get_bulk(0, 5, 'system')
28
- @pdu.varbind_list.should have(5).items
22
+ expect( dut.snmp.get_bulk(0, 5, 'system').varbind_list.size ).to eq(5)
29
23
  end
30
24
  it "snmp.get_next() returns one PDU" do
31
- @pdu = @dut.snmp.get_next('system')
32
- @pdu.varbind_list.should have(1).item
25
+ expect( dut.snmp.get_next('system').varbind_list.size ).to eq(1)
33
26
  end
34
27
  it "snmp.walk() returns a list of PDUs none of which are nil" do
35
- @dut.snmp.walk('system') { |vb| vb.should_not be_nil }
28
+ expect { dut.snmp.walk('system') }.not_to eq(nil)
36
29
  end
37
30
  end
38
31
 
39
32
  context "JNX Enterprise MIBs" do
40
33
  it "jnxBoxDescr.0 has a valid value" do
41
- @dut.snmp.get_value('jnxBoxDescr.0').should =~ /^Juniper/
34
+ expect( dut.snmp.get_value('jnxBoxDescr.0') ).to =~ /^Juniper/
42
35
  end
43
36
  end
44
37
 
45
38
  context "NETCONF API" do
46
39
  it "rpc.get_interface_information() functions without error" do
47
- lambda { @dut.rpc.get_interface_information() }.should_not raise_error
40
+ expect { dut.rpc.get_interface_information() }.not_to raise_error
48
41
  end
49
42
  it "rpc.get_ospf_neighbor_information() functions without error" do
50
- lambda { @dut.rpc.get_ospf_neighbor_information() }.should_not raise_error
43
+ expect { dut.rpc.get_ospf_neighbor_information() }.not_to raise_error
51
44
  end
52
45
  end
53
46
 
54
47
  context "SCP API" do
55
48
  it "scp.download() functions without error" do
56
- lambda { @dut.scp.download!('/config/juniper.conf.gz', '/var/tmp/juniper.conf.gz') }.should_not raise_error
49
+ expect { dut.scp.download!('/config/juniper.conf.gz', '/var/tmp/juniper.conf.gz') }.not_to raise_error
57
50
  File.delete('/var/tmp/juniper.conf.gz')
58
51
  end
59
52
  it "scp.upload() functions without error" do
60
53
  File.new('/var/tmp/test', 'w+')
61
- lambda { @dut.scp.upload!('/var/tmp/test', 'test') }.should_not raise_error
62
- @dut.rpc.file_delete(:path => 'test')
54
+ expect { dut.scp.upload!('/var/tmp/test', 'test') }.not_to raise_error
55
+ dut.rpc.file_delete(:path => 'test')
63
56
  File.delete('/var/tmp/test')
64
57
  end
65
58
  end
66
59
 
67
60
  context "CLI API" do
68
61
  it "cli('show version') functions without error" do
69
- lambda { @dut.cli("show version") }.should_not raise_error
62
+ expect { dut.cli("show version") }.not_to raise_error
70
63
  end
71
64
  it "cli('show version') contains OS information" do
72
- @dut.cli("show version").should be_a(String)
73
- @dut.cli("show version").should =~ /JUNOS Base OS/
65
+ expect( dut.cli("show version") ).to =~ /JUNOS Base OS/
74
66
  end
75
67
  it "cli('show version', :foo => 'bar') still contains OS information" do
76
- @dut.cli("show version", :foo => 'bar').should be_a(String)
77
- @dut.cli("show version", :foo => 'bar').should =~ /JUNOS Base OS/
68
+ expect( dut.cli("show version", :foo => 'bar') ).to =~ /JUNOS Base OS/
78
69
  end
79
70
  it "cli('clear interface statistics') empty reply does not cause an error" do
80
- lambda { @dut.cli('clear interface statistics fxp0') }.should_not raise_error
81
- end
82
- end
83
-
84
- context "Helper methods" do
85
- before( :all ) do
86
- Dir.mkdir( 'configs' )
87
- @apply = File.open( "configs/capella-apply.set", "w" )
88
- @apply.write( 'set system location building "In a galaxy far, far, away"' )
89
- @apply.close
90
-
91
- @delete = File.open( "configs/capella-delete.set", "w" )
92
- @delete.write( 'delete system location')
93
- @delete.close
94
- end
95
-
96
- it "setup() with default args updates the router config" do
97
- lambda { @dut.setup() }.should_not raise_error
98
- end
99
- it "clearup() with default args updates the router config" do
100
- lambda { @dut.clearup() }.should_not raise_error
101
- end
102
-
103
- after(:all) do
104
- FileUtils.rm_rf( 'configs' )
71
+ expect { dut.cli('clear interface statistics fxp0') }.not_to raise_error
105
72
  end
106
73
  end
107
74
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'sloe'
2
2
  require 'sloe/junos'
3
- # require 'pry-debugger'
3
+ require 'pry-byebug'
4
4
  require 'simplecov'
5
5
 
6
6
  SimpleCov.start
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sloe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.5
4
+ version: 0.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Gethings
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-09 00:00:00.000000000 Z
11
+ date: 2016-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: snmp
@@ -16,16 +16,16 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.1'
19
+ version: '1.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.1'
26
+ version: '1.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: netconf
28
+ name: net-netconf
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
@@ -44,58 +44,72 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
47
+ version: '1.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.0'
54
+ version: '1.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.12'
61
+ version: '3.4'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.12'
68
+ version: '3.4'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: yard
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '0.8'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '0.8'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: simplecov
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '0.11'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '0.11'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: ci_reporter
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: ci_reporter_rspec
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - ">="
@@ -114,14 +128,28 @@ dependencies:
114
128
  requirements:
115
129
  - - ">="
116
130
  - !ruby/object:Gem::Version
117
- version: '0'
131
+ version: '10'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - ">="
123
137
  - !ruby/object:Gem::Version
124
- version: '0'
138
+ version: '10'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pry-byebug
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '3.3'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '3.3'
125
153
  description: Sloe uses NETCONF and/or SNMP to gather data regarding a network device.
126
154
  Designed to help with automated testing this gem can also be used with things like
127
155
  Ruby on Rails
@@ -501,7 +529,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
501
529
  version: '0'
502
530
  requirements: []
503
531
  rubyforge_project:
504
- rubygems_version: 2.2.1
532
+ rubygems_version: 2.4.5
505
533
  signing_key:
506
534
  specification_version: 4
507
535
  summary: A one stop shop for collecting data from a network device using NETCONF or