oxidized 0.33.0 → 0.34.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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.md +4 -1
- data/.github/ISSUE_TEMPLATE/support-request.md +4 -1
- data/.github/workflows/ruby.yml +4 -2
- data/.gitignore +1 -0
- data/.rubocop.yml +29 -6
- data/.rubocop_todo.yml +2 -35
- data/CHANGELOG.md +49 -0
- data/CONTRIBUTING.md +10 -3
- data/Dockerfile +4 -4
- data/README.md +52 -55
- data/Rakefile +2 -3
- data/docs/Configuration.md +97 -0
- data/docs/DeviceSimulation.md +19 -7
- data/docs/Docker.md +9 -4
- data/docs/Issues.md +11 -2
- data/docs/ModelUnitTests.md +35 -25
- data/docs/Outputs.md +83 -2
- data/docs/Release.md +30 -22
- data/docs/Supported-OS-Types.md +4 -0
- data/docs/Troubleshooting.md +4 -18
- data/extra/device2yaml.rb +24 -9
- data/extra/rest_client.rb +2 -1
- data/extra/syslog.rb +8 -3
- data/lib/oxidized/cli.rb +7 -3
- data/lib/oxidized/config/vars.rb +7 -3
- data/lib/oxidized/config.rb +0 -1
- data/lib/oxidized/core.rb +5 -4
- data/lib/oxidized/hook/ciscosparkdiff.rb +11 -9
- data/lib/oxidized/hook/exec.rb +5 -4
- data/lib/oxidized/hook/githubrepo.rb +23 -17
- data/lib/oxidized/hook/noophook.rb +2 -2
- data/lib/oxidized/hook/slackdiff.rb +9 -8
- data/lib/oxidized/hook/xmppdiff.rb +9 -9
- data/lib/oxidized/hook.rb +10 -8
- data/lib/oxidized/input/cli.rb +8 -3
- data/lib/oxidized/input/exec.rb +1 -1
- data/lib/oxidized/input/ftp.rb +2 -2
- data/lib/oxidized/input/http.rb +5 -5
- data/lib/oxidized/input/input.rb +1 -0
- data/lib/oxidized/input/scp.rb +2 -2
- data/lib/oxidized/input/ssh.rb +21 -14
- data/lib/oxidized/input/telnet.rb +3 -3
- data/lib/oxidized/input/tftp.rb +1 -1
- data/lib/oxidized/job.rb +7 -4
- data/lib/oxidized/logger.rb +51 -0
- data/lib/oxidized/model/acos.rb +1 -0
- data/lib/oxidized/model/aos7.rb +6 -0
- data/lib/oxidized/model/aoscx.rb +2 -0
- data/lib/oxidized/model/aosw.rb +22 -17
- data/lib/oxidized/model/aricentiss.rb +2 -2
- data/lib/oxidized/model/asa.rb +3 -3
- data/lib/oxidized/model/awplus.rb +13 -10
- data/lib/oxidized/model/edgecos.rb +2 -1
- data/lib/oxidized/model/edgeos.rb +7 -6
- data/lib/oxidized/model/edgeswitch.rb +3 -1
- data/lib/oxidized/model/efos.rb +41 -0
- data/lib/oxidized/model/eltex.rb +1 -1
- data/lib/oxidized/model/fabricos.rb +1 -1
- data/lib/oxidized/model/fastiron.rb +3 -1
- data/lib/oxidized/model/firelinuxos.rb +12 -3
- data/lib/oxidized/model/fortios.rb +2 -1
- data/lib/oxidized/model/gaiaos.rb +4 -4
- data/lib/oxidized/model/ios.rb +15 -5
- data/lib/oxidized/model/ironware.rb +1 -1
- data/lib/oxidized/model/junos.rb +4 -0
- data/lib/oxidized/model/linksyssrw.rb +3 -3
- data/lib/oxidized/model/mlnxos.rb +14 -7
- data/lib/oxidized/model/model.rb +4 -3
- data/lib/oxidized/model/netgear.rb +2 -0
- data/lib/oxidized/model/nsxdfw.rb +2 -1
- data/lib/oxidized/model/nsxfirewall.rb +2 -1
- data/lib/oxidized/model/nxos.rb +2 -2
- data/lib/oxidized/model/openwrt.rb +6 -6
- data/lib/oxidized/model/procurve.rb +3 -1
- data/lib/oxidized/model/qtech.rb +3 -1
- data/lib/oxidized/model/quantaos.rb +8 -6
- data/lib/oxidized/model/routeros.rb +3 -2
- data/lib/oxidized/model/saos10.rb +38 -0
- data/lib/oxidized/model/sixwind.rb +28 -0
- data/lib/oxidized/model/sonicos.rb +1 -1
- data/lib/oxidized/model/supermicro.rb +1 -1
- data/lib/oxidized/model/timos.rb +1 -1
- data/lib/oxidized/model/tmos.rb +1 -0
- data/lib/oxidized/model/tnsr.rb +53 -0
- data/lib/oxidized/model/trango.rb +3 -1
- data/lib/oxidized/model/unifiap.rb +7 -5
- data/lib/oxidized/model/vrp.rb +3 -1
- data/lib/oxidized/model/xos.rb +3 -1
- data/lib/oxidized/model/zhoneolt.rb +3 -1
- data/lib/oxidized/model/zynos.rb +3 -3
- data/lib/oxidized/node.rb +44 -27
- data/lib/oxidized/nodes.rb +8 -4
- data/lib/oxidized/output/file.rb +28 -0
- data/lib/oxidized/output/git.rb +66 -9
- data/lib/oxidized/output/gitcrypt.rb +15 -13
- data/lib/oxidized/output/http.rb +5 -4
- data/lib/oxidized/output/output.rb +14 -0
- data/lib/oxidized/source/http.rb +4 -2
- data/lib/oxidized/version.rb +2 -2
- data/lib/oxidized/worker.rb +11 -8
- data/lib/oxidized.rb +3 -24
- data/oxidized.gemspec +8 -5
- metadata +54 -21
data/lib/oxidized.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
require 'refinements'
|
3
|
+
require 'semantic_logger'
|
3
4
|
|
4
5
|
module Oxidized
|
5
6
|
class OxidizedError < StandardError; end
|
7
|
+
include SemanticLogger::Loggable
|
6
8
|
|
7
9
|
Directory = File.expand_path(File.join(File.dirname(__FILE__), '../'))
|
8
10
|
|
@@ -15,6 +17,7 @@ module Oxidized
|
|
15
17
|
require 'oxidized/hook'
|
16
18
|
require 'oxidized/signals'
|
17
19
|
require 'oxidized/core'
|
20
|
+
require 'oxidized/logger'
|
18
21
|
|
19
22
|
def self.asetus
|
20
23
|
@@asetus
|
@@ -27,28 +30,4 @@ module Oxidized
|
|
27
30
|
def self.config
|
28
31
|
asetus.cfg
|
29
32
|
end
|
30
|
-
|
31
|
-
def self.logger
|
32
|
-
@@logger
|
33
|
-
end
|
34
|
-
|
35
|
-
def self.logger=(val)
|
36
|
-
@@logger = val
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.setup_logger
|
40
|
-
FileUtils.mkdir_p(Config::LOG) unless File.directory?(Config::LOG)
|
41
|
-
self.logger = if config.has_key?('use_syslog') && config.use_syslog
|
42
|
-
require 'syslog/logger'
|
43
|
-
Syslog::Logger.new('oxidized')
|
44
|
-
else
|
45
|
-
require 'logger'
|
46
|
-
if config.has_key?('log')
|
47
|
-
Logger.new(File.expand_path(config.log))
|
48
|
-
else
|
49
|
-
Logger.new($stderr)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
logger.level = Logger::INFO unless config.debug
|
53
|
-
end
|
54
33
|
end
|
data/oxidized.gemspec
CHANGED
@@ -39,24 +39,27 @@ Gem::Specification.new do |s|
|
|
39
39
|
s.add_dependency 'net-scp', '~> 4.1'
|
40
40
|
s.add_dependency 'net-ssh', '~> 7.3'
|
41
41
|
s.add_dependency 'net-telnet', '~> 0.2'
|
42
|
-
s.add_dependency 'ostruct', '~> 0.6'
|
43
42
|
s.add_dependency 'psych', '~> 5.0'
|
44
43
|
s.add_dependency 'rugged', '~> 1.6'
|
44
|
+
s.add_dependency 'semantic_logger', '~> 4.16'
|
45
45
|
s.add_dependency 'slop', '~> 4.6'
|
46
|
+
s.add_dependency 'syslog', '~> 0.3.0'
|
47
|
+
s.add_dependency 'syslog_protocol', '~> 0.9.2'
|
46
48
|
|
47
49
|
s.add_development_dependency 'bundler', '~> 2.2'
|
48
|
-
|
50
|
+
# ruby-git 4.0 requests ruby >= 3.2, we stick to >= 3.1 (Ubuntu Noble/Debian Bookworm)
|
51
|
+
s.add_development_dependency 'git', '>= 2.0', '< 3.2.0'
|
49
52
|
s.add_development_dependency 'minitest', '~> 5.25.4'
|
50
53
|
s.add_development_dependency 'mocha', '~> 2.1'
|
51
54
|
s.add_development_dependency 'pry', '~> 0.15.0'
|
52
55
|
s.add_development_dependency 'rake', '~> 13.0'
|
53
|
-
s.add_development_dependency 'rubocop', '~> 1.
|
54
|
-
s.add_development_dependency 'rubocop-minitest', '~> 0.
|
56
|
+
s.add_development_dependency 'rubocop', '~> 1.78.0'
|
57
|
+
s.add_development_dependency 'rubocop-minitest', '~> 0.38.0'
|
55
58
|
s.add_development_dependency 'rubocop-rake', '~> 0.7.0'
|
56
59
|
s.add_development_dependency 'rubocop-sequel', '~> 0.4.0'
|
57
60
|
s.add_development_dependency 'simplecov', '~> 0.22.0'
|
58
61
|
|
59
62
|
# Dependencies on optional libraries, used for unit tests & development
|
60
63
|
s.add_development_dependency 'oxidized-web', '~> 0.16'
|
61
|
-
s.add_development_dependency 'sequel', '>= 5.63.0', '<= 5.
|
64
|
+
s.add_development_dependency 'sequel', '>= 5.63.0', '<= 5.94.0'
|
62
65
|
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.34.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: 2025-
|
13
|
+
date: 2025-07-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: asetus
|
@@ -125,47 +125,47 @@ dependencies:
|
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: '0.2'
|
127
127
|
- !ruby/object:Gem::Dependency
|
128
|
-
name:
|
128
|
+
name: psych
|
129
129
|
requirement: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
131
|
- - "~>"
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: '0
|
133
|
+
version: '5.0'
|
134
134
|
type: :runtime
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
137
|
requirements:
|
138
138
|
- - "~>"
|
139
139
|
- !ruby/object:Gem::Version
|
140
|
-
version: '0
|
140
|
+
version: '5.0'
|
141
141
|
- !ruby/object:Gem::Dependency
|
142
|
-
name:
|
142
|
+
name: rugged
|
143
143
|
requirement: !ruby/object:Gem::Requirement
|
144
144
|
requirements:
|
145
145
|
- - "~>"
|
146
146
|
- !ruby/object:Gem::Version
|
147
|
-
version: '
|
147
|
+
version: '1.6'
|
148
148
|
type: :runtime
|
149
149
|
prerelease: false
|
150
150
|
version_requirements: !ruby/object:Gem::Requirement
|
151
151
|
requirements:
|
152
152
|
- - "~>"
|
153
153
|
- !ruby/object:Gem::Version
|
154
|
-
version: '
|
154
|
+
version: '1.6'
|
155
155
|
- !ruby/object:Gem::Dependency
|
156
|
-
name:
|
156
|
+
name: semantic_logger
|
157
157
|
requirement: !ruby/object:Gem::Requirement
|
158
158
|
requirements:
|
159
159
|
- - "~>"
|
160
160
|
- !ruby/object:Gem::Version
|
161
|
-
version: '
|
161
|
+
version: '4.16'
|
162
162
|
type: :runtime
|
163
163
|
prerelease: false
|
164
164
|
version_requirements: !ruby/object:Gem::Requirement
|
165
165
|
requirements:
|
166
166
|
- - "~>"
|
167
167
|
- !ruby/object:Gem::Version
|
168
|
-
version: '
|
168
|
+
version: '4.16'
|
169
169
|
- !ruby/object:Gem::Dependency
|
170
170
|
name: slop
|
171
171
|
requirement: !ruby/object:Gem::Requirement
|
@@ -180,6 +180,34 @@ dependencies:
|
|
180
180
|
- - "~>"
|
181
181
|
- !ruby/object:Gem::Version
|
182
182
|
version: '4.6'
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: syslog
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - "~>"
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: 0.3.0
|
190
|
+
type: :runtime
|
191
|
+
prerelease: false
|
192
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - "~>"
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: 0.3.0
|
197
|
+
- !ruby/object:Gem::Dependency
|
198
|
+
name: syslog_protocol
|
199
|
+
requirement: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - "~>"
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: 0.9.2
|
204
|
+
type: :runtime
|
205
|
+
prerelease: false
|
206
|
+
version_requirements: !ruby/object:Gem::Requirement
|
207
|
+
requirements:
|
208
|
+
- - "~>"
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: 0.9.2
|
183
211
|
- !ruby/object:Gem::Dependency
|
184
212
|
name: bundler
|
185
213
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,9 +229,9 @@ dependencies:
|
|
201
229
|
- - ">="
|
202
230
|
- !ruby/object:Gem::Version
|
203
231
|
version: '2.0'
|
204
|
-
- - "
|
232
|
+
- - "<"
|
205
233
|
- !ruby/object:Gem::Version
|
206
|
-
version:
|
234
|
+
version: 3.2.0
|
207
235
|
type: :development
|
208
236
|
prerelease: false
|
209
237
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -211,9 +239,9 @@ dependencies:
|
|
211
239
|
- - ">="
|
212
240
|
- !ruby/object:Gem::Version
|
213
241
|
version: '2.0'
|
214
|
-
- - "
|
242
|
+
- - "<"
|
215
243
|
- !ruby/object:Gem::Version
|
216
|
-
version:
|
244
|
+
version: 3.2.0
|
217
245
|
- !ruby/object:Gem::Dependency
|
218
246
|
name: minitest
|
219
247
|
requirement: !ruby/object:Gem::Requirement
|
@@ -276,28 +304,28 @@ dependencies:
|
|
276
304
|
requirements:
|
277
305
|
- - "~>"
|
278
306
|
- !ruby/object:Gem::Version
|
279
|
-
version: 1.
|
307
|
+
version: 1.78.0
|
280
308
|
type: :development
|
281
309
|
prerelease: false
|
282
310
|
version_requirements: !ruby/object:Gem::Requirement
|
283
311
|
requirements:
|
284
312
|
- - "~>"
|
285
313
|
- !ruby/object:Gem::Version
|
286
|
-
version: 1.
|
314
|
+
version: 1.78.0
|
287
315
|
- !ruby/object:Gem::Dependency
|
288
316
|
name: rubocop-minitest
|
289
317
|
requirement: !ruby/object:Gem::Requirement
|
290
318
|
requirements:
|
291
319
|
- - "~>"
|
292
320
|
- !ruby/object:Gem::Version
|
293
|
-
version: 0.
|
321
|
+
version: 0.38.0
|
294
322
|
type: :development
|
295
323
|
prerelease: false
|
296
324
|
version_requirements: !ruby/object:Gem::Requirement
|
297
325
|
requirements:
|
298
326
|
- - "~>"
|
299
327
|
- !ruby/object:Gem::Version
|
300
|
-
version: 0.
|
328
|
+
version: 0.38.0
|
301
329
|
- !ruby/object:Gem::Dependency
|
302
330
|
name: rubocop-rake
|
303
331
|
requirement: !ruby/object:Gem::Requirement
|
@@ -363,7 +391,7 @@ dependencies:
|
|
363
391
|
version: 5.63.0
|
364
392
|
- - "<="
|
365
393
|
- !ruby/object:Gem::Version
|
366
|
-
version: 5.
|
394
|
+
version: 5.94.0
|
367
395
|
type: :development
|
368
396
|
prerelease: false
|
369
397
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -373,7 +401,7 @@ dependencies:
|
|
373
401
|
version: 5.63.0
|
374
402
|
- - "<="
|
375
403
|
- !ruby/object:Gem::Version
|
376
|
-
version: 5.
|
404
|
+
version: 5.94.0
|
377
405
|
description: software to fetch configuration from network devices and store them
|
378
406
|
email:
|
379
407
|
- saku@ytti.fi
|
@@ -491,6 +519,7 @@ files:
|
|
491
519
|
- lib/oxidized/input/tftp.rb
|
492
520
|
- lib/oxidized/job.rb
|
493
521
|
- lib/oxidized/jobs.rb
|
522
|
+
- lib/oxidized/logger.rb
|
494
523
|
- lib/oxidized/manager.rb
|
495
524
|
- lib/oxidized/model/acmepacket.rb
|
496
525
|
- lib/oxidized/model/acos.rb
|
@@ -551,6 +580,7 @@ files:
|
|
551
580
|
- lib/oxidized/model/edgecos.rb
|
552
581
|
- lib/oxidized/model/edgeos.rb
|
553
582
|
- lib/oxidized/model/edgeswitch.rb
|
583
|
+
- lib/oxidized/model/efos.rb
|
554
584
|
- lib/oxidized/model/eltex.rb
|
555
585
|
- lib/oxidized/model/enterasys.rb
|
556
586
|
- lib/oxidized/model/enterasys800.rb
|
@@ -635,10 +665,12 @@ files:
|
|
635
665
|
- lib/oxidized/model/riverbed.rb
|
636
666
|
- lib/oxidized/model/routeros.rb
|
637
667
|
- lib/oxidized/model/saos.rb
|
668
|
+
- lib/oxidized/model/saos10.rb
|
638
669
|
- lib/oxidized/model/screenos.rb
|
639
670
|
- lib/oxidized/model/sgos.rb
|
640
671
|
- lib/oxidized/model/siklu.rb
|
641
672
|
- lib/oxidized/model/siklumhtg.rb
|
673
|
+
- lib/oxidized/model/sixwind.rb
|
642
674
|
- lib/oxidized/model/slxos.rb
|
643
675
|
- lib/oxidized/model/smartax.rb
|
644
676
|
- lib/oxidized/model/smartcs.rb
|
@@ -653,6 +685,7 @@ files:
|
|
653
685
|
- lib/oxidized/model/telco.rb
|
654
686
|
- lib/oxidized/model/timos.rb
|
655
687
|
- lib/oxidized/model/tmos.rb
|
688
|
+
- lib/oxidized/model/tnsr.rb
|
656
689
|
- lib/oxidized/model/tplink.rb
|
657
690
|
- lib/oxidized/model/trango.rb
|
658
691
|
- lib/oxidized/model/truenas.rb
|