oxidized 0.9.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +41 -0
- data/README.md +64 -35
- data/Rakefile +7 -9
- data/bin/console +9 -0
- data/bin/oxidized +1 -1
- data/extra/nagios_check_failing_nodes.rb +4 -4
- data/extra/oxidized-report-git-commits +80 -0
- data/extra/rvm.oxidized.upstart +18 -0
- data/lib/oxidized.rb +45 -2
- data/lib/oxidized/cli.rb +54 -4
- data/lib/oxidized/config.rb +45 -39
- data/lib/oxidized/config/vars.rb +8 -3
- data/lib/oxidized/core.rb +5 -12
- data/lib/oxidized/hook.rb +4 -4
- data/lib/oxidized/hook/exec.rb +2 -0
- data/lib/oxidized/hook/githubrepo.rb +57 -0
- data/lib/oxidized/input/cli.rb +2 -1
- data/lib/oxidized/input/ftp.rb +3 -3
- data/lib/oxidized/input/ssh.rb +9 -9
- data/lib/oxidized/input/telnet.rb +3 -3
- data/lib/oxidized/job.rb +3 -3
- data/lib/oxidized/model/fortios.rb +1 -1
- data/lib/oxidized/model/junos.rb +8 -10
- data/lib/oxidized/model/model.rb +3 -2
- data/lib/oxidized/model/powerconnect.rb +11 -6
- data/lib/oxidized/model/saos.rb +24 -0
- data/lib/oxidized/node.rb +16 -16
- data/lib/oxidized/nodes.rb +12 -12
- data/lib/oxidized/output/file.rb +15 -3
- data/lib/oxidized/output/git.rb +10 -7
- data/lib/oxidized/source/csv.rb +7 -7
- data/lib/oxidized/source/http.rb +1 -1
- data/lib/oxidized/source/source.rb +1 -1
- data/lib/oxidized/source/sql.rb +7 -7
- data/lib/oxidized/string.rb +1 -1
- data/lib/oxidized/version.rb +3 -0
- data/lib/oxidized/worker.rb +11 -9
- data/oxidized.gemspec +12 -3
- metadata +75 -7
- data/lib/oxidized/log.rb +0 -22
- 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 =
|
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("\
|
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', '~>
|
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.
|
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:
|
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: '
|
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: '
|
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.
|
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
|