oxidized 0.30.1 → 0.31.0

Sign up to get free protection for your applications and to get access to all the features.
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
  - - ">="