sloe 0.8.5 → 0.8.6

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