oxidized 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -0
  3. data/CHANGELOG.md +6 -0
  4. data/Gemfile.lock +41 -0
  5. data/README.md +64 -35
  6. data/Rakefile +7 -9
  7. data/bin/console +9 -0
  8. data/bin/oxidized +1 -1
  9. data/extra/nagios_check_failing_nodes.rb +4 -4
  10. data/extra/oxidized-report-git-commits +80 -0
  11. data/extra/rvm.oxidized.upstart +18 -0
  12. data/lib/oxidized.rb +45 -2
  13. data/lib/oxidized/cli.rb +54 -4
  14. data/lib/oxidized/config.rb +45 -39
  15. data/lib/oxidized/config/vars.rb +8 -3
  16. data/lib/oxidized/core.rb +5 -12
  17. data/lib/oxidized/hook.rb +4 -4
  18. data/lib/oxidized/hook/exec.rb +2 -0
  19. data/lib/oxidized/hook/githubrepo.rb +57 -0
  20. data/lib/oxidized/input/cli.rb +2 -1
  21. data/lib/oxidized/input/ftp.rb +3 -3
  22. data/lib/oxidized/input/ssh.rb +9 -9
  23. data/lib/oxidized/input/telnet.rb +3 -3
  24. data/lib/oxidized/job.rb +3 -3
  25. data/lib/oxidized/model/fortios.rb +1 -1
  26. data/lib/oxidized/model/junos.rb +8 -10
  27. data/lib/oxidized/model/model.rb +3 -2
  28. data/lib/oxidized/model/powerconnect.rb +11 -6
  29. data/lib/oxidized/model/saos.rb +24 -0
  30. data/lib/oxidized/node.rb +16 -16
  31. data/lib/oxidized/nodes.rb +12 -12
  32. data/lib/oxidized/output/file.rb +15 -3
  33. data/lib/oxidized/output/git.rb +10 -7
  34. data/lib/oxidized/source/csv.rb +7 -7
  35. data/lib/oxidized/source/http.rb +1 -1
  36. data/lib/oxidized/source/source.rb +1 -1
  37. data/lib/oxidized/source/sql.rb +7 -7
  38. data/lib/oxidized/string.rb +1 -1
  39. data/lib/oxidized/version.rb +3 -0
  40. data/lib/oxidized/worker.rb +11 -9
  41. data/oxidized.gemspec +12 -3
  42. metadata +75 -7
  43. data/lib/oxidized/log.rb +0 -22
  44. data/spec/nodes_spec.rb +0 -46
data/oxidized.gemspec CHANGED
@@ -1,6 +1,11 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'oxidized/version'
5
+
1
6
  Gem::Specification.new do |s|
2
7
  s.name = 'oxidized'
3
- s.version = '0.9.0'
8
+ s.version = Oxidized::VERSION
4
9
  s.licenses = %w( Apache-2.0 )
5
10
  s.platform = Gem::Platform::RUBY
6
11
  s.authors = [ 'Saku Ytti', 'Samer Abdel-Hafez', 'Anton Aksola' ]
@@ -9,14 +14,18 @@ Gem::Specification.new do |s|
9
14
  s.summary = 'feeble attempt at rancid'
10
15
  s.description = 'software to fetch configuration from network devices and store them'
11
16
  s.rubyforge_project = s.name
12
- s.files = `git ls-files`.split("\n")
17
+ s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
13
18
  s.executables = %w( oxidized )
14
19
  s.require_path = 'lib'
15
20
 
16
21
  s.required_ruby_version = '>= 1.9.3'
17
22
  s.add_runtime_dependency 'asetus', '~> 0.1'
18
23
  s.add_runtime_dependency 'slop', '~> 3.5'
19
- s.add_runtime_dependency 'net-ssh', '~> 2.8'
24
+ s.add_runtime_dependency 'net-ssh', '~> 3.0', '>= 3.0.2'
20
25
  s.add_runtime_dependency 'rugged', '~> 0.21', '>= 0.21.4'
21
26
  s.add_development_dependency 'pry', '~> 0'
27
+ s.add_development_dependency 'bundler', '~> 1.10'
28
+ s.add_development_dependency 'rake', '~> 10.0'
29
+ s.add_development_dependency 'minitest', '~> 5.8'
30
+ s.add_development_dependency 'mocha', '~> 1.1'
22
31
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oxidized
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Saku Ytti
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-11-06 00:00:00.000000000 Z
13
+ date: 2016-01-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: asetus
@@ -46,14 +46,20 @@ dependencies:
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '2.8'
49
+ version: '3.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 3.0.2
50
53
  type: :runtime
51
54
  prerelease: false
52
55
  version_requirements: !ruby/object:Gem::Requirement
53
56
  requirements:
54
57
  - - "~>"
55
58
  - !ruby/object:Gem::Version
56
- version: '2.8'
59
+ version: '3.0'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 3.0.2
57
63
  - !ruby/object:Gem::Dependency
58
64
  name: rugged
59
65
  requirement: !ruby/object:Gem::Requirement
@@ -88,6 +94,62 @@ dependencies:
88
94
  - - "~>"
89
95
  - !ruby/object:Gem::Version
90
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.10'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.10'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '10.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '10.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: minitest
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '5.8'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '5.8'
139
+ - !ruby/object:Gem::Dependency
140
+ name: mocha
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.1'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.1'
91
153
  description: software to fetch configuration from network devices and store them
92
154
  email:
93
155
  - saku@ytti.fi
@@ -98,19 +160,24 @@ executables:
98
160
  extensions: []
99
161
  extra_rdoc_files: []
100
162
  files:
163
+ - ".travis.yml"
101
164
  - CHANGELOG.md
102
165
  - Dockerfile
103
166
  - Gemfile
167
+ - Gemfile.lock
104
168
  - README.md
105
169
  - Rakefile
106
170
  - TODO.md
171
+ - bin/console
107
172
  - bin/oxidized
108
173
  - extra/nagios_check_failing_nodes.rb
174
+ - extra/oxidized-report-git-commits
109
175
  - extra/oxidized.init
110
176
  - extra/oxidized.service
111
177
  - extra/oxidized.supervisord
112
178
  - extra/oxidized.upstart
113
179
  - extra/rest_client.rb
180
+ - extra/rvm.oxidized.upstart
114
181
  - extra/syslog.rb
115
182
  - lib/oxidized.rb
116
183
  - lib/oxidized/cli.rb
@@ -119,6 +186,7 @@ files:
119
186
  - lib/oxidized/core.rb
120
187
  - lib/oxidized/hook.rb
121
188
  - lib/oxidized/hook/exec.rb
189
+ - lib/oxidized/hook/githubrepo.rb
122
190
  - lib/oxidized/hook/noophook.rb
123
191
  - lib/oxidized/input/cli.rb
124
192
  - lib/oxidized/input/ftp.rb
@@ -127,7 +195,6 @@ files:
127
195
  - lib/oxidized/input/telnet.rb
128
196
  - lib/oxidized/job.rb
129
197
  - lib/oxidized/jobs.rb
130
- - lib/oxidized/log.rb
131
198
  - lib/oxidized/manager.rb
132
199
  - lib/oxidized/model/acos.rb
133
200
  - lib/oxidized/model/aireos.rb
@@ -160,6 +227,7 @@ files:
160
227
  - lib/oxidized/model/powerconnect.rb
161
228
  - lib/oxidized/model/procurve.rb
162
229
  - lib/oxidized/model/routeros.rb
230
+ - lib/oxidized/model/saos.rb
163
231
  - lib/oxidized/model/screenos.rb
164
232
  - lib/oxidized/model/timos.rb
165
233
  - lib/oxidized/model/vrp.rb
@@ -177,9 +245,9 @@ files:
177
245
  - lib/oxidized/source/source.rb
178
246
  - lib/oxidized/source/sql.rb
179
247
  - lib/oxidized/string.rb
248
+ - lib/oxidized/version.rb
180
249
  - lib/oxidized/worker.rb
181
250
  - oxidized.gemspec
182
- - spec/nodes_spec.rb
183
251
  homepage: http://github.com/ytti/oxidized
184
252
  licenses:
185
253
  - Apache-2.0
@@ -200,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
268
  version: '0'
201
269
  requirements: []
202
270
  rubyforge_project: oxidized
203
- rubygems_version: 2.2.2
271
+ rubygems_version: 2.4.5.1
204
272
  signing_key:
205
273
  specification_version: 4
206
274
  summary: feeble attempt at rancid
data/lib/oxidized/log.rb DELETED
@@ -1,22 +0,0 @@
1
- module Oxidized
2
-
3
- begin
4
- require 'syslog/logger'
5
- Log = Syslog::Logger.new 'oxidized'
6
- Log.define_singleton_method(:file=){|arg|}
7
- rescue LoadError
8
- # 1.9.3 has no love for syslog
9
- require 'logger'
10
- class Logger < Logger
11
- def initialize target=STDOUT
12
- super target
13
- end
14
- def file= target
15
- FileUtils.mkdir_p File.dirname(target)
16
- @logdev = LogDevice.new target
17
- end
18
- end
19
- Log = Logger.new
20
- end
21
-
22
- end
data/spec/nodes_spec.rb DELETED
@@ -1,46 +0,0 @@
1
- require 'oxidized'
2
- Oxidized.mgr = Oxidized::Manager.new
3
-
4
- describe Oxidized::Nodes do
5
- before(:each) do
6
- @nodes_org = %w(ltt-pe1.hel kes2-rr1.tku tor-peer1.oul
7
- hal-p2.tre sav-gr1-sw1.kuo psl-sec-pe1.hel).map { |e| Oxidized::Node.new(:name=>e) }
8
- @nodes = Oxidized::Nodes.new @nodes_org.dup
9
- end
10
-
11
- describe '#put' do
12
- it 'adds node to top of queue' do
13
- node = Oxidized::Node.new(:name=>'kst-p1.sto')
14
- @nodes.put node
15
- expect(@nodes).to eq [node] + @nodes_org
16
- end
17
- end
18
-
19
- describe '#get' do
20
- it 'returns node from top of queue' do
21
- expect(@nodes.get).to eq @nodes_org.first
22
- end
23
- it 'moves node from top to bottom' do
24
- @nodes.get
25
- expect(@nodes).to end_with [@nodes_org.first]
26
- end
27
- it 'does not change node count' do
28
- before = @nodes.size
29
- @nodes.get
30
- expect(before).to eq @nodes.size
31
- end
32
- end
33
-
34
- describe '#next' do
35
- it 'moves node to top of queue' do
36
- node = @nodes[3]
37
- @nodes.next node.name
38
- expect(@nodes).to start_with [node]
39
- end
40
- it 'does not change node count' do
41
- before = @nodes.size
42
- @nodes.next @nodes[3].name
43
- expect(before).to eq @nodes.size
44
- end
45
- end
46
- end