oxidized 0.30.1 → 0.31.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 (113) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +2 -2
  3. data/.github/workflows/stale.yml +4 -2
  4. data/.rubocop.yml +18 -2
  5. data/.rubocop_todo.yml +5 -12
  6. data/CHANGELOG.md +61 -1
  7. data/CONTRIBUTING.md +5 -0
  8. data/Dockerfile +82 -21
  9. data/README.md +5 -21
  10. data/Rakefile +3 -2
  11. data/docs/Configuration.md +36 -12
  12. data/docs/Creating-Models.md +45 -4
  13. data/docs/Hooks.md +34 -0
  14. data/docs/Issues.md +91 -0
  15. data/docs/Model-Notes/Cumulus.md +5 -0
  16. data/docs/Model-Notes/FSOS.md +5 -0
  17. data/docs/Model-Notes/FortiOS.md +21 -5
  18. data/docs/Model-Notes/HPEAruba.md +31 -0
  19. data/docs/Model-Notes/OS6.md +10 -0
  20. data/docs/Model-Notes/RouterOS.md +15 -0
  21. data/docs/Model-Notes/SikluMHTG.md +7 -0
  22. data/docs/Outputs.md +2 -0
  23. data/docs/Release.md +18 -15
  24. data/docs/Sources.md +21 -0
  25. data/docs/Supported-OS-Types.md +11 -5
  26. data/docs/Troubleshooting.md +35 -0
  27. data/examples/device-simulation/README.md +173 -0
  28. data/examples/device-simulation/cmdsets/aoscx +9 -0
  29. data/examples/device-simulation/cmdsets/arubainstant +5 -0
  30. data/examples/device-simulation/cmdsets/asa +7 -0
  31. data/examples/device-simulation/cmdsets/ios +7 -0
  32. data/examples/device-simulation/cmdsets/nxos +5 -0
  33. data/examples/device-simulation/cmdsets/routeros +5 -0
  34. data/examples/device-simulation/cmdsets/srosmd +11 -0
  35. data/examples/device-simulation/device2yaml.rb +225 -0
  36. data/examples/device-simulation/yaml/aoscx_R0X25A-6410_FL.10.10.1100.yaml +2281 -0
  37. data/examples/device-simulation/yaml/aoscx_R8N85A-C6000-48G-CL4_PL.10.08.1010.yaml +451 -0
  38. data/examples/device-simulation/yaml/arubainstant_IAP515_8.10.0.6_VWLC.yaml +213 -0
  39. data/examples/device-simulation/yaml/asa_5512_9.12-4-67_single-context.yaml +531 -0
  40. data/examples/device-simulation/yaml/asr920_16.8.1b.yaml +1122 -0
  41. data/examples/device-simulation/yaml/garderos_R7709_003_006_068.yaml +101 -0
  42. data/examples/device-simulation/yaml/iosxe_C9200L-24P-4G_17.09.04a.yaml +514 -0
  43. data/examples/device-simulation/yaml/iosxe_C9800-L-F-K9_17.06.05.yaml +417 -0
  44. data/examples/device-simulation/yaml/riverbed_915.yaml +123 -0
  45. data/examples/device-simulation/yaml/routeros_CHR_7.10.1.yaml +145 -0
  46. data/examples/device-simulation/yaml/routeros_CHR_7.16.yaml +79 -0
  47. data/examples/device-simulation/yaml/routeros_L009UiGS_7.15.2.yaml +353 -0
  48. data/examples/podman-compose/Makefile +60 -17
  49. data/examples/podman-compose/README.md +63 -27
  50. data/examples/podman-compose/docker-compose.yml +11 -2
  51. data/examples/podman-compose/gitserver/.gitignore +1 -0
  52. data/examples/podman-compose/gitserver/Dockerfile +14 -0
  53. data/examples/podman-compose/model-simulation/Dockerfile-model +1 -1
  54. data/examples/podman-compose/model-simulation/asternos.sh +2 -0
  55. data/examples/podman-compose/oxidized-config/.gitignore +2 -0
  56. data/examples/podman-compose/oxidized-config/config +1 -1
  57. data/examples/podman-compose/oxidized-config/config_csv-file +46 -0
  58. data/examples/podman-compose/oxidized-config/config_csv-gitserver +56 -0
  59. data/examples/podman-compose/oxidized-ssh/.gitignore +1 -0
  60. data/lib/oxidized/config.rb +7 -1
  61. data/lib/oxidized/hook/githubrepo.rb +37 -7
  62. data/lib/oxidized/hook/slackdiff.rb +29 -7
  63. data/lib/oxidized/input/http.rb +1 -0
  64. data/lib/oxidized/input/telnet.rb +1 -1
  65. data/lib/oxidized/manager.rb +17 -16
  66. data/lib/oxidized/model/aoscx.rb +16 -2
  67. data/lib/oxidized/model/aosw.rb +7 -1
  68. data/lib/oxidized/model/arubainstant.rb +90 -0
  69. data/lib/oxidized/model/audiocodes.rb +2 -2
  70. data/lib/oxidized/model/cnos.rb +13 -10
  71. data/lib/oxidized/model/cumulus.rb +3 -0
  72. data/lib/oxidized/model/dlink.rb +1 -0
  73. data/lib/oxidized/model/dlinknextgen.rb +3 -0
  74. data/lib/oxidized/model/edgecos.rb +2 -1
  75. data/lib/oxidized/model/eos.rb +2 -0
  76. data/lib/oxidized/model/f5os.rb +17 -0
  77. data/lib/oxidized/model/firewareos.rb +10 -1
  78. data/lib/oxidized/model/fortios.rb +24 -1
  79. data/lib/oxidized/model/garderos.rb +43 -0
  80. data/lib/oxidized/model/h3c.rb +1 -1
  81. data/lib/oxidized/model/ibos.rb +1 -0
  82. data/lib/oxidized/model/ios.rb +20 -12
  83. data/lib/oxidized/model/iosxr.rb +1 -1
  84. data/lib/oxidized/model/lenovonos.rb +2 -0
  85. data/lib/oxidized/model/linuxgeneric.rb +1 -1
  86. data/lib/oxidized/model/netgear.rb +1 -1
  87. data/lib/oxidized/model/nodegrid.rb +1 -1
  88. data/lib/oxidized/model/nsxdfw.rb +30 -0
  89. data/lib/oxidized/model/nxos.rb +2 -1
  90. data/lib/oxidized/model/os6.rb +48 -0
  91. data/lib/oxidized/model/rgos.rb +1 -1
  92. data/lib/oxidized/model/riverbed.rb +104 -0
  93. data/lib/oxidized/model/routeros.rb +2 -2
  94. data/lib/oxidized/model/saos.rb +18 -1
  95. data/lib/oxidized/model/siklumhtg.rb +22 -0
  96. data/lib/oxidized/model/uplinkolt.rb +46 -0
  97. data/lib/oxidized/model/vyatta.rb +2 -2
  98. data/lib/oxidized/model/xos.rb +7 -0
  99. data/lib/oxidized/node.rb +30 -18
  100. data/lib/oxidized/nodes.rb +13 -5
  101. data/lib/oxidized/output/file.rb +45 -42
  102. data/lib/oxidized/output/git.rb +185 -160
  103. data/lib/oxidized/output/gitcrypt.rb +188 -186
  104. data/lib/oxidized/output/http.rb +53 -51
  105. data/lib/oxidized/output/output.rb +6 -4
  106. data/lib/oxidized/source/csv.rb +44 -49
  107. data/lib/oxidized/source/http.rb +63 -81
  108. data/lib/oxidized/source/jsonfile.rb +63 -0
  109. data/lib/oxidized/source/source.rb +43 -18
  110. data/lib/oxidized/source/sql.rb +66 -59
  111. data/lib/oxidized/version.rb +2 -2
  112. data/oxidized.gemspec +22 -16
  113. metadata +111 -15
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.30.1
4
+ version: 0.31.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: 2024-04-12 00:00:00.000000000 Z
13
+ date: 2024-11-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: asetus
@@ -68,6 +68,20 @@ dependencies:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0.2'
71
+ - !ruby/object:Gem::Dependency
72
+ name: net-http-digest_auth
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '1.4'
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '1.4'
71
85
  - !ruby/object:Gem::Dependency
72
86
  name: net-scp
73
87
  requirement: !ruby/object:Gem::Requirement
@@ -88,14 +102,14 @@ dependencies:
88
102
  requirements:
89
103
  - - "~>"
90
104
  - !ruby/object:Gem::Version
91
- version: '7.1'
105
+ version: '7.3'
92
106
  type: :runtime
93
107
  prerelease: false
94
108
  version_requirements: !ruby/object:Gem::Requirement
95
109
  requirements:
96
110
  - - "~>"
97
111
  - !ruby/object:Gem::Version
98
- version: '7.1'
112
+ version: '7.3'
99
113
  - !ruby/object:Gem::Dependency
100
114
  name: net-telnet
101
115
  requirement: !ruby/object:Gem::Requirement
@@ -116,14 +130,14 @@ dependencies:
116
130
  requirements:
117
131
  - - "~>"
118
132
  - !ruby/object:Gem::Version
119
- version: 3.3.2
133
+ version: '5.0'
120
134
  type: :runtime
121
135
  prerelease: false
122
136
  version_requirements: !ruby/object:Gem::Requirement
123
137
  requirements:
124
138
  - - "~>"
125
139
  - !ruby/object:Gem::Version
126
- version: 3.3.2
140
+ version: '5.0'
127
141
  - !ruby/object:Gem::Dependency
128
142
  name: rugged
129
143
  requirement: !ruby/object:Gem::Requirement
@@ -172,14 +186,14 @@ dependencies:
172
186
  requirements:
173
187
  - - "~>"
174
188
  - !ruby/object:Gem::Version
175
- version: '1'
189
+ version: '2'
176
190
  type: :development
177
191
  prerelease: false
178
192
  version_requirements: !ruby/object:Gem::Requirement
179
193
  requirements:
180
194
  - - "~>"
181
195
  - !ruby/object:Gem::Version
182
- version: '1'
196
+ version: '2'
183
197
  - !ruby/object:Gem::Dependency
184
198
  name: minitest
185
199
  requirement: !ruby/object:Gem::Requirement
@@ -242,28 +256,28 @@ dependencies:
242
256
  requirements:
243
257
  - - "~>"
244
258
  - !ruby/object:Gem::Version
245
- version: 1.62.0
259
+ version: 1.68.0
246
260
  type: :development
247
261
  prerelease: false
248
262
  version_requirements: !ruby/object:Gem::Requirement
249
263
  requirements:
250
264
  - - "~>"
251
265
  - !ruby/object:Gem::Version
252
- version: 1.62.0
266
+ version: 1.68.0
253
267
  - !ruby/object:Gem::Dependency
254
268
  name: rubocop-minitest
255
269
  requirement: !ruby/object:Gem::Requirement
256
270
  requirements:
257
271
  - - "~>"
258
272
  - !ruby/object:Gem::Version
259
- version: 0.35.0
273
+ version: 0.36.0
260
274
  type: :development
261
275
  prerelease: false
262
276
  version_requirements: !ruby/object:Gem::Requirement
263
277
  requirements:
264
278
  - - "~>"
265
279
  - !ruby/object:Gem::Version
266
- version: 0.35.0
280
+ version: 0.36.0
267
281
  - !ruby/object:Gem::Dependency
268
282
  name: rubocop-rake
269
283
  requirement: !ruby/object:Gem::Requirement
@@ -278,6 +292,20 @@ dependencies:
278
292
  - - "~>"
279
293
  - !ruby/object:Gem::Version
280
294
  version: 0.6.0
295
+ - !ruby/object:Gem::Dependency
296
+ name: rubocop-sequel
297
+ requirement: !ruby/object:Gem::Requirement
298
+ requirements:
299
+ - - "~>"
300
+ - !ruby/object:Gem::Version
301
+ version: 0.3.3
302
+ type: :development
303
+ prerelease: false
304
+ version_requirements: !ruby/object:Gem::Requirement
305
+ requirements:
306
+ - - "~>"
307
+ - !ruby/object:Gem::Version
308
+ version: 0.3.3
281
309
  - !ruby/object:Gem::Dependency
282
310
  name: simplecov
283
311
  requirement: !ruby/object:Gem::Requirement
@@ -312,14 +340,42 @@ dependencies:
312
340
  requirements:
313
341
  - - "~>"
314
342
  - !ruby/object:Gem::Version
315
- version: 0.12.3
343
+ version: 0.13.1
344
+ type: :development
345
+ prerelease: false
346
+ version_requirements: !ruby/object:Gem::Requirement
347
+ requirements:
348
+ - - "~>"
349
+ - !ruby/object:Gem::Version
350
+ version: 0.13.1
351
+ - !ruby/object:Gem::Dependency
352
+ name: oxidized-web
353
+ requirement: !ruby/object:Gem::Requirement
354
+ requirements:
355
+ - - ">="
356
+ - !ruby/object:Gem::Version
357
+ version: 0.14.0
358
+ type: :development
359
+ prerelease: false
360
+ version_requirements: !ruby/object:Gem::Requirement
361
+ requirements:
362
+ - - ">="
363
+ - !ruby/object:Gem::Version
364
+ version: 0.14.0
365
+ - !ruby/object:Gem::Dependency
366
+ name: sequel
367
+ requirement: !ruby/object:Gem::Requirement
368
+ requirements:
369
+ - - "~>"
370
+ - !ruby/object:Gem::Version
371
+ version: '5.63'
316
372
  type: :development
317
373
  prerelease: false
318
374
  version_requirements: !ruby/object:Gem::Requirement
319
375
  requirements:
320
376
  - - "~>"
321
377
  - !ruby/object:Gem::Version
322
- version: 0.12.3
378
+ version: '5.63'
323
379
  description: software to fetch configuration from network devices and store them
324
380
  email:
325
381
  - saku@ytti.fi
@@ -353,6 +409,7 @@ files:
353
409
  - docs/Configuration.md
354
410
  - docs/Creating-Models.md
355
411
  - docs/Hooks.md
412
+ - docs/Issues.md
356
413
  - docs/Model-Notes/ADVA.md
357
414
  - docs/Model-Notes/APC_AOS.md
358
415
  - docs/Model-Notes/AireOS.md
@@ -362,6 +419,7 @@ files:
362
419
  - docs/Model-Notes/EOS.md
363
420
  - docs/Model-Notes/FSOS.md
364
421
  - docs/Model-Notes/FortiOS.md
422
+ - docs/Model-Notes/HPEAruba.md
365
423
  - docs/Model-Notes/IOS.md
366
424
  - docs/Model-Notes/JunOS.md
367
425
  - docs/Model-Notes/LenovoNOS.md
@@ -370,8 +428,11 @@ files:
370
428
  - docs/Model-Notes/Netgear.md
371
429
  - docs/Model-Notes/Nokia.md
372
430
  - docs/Model-Notes/OS10.md
431
+ - docs/Model-Notes/OS6.md
373
432
  - docs/Model-Notes/PanOS_API.md
374
433
  - docs/Model-Notes/README.md
434
+ - docs/Model-Notes/RouterOS.md
435
+ - docs/Model-Notes/SikluMHTG.md
375
436
  - docs/Model-Notes/SmartAX-Huawei.md
376
437
  - docs/Model-Notes/VRP-Huawei.md
377
438
  - docs/Model-Notes/Viptela.md
@@ -382,14 +443,40 @@ files:
382
443
  - docs/Sources.md
383
444
  - docs/Supported-OS-Types.md
384
445
  - docs/Troubleshooting.md
446
+ - examples/device-simulation/README.md
447
+ - examples/device-simulation/cmdsets/aoscx
448
+ - examples/device-simulation/cmdsets/arubainstant
449
+ - examples/device-simulation/cmdsets/asa
450
+ - examples/device-simulation/cmdsets/ios
451
+ - examples/device-simulation/cmdsets/nxos
452
+ - examples/device-simulation/cmdsets/routeros
453
+ - examples/device-simulation/cmdsets/srosmd
454
+ - examples/device-simulation/device2yaml.rb
455
+ - examples/device-simulation/yaml/aoscx_R0X25A-6410_FL.10.10.1100.yaml
456
+ - examples/device-simulation/yaml/aoscx_R8N85A-C6000-48G-CL4_PL.10.08.1010.yaml
457
+ - examples/device-simulation/yaml/arubainstant_IAP515_8.10.0.6_VWLC.yaml
458
+ - examples/device-simulation/yaml/asa_5512_9.12-4-67_single-context.yaml
459
+ - examples/device-simulation/yaml/asr920_16.8.1b.yaml
460
+ - examples/device-simulation/yaml/garderos_R7709_003_006_068.yaml
461
+ - examples/device-simulation/yaml/iosxe_C9200L-24P-4G_17.09.04a.yaml
462
+ - examples/device-simulation/yaml/iosxe_C9800-L-F-K9_17.06.05.yaml
463
+ - examples/device-simulation/yaml/riverbed_915.yaml
464
+ - examples/device-simulation/yaml/routeros_CHR_7.10.1.yaml
465
+ - examples/device-simulation/yaml/routeros_CHR_7.16.yaml
466
+ - examples/device-simulation/yaml/routeros_L009UiGS_7.15.2.yaml
385
467
  - examples/podman-compose/Makefile
386
468
  - examples/podman-compose/README.md
387
469
  - examples/podman-compose/docker-compose.yml
470
+ - examples/podman-compose/gitserver/.gitignore
471
+ - examples/podman-compose/gitserver/Dockerfile
388
472
  - examples/podman-compose/model-simulation/Dockerfile-model
389
473
  - examples/podman-compose/model-simulation/asternos.sh
390
474
  - examples/podman-compose/oxidized-config/.gitignore
391
475
  - examples/podman-compose/oxidized-config/config
476
+ - examples/podman-compose/oxidized-config/config_csv-file
477
+ - examples/podman-compose/oxidized-config/config_csv-gitserver
392
478
  - examples/podman-compose/oxidized-config/router.db
479
+ - examples/podman-compose/oxidized-ssh/.gitignore
393
480
  - examples/podman-compose/oxidized-ssh/README.md
394
481
  - extra/auto-reload-config.runit
395
482
  - extra/gitdiff-msteams.sh
@@ -453,6 +540,7 @@ files:
453
540
  - lib/oxidized/model/apc_aos.rb
454
541
  - lib/oxidized/model/arbos.rb
455
542
  - lib/oxidized/model/aricentiss.rb
543
+ - lib/oxidized/model/arubainstant.rb
456
544
  - lib/oxidized/model/asa.rb
457
545
  - lib/oxidized/model/asternos.rb
458
546
  - lib/oxidized/model/asyncos.rb
@@ -495,6 +583,7 @@ files:
495
583
  - lib/oxidized/model/enterasys.rb
496
584
  - lib/oxidized/model/enterasys800.rb
497
585
  - lib/oxidized/model/eos.rb
586
+ - lib/oxidized/model/f5os.rb
498
587
  - lib/oxidized/model/fabricos.rb
499
588
  - lib/oxidized/model/fastiron.rb
500
589
  - lib/oxidized/model/fiberdriver.rb
@@ -507,6 +596,7 @@ files:
507
596
  - lib/oxidized/model/ftos.rb
508
597
  - lib/oxidized/model/fujitsupy.rb
509
598
  - lib/oxidized/model/gaiaos.rb
599
+ - lib/oxidized/model/garderos.rb
510
600
  - lib/oxidized/model/gcombnps.rb
511
601
  - lib/oxidized/model/grandstream.rb
512
602
  - lib/oxidized/model/h3c.rb
@@ -543,6 +633,7 @@ files:
543
633
  - lib/oxidized/model/nodegrid.rb
544
634
  - lib/oxidized/model/nos.rb
545
635
  - lib/oxidized/model/nsxconfig.rb
636
+ - lib/oxidized/model/nsxdfw.rb
546
637
  - lib/oxidized/model/nsxfirewall.rb
547
638
  - lib/oxidized/model/nxos.rb
548
639
  - lib/oxidized/model/ocnos.rb
@@ -553,6 +644,7 @@ files:
553
644
  - lib/oxidized/model/openwrt.rb
554
645
  - lib/oxidized/model/opnsense.rb
555
646
  - lib/oxidized/model/os10.rb
647
+ - lib/oxidized/model/os6.rb
556
648
  - lib/oxidized/model/outputs.rb
557
649
  - lib/oxidized/model/panos.rb
558
650
  - lib/oxidized/model/panos_api.rb
@@ -565,11 +657,13 @@ files:
565
657
  - lib/oxidized/model/quantaos.rb
566
658
  - lib/oxidized/model/raisecom.rb
567
659
  - lib/oxidized/model/rgos.rb
660
+ - lib/oxidized/model/riverbed.rb
568
661
  - lib/oxidized/model/routeros.rb
569
662
  - lib/oxidized/model/saos.rb
570
663
  - lib/oxidized/model/screenos.rb
571
664
  - lib/oxidized/model/sgos.rb
572
665
  - lib/oxidized/model/siklu.rb
666
+ - lib/oxidized/model/siklumhtg.rb
573
667
  - lib/oxidized/model/slxos.rb
574
668
  - lib/oxidized/model/smartax.rb
575
669
  - lib/oxidized/model/smartcs.rb
@@ -588,6 +682,7 @@ files:
588
682
  - lib/oxidized/model/trango.rb
589
683
  - lib/oxidized/model/truenas.rb
590
684
  - lib/oxidized/model/ucs.rb
685
+ - lib/oxidized/model/uplinkolt.rb
591
686
  - lib/oxidized/model/viptela.rb
592
687
  - lib/oxidized/model/voltaire.rb
593
688
  - lib/oxidized/model/voss.rb
@@ -615,6 +710,7 @@ files:
615
710
  - lib/oxidized/signals.rb
616
711
  - lib/oxidized/source/csv.rb
617
712
  - lib/oxidized/source/http.rb
713
+ - lib/oxidized/source/jsonfile.rb
618
714
  - lib/oxidized/source/source.rb
619
715
  - lib/oxidized/source/sql.rb
620
716
  - lib/oxidized/version.rb
@@ -634,7 +730,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
634
730
  requirements:
635
731
  - - ">="
636
732
  - !ruby/object:Gem::Version
637
- version: '3.0'
733
+ version: '3.1'
638
734
  required_rubygems_version: !ruby/object:Gem::Requirement
639
735
  requirements:
640
736
  - - ">="