oxidized 0.9.0 → 0.10.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.
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