oxidized 0.28.0 → 0.29.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 (140) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/publishdocker.yml +8 -1
  3. data/.github/workflows/ruby.yml +42 -0
  4. data/.rubocop.yml +30 -10
  5. data/.rubocop_todo.yml +95 -41
  6. data/CHANGELOG.md +139 -2
  7. data/Dockerfile +13 -9
  8. data/README.md +66 -32
  9. data/Rakefile +2 -0
  10. data/docs/Configuration.md +49 -7
  11. data/docs/Creating-Models.md +10 -4
  12. data/docs/Hooks.md +35 -6
  13. data/docs/Model-Notes/ADVA.md +12 -0
  14. data/docs/Model-Notes/Cumulus.md +7 -1
  15. data/docs/Model-Notes/IOS.md +36 -0
  16. data/docs/Model-Notes/JunOS.md +3 -3
  17. data/docs/Model-Notes/LenovoNOS.md +29 -0
  18. data/docs/Model-Notes/LinksysSRW.md +15 -0
  19. data/docs/Model-Notes/Nokia.md +3 -0
  20. data/docs/Model-Notes/OS10.md +33 -0
  21. data/docs/Model-Notes/PanOS_API.md +28 -0
  22. data/docs/Model-Notes/README.md +2 -0
  23. data/docs/Sources.md +18 -0
  24. data/docs/Supported-OS-Types.md +51 -6
  25. data/docs/Troubleshooting.md +1 -1
  26. data/extra/gitdiff-msteams.sh +91 -0
  27. data/extra/nagios_check_failing_nodes.rb +6 -9
  28. data/extra/oxidized-report-git-commits +71 -14
  29. data/extra/oxidized.init +2 -5
  30. data/extra/oxidized.logrotate +1 -0
  31. data/extra/oxidized.runit +4 -1
  32. data/extra/oxidized.service +5 -8
  33. data/extra/rest_client.rb +1 -1
  34. data/extra/syslog.rb +2 -2
  35. data/lib/oxidized/cli.rb +1 -1
  36. data/lib/oxidized/config/vars.rb +5 -2
  37. data/lib/oxidized/config.rb +6 -3
  38. data/lib/oxidized/core.rb +1 -1
  39. data/lib/oxidized/hook/exec.rb +6 -6
  40. data/lib/oxidized/hook/githubrepo.rb +42 -11
  41. data/lib/oxidized/hook/slackdiff.rb +2 -2
  42. data/lib/oxidized/hook/xmppdiff.rb +45 -25
  43. data/lib/oxidized/hook.rb +4 -8
  44. data/lib/oxidized/input/exec.rb +1 -1
  45. data/lib/oxidized/input/input.rb +1 -0
  46. data/lib/oxidized/input/ssh.rb +23 -20
  47. data/lib/oxidized/input/telnet.rb +52 -44
  48. data/lib/oxidized/job.rb +1 -0
  49. data/lib/oxidized/jobs.rb +11 -6
  50. data/lib/oxidized/manager.rb +1 -0
  51. data/lib/oxidized/model/acmepacket.rb +38 -0
  52. data/lib/oxidized/model/adtran.rb +5 -3
  53. data/lib/oxidized/model/adva.rb +66 -0
  54. data/lib/oxidized/model/airfiber.rb +1 -1
  55. data/lib/oxidized/model/aoscx.rb +96 -0
  56. data/lib/oxidized/model/aosw.rb +1 -1
  57. data/lib/oxidized/model/asa.rb +2 -0
  58. data/lib/oxidized/model/awplus.rb +1 -1
  59. data/lib/oxidized/model/bdcom.rb +49 -0
  60. data/lib/oxidized/model/cambiumepmp.rb +17 -0
  61. data/lib/oxidized/model/casa.rb +4 -1
  62. data/lib/oxidized/model/ciscoce.rb +12 -0
  63. data/lib/oxidized/model/ciscosmb.rb +2 -0
  64. data/lib/oxidized/model/comware.rb +16 -1
  65. data/lib/oxidized/model/cumulus.rb +58 -44
  66. data/lib/oxidized/model/dellx.rb +1 -3
  67. data/lib/oxidized/model/dlink.rb +2 -1
  68. data/lib/oxidized/model/edgecos.rb +22 -2
  69. data/lib/oxidized/model/edgeswitch.rb +4 -4
  70. data/lib/oxidized/model/eltex.rb +48 -0
  71. data/lib/oxidized/model/enterasys.rb +18 -3
  72. data/lib/oxidized/model/enterasys800.rb +29 -0
  73. data/lib/oxidized/model/eos.rb +2 -1
  74. data/lib/oxidized/model/fabricos.rb +1 -1
  75. data/lib/oxidized/model/fastiron.rb +3 -2
  76. data/lib/oxidized/model/fortios.rb +24 -11
  77. data/lib/oxidized/model/fortiwlc.rb +24 -0
  78. data/lib/oxidized/model/gaiaos.rb +40 -3
  79. data/lib/oxidized/model/h3c.rb +40 -0
  80. data/lib/oxidized/model/hatteras.rb +2 -2
  81. data/lib/oxidized/model/hios.rb +38 -0
  82. data/lib/oxidized/model/hpebladesystem.rb +1 -1
  83. data/lib/oxidized/model/ios.rb +13 -10
  84. data/lib/oxidized/model/iosxe.rb +1 -1
  85. data/lib/oxidized/model/ironware.rb +8 -4
  86. data/lib/oxidized/model/junos.rb +5 -1
  87. data/lib/oxidized/model/lancom.rb +23 -0
  88. data/lib/oxidized/model/lenovonos.rb +82 -0
  89. data/lib/oxidized/model/linksyssrw.rb +71 -0
  90. data/lib/oxidized/model/mlnxos.rb +2 -0
  91. data/lib/oxidized/model/model.rb +29 -3
  92. data/lib/oxidized/model/necix.rb +30 -0
  93. data/lib/oxidized/model/netgear.rb +5 -2
  94. data/lib/oxidized/model/netscaler.rb +38 -1
  95. data/lib/oxidized/model/nodegrid.rb +23 -0
  96. data/lib/oxidized/model/nxos.rb +3 -2
  97. data/lib/oxidized/model/openbsd.rb +9 -0
  98. data/lib/oxidized/model/opengear.rb +1 -1
  99. data/lib/oxidized/model/opnsense.rb +12 -4
  100. data/lib/oxidized/model/panos_api.rb +71 -0
  101. data/lib/oxidized/model/pfsense.rb +12 -7
  102. data/lib/oxidized/model/powerconnect.rb +1 -3
  103. data/lib/oxidized/model/procurve.rb +2 -2
  104. data/lib/oxidized/model/purityos.rb +8 -1
  105. data/lib/oxidized/model/quantaos.rb +1 -5
  106. data/lib/oxidized/model/routeros.rb +15 -2
  107. data/lib/oxidized/model/slxos.rb +1 -0
  108. data/lib/oxidized/model/smartcs.rb +40 -0
  109. data/lib/oxidized/model/sonicos.rb +9 -1
  110. data/lib/oxidized/model/srosmd.rb +97 -0
  111. data/lib/oxidized/model/stoneos.rb +6 -2
  112. data/lib/oxidized/model/supermicro.rb +1 -1
  113. data/lib/oxidized/model/swos.rb +9 -0
  114. data/lib/oxidized/model/timos.rb +1 -1
  115. data/lib/oxidized/model/tmos.rb +2 -1
  116. data/lib/oxidized/model/tplink.rb +2 -0
  117. data/lib/oxidized/model/trango.rb +11 -11
  118. data/lib/oxidized/model/truenas.rb +20 -0
  119. data/lib/oxidized/model/vrp.rb +1 -1
  120. data/lib/oxidized/model/xos.rb +4 -3
  121. data/lib/oxidized/model/yamaha.rb +57 -0
  122. data/lib/oxidized/model/zteolt.rb +52 -0
  123. data/lib/oxidized/model/zy1308.rb +11 -0
  124. data/lib/oxidized/node/stats.rb +1 -0
  125. data/lib/oxidized/node.rb +16 -11
  126. data/lib/oxidized/nodes.rb +7 -6
  127. data/lib/oxidized/output/file.rb +2 -1
  128. data/lib/oxidized/output/git.rb +4 -3
  129. data/lib/oxidized/output/gitcrypt.rb +5 -8
  130. data/lib/oxidized/output/http.rb +2 -0
  131. data/lib/oxidized/source/csv.rb +1 -0
  132. data/lib/oxidized/source/http.rb +4 -0
  133. data/lib/oxidized/source/source.rb +7 -2
  134. data/lib/oxidized/source/sql.rb +15 -5
  135. data/lib/oxidized/string.rb +9 -3
  136. data/lib/oxidized/version.rb +2 -2
  137. data/lib/oxidized/worker.rb +5 -5
  138. data/oxidized.gemspec +22 -16
  139. metadata +116 -29
  140. data/.travis.yml +0 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95fc2012e91f74ce819ae87f1c400231e86efa9a7fac37882569bc5426fd3fe5
4
- data.tar.gz: 7ef28ef45e639d0813da0b38cc1f5c5f39bb64e0cb012536b7a774952f723adb
3
+ metadata.gz: 7dfae187ce90fc83fde6d62b7044eac15ca5a803aa05f2064d99ffe04aea938d
4
+ data.tar.gz: d5de2f1a1770c966168ed3385623376f5d335461a6c9403a1ef44bfcbc504a57
5
5
  SHA512:
6
- metadata.gz: a9b04bd2bbcc50f6e71c9ec340712ad10fe33362d4703e317d17e439ed714433400e7d76512ae10fbf928386b9e3bd81e1db1d70f259639015ba506cdf89092b
7
- data.tar.gz: 334d3c403a31d79b3489b430f20142a272022b4cade9321e91173a8c8bd90a9b7244763f853779fdd65a3d6c0cd201c4ccc2cfff7964bc3385f90fc0cb032467
6
+ metadata.gz: '0515586ff98c993834c1aaf40638e8078fb55fa44b120ceffd0c7164216b4307eb6b39145fbff0aeb0d11519f3ee10d2fb82fea73498e243808f2e0eda130e39'
7
+ data.tar.gz: 6afbfb306289a65a8c89799a87b920880547c06e0372f56bbbbafd5b4e85d13d452de5e1593eb2c13320d830a04159dd1046ec4c93e0a20ee7bca2669ac79b53
@@ -2,12 +2,19 @@ name: Publish Docker
2
2
  on: [push]
3
3
  jobs:
4
4
  build:
5
+ if: github.repository_owner == 'ytti'
5
6
  runs-on: ubuntu-latest
6
7
  steps:
7
8
  - uses: actions/checkout@master
9
+ with:
10
+ fetch-depth: 0
11
+ - name: Get Release Version
12
+ id: get_version
13
+ run: echo "release-version=$(git describe --tags)" >> $GITHUB_OUTPUT
8
14
  - name: Publish to Registry
9
- uses: elgohr/Publish-Docker-Github-Action@master
15
+ uses: elgohr/Publish-Docker-Github-Action@v5
10
16
  with:
11
17
  name: oxidized/oxidized
12
18
  username: ${{ secrets.DOCKER_USERNAME }}
13
19
  password: ${{ secrets.DOCKER_PASSWORD }}
20
+ tags: "latest,${{ steps.get_version.outputs.release-version }}"
@@ -0,0 +1,42 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: CI
9
+
10
+ on: [ push, pull_request ]
11
+ # push:
12
+ # branches: [ master ]
13
+ # pull_request:
14
+ # branches: [ master ]
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ ruby-version: ['3.0', '3.1', '3.2']
23
+
24
+ steps:
25
+ - uses: actions/checkout@v3
26
+ - name: Set up Ruby
27
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{ matrix.ruby-version }}
32
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
33
+ - name: rubocop
34
+ uses: reviewdog/action-rubocop@v2
35
+ with:
36
+ rubocop_version: gemfile
37
+ rubocop_extensions: rubocop-minitest:gemfile rubocop-rake:gemfile
38
+ reporter: github-pr-review
39
+ - name: Run tests
40
+ run: bundle exec rake
41
+ - uses: codecov/codecov-action@v3
42
+ if: ${{ always() }}
data/.rubocop.yml CHANGED
@@ -2,22 +2,29 @@ inherit_from: .rubocop_todo.yml
2
2
 
3
3
  # Do not attempt to police vendored code
4
4
  AllCops:
5
- TargetRubyVersion: 2.3
5
+ NewCops: enable
6
+ TargetRubyVersion: 3.0
6
7
  Exclude:
7
8
  - 'vendor/**/*'
8
9
 
9
- StringLiterals:
10
+ Style/StringLiterals:
10
11
  Enabled: false
11
12
 
12
13
  Style/FrozenStringLiteralComment:
13
14
  Enabled: false
14
15
 
15
- LineLength:
16
+ Layout/LineLength:
16
17
  Enabled: false
17
18
 
18
19
  Lint/AmbiguousRegexpLiteral:
19
20
  Enabled: false
20
21
 
22
+ Lint/RaiseException:
23
+ Enabled: true
24
+
25
+ Lint/StructNewOverride:
26
+ Enabled: true
27
+
21
28
  # Stick to verbose until https://bugs.ruby-lang.org/issues/10177 is closed.
22
29
  Style/PreferredHashMethods:
23
30
  EnforcedStyle: verbose
@@ -60,14 +67,27 @@ Style/Documentation:
60
67
  Style/ParallelAssignment:
61
68
  Enabled: false
62
69
 
70
+ Metrics/MethodLength:
71
+ Max: 45
72
+
63
73
  ## Metrics/AbcSize:
64
74
  ## Max: 28
65
- ##
66
- ## Metrics/MethodLength:
67
- ## Max: 20
68
- ##
69
- ## Metrics/ClassLength:
70
- ## Max: 140
71
- ##
75
+
76
+ Metrics/ClassLength:
77
+ Max: 200
78
+
72
79
  ## Metrics/CyclomaticComplexity:
73
80
  ## Max: 7
81
+
82
+ Metrics/BlockLength:
83
+ Max: 150
84
+
85
+ Metrics/ParameterLists:
86
+ Max: 6
87
+
88
+ Lint/EmptyBlock:
89
+ Enabled: false
90
+
91
+ require:
92
+ - rubocop-rake
93
+ - rubocop-minitest
data/.rubocop_todo.yml CHANGED
@@ -1,51 +1,33 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2020-02-29 09:58:06 +0100 using RuboCop version 0.80.0.
3
+ # on 2023-04-03 06:53:54 UTC using RuboCop version 1.48.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
9
  # Offense count: 3
10
- # Configuration parameters: AllowComments.
10
+ # Configuration parameters: AllowComments, AllowNil.
11
11
  Lint/SuppressedException:
12
12
  Exclude:
13
13
  - 'lib/oxidized/input/ssh.rb'
14
14
  - 'lib/oxidized/input/telnet.rb'
15
15
  - 'lib/oxidized/nodes.rb'
16
16
 
17
- # Offense count: 67
17
+ # Offense count: 62
18
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
18
19
  Metrics/AbcSize:
19
- Max: 82
20
+ Max: 92
20
21
 
21
- # Offense count: 18
22
- # Configuration parameters: CountComments, ExcludedMethods.
23
- # ExcludedMethods: refine
24
- Metrics/BlockLength:
25
- Max: 142
26
-
27
- # Offense count: 6
28
- # Configuration parameters: CountComments.
29
- Metrics/ClassLength:
30
- Max: 196
31
-
32
- # Offense count: 11
22
+ # Offense count: 16
23
+ # Configuration parameters: AllowedMethods, AllowedPatterns.
33
24
  Metrics/CyclomaticComplexity:
34
- Max: 14
35
-
36
- # Offense count: 61
37
- # Configuration parameters: CountComments, ExcludedMethods.
38
- Metrics/MethodLength:
39
- Max: 41
40
-
41
- # Offense count: 1
42
- # Configuration parameters: CountKeywordArgs.
43
- Metrics/ParameterLists:
44
- Max: 6
25
+ Max: 12
45
26
 
46
- # Offense count: 11
27
+ # Offense count: 13
28
+ # Configuration parameters: AllowedMethods, AllowedPatterns.
47
29
  Metrics/PerceivedComplexity:
48
- Max: 14
30
+ Max: 12
49
31
 
50
32
  # Offense count: 1
51
33
  Naming/AccessorMethodName:
@@ -70,8 +52,8 @@ Naming/MemoizedInstanceVariableName:
70
52
  Exclude:
71
53
  - 'lib/oxidized/string.rb'
72
54
 
73
- # Offense count: 14
74
- # Cop supports --auto-correct.
55
+ # Offense count: 9
56
+ # This cop supports safe autocorrection (--autocorrect).
75
57
  # Configuration parameters: PreferredName.
76
58
  Naming/RescuedExceptionsVariableName:
77
59
  Exclude:
@@ -82,23 +64,25 @@ Naming/RescuedExceptionsVariableName:
82
64
  - 'lib/oxidized/config.rb'
83
65
  - 'lib/oxidized/node.rb'
84
66
  - 'lib/oxidized/nodes.rb'
85
- - 'lib/oxidized/output/git.rb'
86
- - 'lib/oxidized/output/gitcrypt.rb'
87
67
  - 'lib/oxidized/source/sql.rb'
88
68
 
69
+ # Offense count: 2
70
+ Rake/DuplicateTask:
71
+ Exclude:
72
+ - 'Rakefile'
73
+
89
74
  # Offense count: 1
90
75
  Security/Eval:
91
76
  Exclude:
92
77
  - 'Rakefile'
93
78
 
94
- # Offense count: 4
95
- # Cop supports --auto-correct.
96
- # Configuration parameters: AutoCorrect, EnforcedStyle.
79
+ # Offense count: 3
80
+ # This cop supports unsafe autocorrection (--autocorrect-all).
81
+ # Configuration parameters: EnforcedStyle.
97
82
  # SupportedStyles: nested, compact
98
83
  Style/ClassAndModuleChildren:
99
84
  Exclude:
100
85
  - 'lib/oxidized/config/vars.rb'
101
- - 'lib/oxidized/input/telnet.rb'
102
86
  - 'lib/oxidized/nodes.rb'
103
87
 
104
88
  # Offense count: 2
@@ -106,15 +90,85 @@ Style/ClassVars:
106
90
  Exclude:
107
91
  - 'lib/oxidized.rb'
108
92
 
109
- # Offense count: 2
93
+ # Offense count: 1
94
+ # This cop supports unsafe autocorrection (--autocorrect-all).
95
+ # Configuration parameters: EnforcedStyle.
96
+ # SupportedStyles: allowed_in_returns, forbidden
110
97
  Style/DoubleNegation:
111
98
  Exclude:
112
- - 'lib/oxidized/cli.rb'
113
99
  - 'lib/oxidized/hook/exec.rb'
114
100
 
115
- # Offense count: 36
116
- # Cop supports --auto-correct.
101
+ # Offense count: 1
102
+ # This cop supports unsafe autocorrection (--autocorrect-all).
103
+ Style/GlobalStdStream:
104
+ Exclude:
105
+ - 'lib/oxidized.rb'
106
+
107
+ # Offense count: 3
108
+ Style/OpenStructUse:
109
+ Exclude:
110
+ - 'lib/oxidized/hook.rb'
111
+ - 'lib/oxidized/node.rb'
112
+ - 'spec/hook/githubrepo_spec.rb'
113
+
114
+ # Offense count: 27
115
+ # This cop supports safe autocorrection (--autocorrect).
116
+ Style/RedundantRegexpCharacterClass:
117
+ Exclude:
118
+ - 'lib/oxidized/model/axos.rb'
119
+ - 'lib/oxidized/model/comtrol.rb'
120
+ - 'lib/oxidized/model/fabricos.rb'
121
+ - 'lib/oxidized/model/ironware.rb'
122
+ - 'lib/oxidized/model/mlnxos.rb'
123
+ - 'lib/oxidized/model/nxos.rb'
124
+ - 'lib/oxidized/model/slxos.rb'
125
+ - 'lib/oxidized/model/sonicos.rb'
126
+ - 'lib/oxidized/model/speedtouch.rb'
127
+ - 'lib/oxidized/model/telco.rb'
128
+ - 'lib/oxidized/model/ucs.rb'
129
+ - 'lib/oxidized/model/voltaire.rb'
130
+ - 'lib/oxidized/model/zhoneolt.rb'
131
+ - 'lib/oxidized/model/zynoscli.rb'
132
+
133
+ # Offense count: 37
134
+ # This cop supports safe autocorrection (--autocorrect).
135
+ Style/RedundantRegexpEscape:
136
+ Exclude:
137
+ - 'lib/oxidized/model/adva.rb'
138
+ - 'lib/oxidized/model/airfiber.rb'
139
+ - 'lib/oxidized/model/aosw.rb'
140
+ - 'lib/oxidized/model/c4cmts.rb'
141
+ - 'lib/oxidized/model/dellx.rb'
142
+ - 'lib/oxidized/model/eltex.rb'
143
+ - 'lib/oxidized/model/enterasys800.rb'
144
+ - 'lib/oxidized/model/netonix.rb'
145
+ - 'lib/oxidized/model/netscaler.rb'
146
+ - 'lib/oxidized/model/openbsd.rb'
147
+ - 'lib/oxidized/model/siklu.rb'
148
+ - 'lib/oxidized/model/slxos.rb'
149
+ - 'lib/oxidized/model/sonicos.rb'
150
+ - 'lib/oxidized/model/trango.rb'
151
+
152
+ # Offense count: 45
153
+ # This cop supports safe autocorrection (--autocorrect).
117
154
  # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
118
155
  # SupportedStyles: slashes, percent_r, mixed
119
156
  Style/RegexpLiteral:
120
157
  Enabled: false
158
+
159
+ # Offense count: 31
160
+ # This cop supports unsafe autocorrection (--autocorrect-all).
161
+ Style/SlicingWithRange:
162
+ Enabled: false
163
+
164
+ # Offense count: 81
165
+ # This cop supports unsafe autocorrection (--autocorrect-all).
166
+ # Configuration parameters: Mode.
167
+ Style/StringConcatenation:
168
+ Enabled: false
169
+
170
+ # Offense count: 1
171
+ # This cop supports unsafe autocorrection (--autocorrect-all).
172
+ Style/ZeroLengthPredicate:
173
+ Exclude:
174
+ - 'lib/oxidized/core.rb'
data/CHANGELOG.md CHANGED
@@ -6,6 +6,140 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.29.0 - 2023-04-13]
10
+
11
+ - Ensure Docker Builds are tagged with latest and version (using `git describe --tags`) (@aschaber1)
12
+ - Upgrade Dockerfile baseimage to Ubuntu 22.04 and Ruby 3.0 (@aschaber1)
13
+ - Upgrade Ruby dependency to Ruby 3.0+ (@aschaber1)
14
+ - model for PanOS & Panorama via HTTP API (@pv2b, @sts)
15
+ - model for MikroTik SwOS devicse (@sm-nessus)
16
+ - model for TrueNAS devices (@neilschelly)
17
+ - model for Acme Packet devices (@ha36d)
18
+ - model for SmartCS devise (@yoshihito-tatano)
19
+ - Cumulus: added option to use NCLU as ia collecting method
20
+ - Update net-ssh to 7.0.1 (using `append_all_supported_algorithms: true`)
21
+ - Allow (config) (vlan-####) confirmation (y/n) and sftp questions in procurve prompt (@sorano)
22
+ - Added new model called `srosmd` to backup configuration fron Nokia SR OS devices running in the model-driven CLI mode, which has different syntax to existing `sros` model.
23
+ - fix: allow Netgear devices to finish SSH session correctly
24
+ - More pager handling for MIS5030Q (@glance-)
25
+ - Update logrotate example to allow logrotate service to start before any logs exist
26
+ - Mask NX-OS tacacs+ host keys (@0x4c6565)
27
+ - airfiber: prompt matching made case-insensitive to support AF5xHD (@noaheroufus)
28
+ - Cumulus: add support for dhcp-relay (@ohai89)
29
+ - Github Action: Support creating custom version tag in a release
30
+ - Add support for no enable password set on ironware
31
+ - change pfSense secret scrubbing to keep config as well-formed XML
32
+ - Add support for comware HPE Office Connect 1950
33
+ - Added model for Hirschmann Hios devices, next to alread present Hirschmann classic (@tijldeneut)
34
+ - (StoneOS) Prompt fix for long device names, '^H' handling and removal of ever-changing data (@dMailonG)
35
+
36
+ ### Added
37
+
38
+ - install rugged with ssh in Dockerfile (@agrevtcev)
39
+ - allow to run as non-root user in Docker (@agrevtcev)
40
+ - Extend http source configurations to include read_timeout value
41
+ - model for bdcom-based fiberstore switches (@candlerb)
42
+ - enterasys800 model for enterasys 800-series fe/ge switches (@javichumellamo)
43
+ - add ES3526XA-V2 support in EdgeCOS model (@moisseev)
44
+ - model for eltex mes-series switches (@glaubway)
45
+ - model for zte c300 and c320 olt (@glaubway)
46
+ - model for LANCOM (@systeembeheerder)
47
+ - model for Aruba CX switches (@jmurphy5)
48
+ - model for FortiWLC WLAn Controller (@MrMarioMichel)
49
+ - model for NEC IX devices (@mikenowak)
50
+ - Added docs for Dell/EMC Networking OS10 devices (@davromaniak)
51
+ - model for Zyxel 1308 OLTs (@baldoarturo)
52
+ - model for Linksys SRW switches (@glance-)
53
+ - Added exec hook variables to retrieve verbose node's failure reason and type
54
+ - model for Cambium ePMP radios (@martydingo)
55
+ - Added GaiaOS support for virtual systems (@rwxd)
56
+ - Added new `group_map` configuration option (@mjbnz)
57
+ - Dockerfile rebased to phusion/baseimage-docker focal-1.2.0
58
+ - model for Lenovo Network OS (@seros1521)
59
+ - new option: use_max_threads
60
+ - model for ADVA devices (@stephrdev)
61
+ - model for YAMAHA NVR/RTX Series (@bluekirin55)
62
+ - model for ZPE Nodegrid OS (@euph333)
63
+ - model for H3C switches
64
+ - model for Cisco Catalyst Express switches (@unemongod)
65
+ - extended mysql source configuration to include tls options (@glaubway)
66
+ - updated rugged in gemspec for ruby 3.0 support (@firefishy)
67
+ - Added exec hook for MS Teams webhook (@systeembeheerder)
68
+
69
+ ### Changed
70
+
71
+ - Better manage of the enable mode in edgeswitch.rb (@agabellini)
72
+ - Adds paging support to Enterasys B3/C3 (@piterpunk)
73
+ - Allows "Username" as username prompt in Brocade ICX-series devices (@piterpunk)
74
+ - Add show-sensitive flag on export command on Mikrotik RouterOS when remove_secret is off (@kedare)
75
+ - rubocop dependency now ~> 0.81.0, the last one with ruby 2.3 support
76
+ - change pfSense secret scrubbing to handle new format in 2.4.5+
77
+ - Dockerfile rebased to phusion/baseimage-docker bionic-1.0.0
78
+ - scrub PoE related messages from routeros config output (@pioto)
79
+ - support for d-link dgs-1100 series switches in dlink model (@glaubway)
80
+ - enterasys model now works with both ro and rw access (@sargon)
81
+ - restore including last configuration change IOS if the change is done by real user. Resolves #1921 (@raunz)
82
+ - Additional scrubbing for SonicOS v7 devices (@gerard780)
83
+ - improved Telnet support for enterasys (@jplitza)
84
+ - Include "show version" output for enterasys (@jplitza)
85
+ - xmppdiff now also shows diffs with only removed or only added lines (@jplitza)
86
+ - xmppdiff now persists its connection to the XMPP server and MUC (@jplitza)
87
+ - routeros no longer backups infos on available updates (@jplitza)
88
+ - avoid /humidity hardware field in tmos (F5) to be reported (@albsga)
89
+ - read all configurations in partition folder for tmos (F5) (@dalamanster)
90
+ - version information or OPNsense and PFsense models is now included as XML comments (@pv2b)
91
+ - netscaler, backup all partitions (@smallsam)
92
+ - only runs SSH proxy commands if the ssh_proxy configuration item has been defined (@jameskirsop)
93
+ - updated vrp.rb to correctly parse huawei devices
94
+ - asa: information about the configuration change time is deleted
95
+ - Extended groups configuration to support models vars within a group (@mjbnz)
96
+ - Extended `remote_repo` configuration to allow repo specific ssh keys (@mjbnz)
97
+ - sonicos: added scrubbing for hashed values (@televat0rs)
98
+ - nxos: Additional scrubbing for nxos device passwords (@derekivey)
99
+ - nxos: Fix password match to avoid stripping out the user role. (@derekivey)
100
+ - OpenBSD: Include bgpd, ospfd and ospf6d files (@woopstar)
101
+ - scrub often changing values in junos license output (@matejv)
102
+ - comware: support for enable(super) login password added (@delvta)
103
+ - use slack-ruby-client instead of slack-api for slackdiff hook (@0xmc)
104
+ - ios: Add support for RBAC in IOS model (@jameskirsop)
105
+ - hide unsupported-transceiver license key in Arista EOS (@davidc)
106
+ - edgecos: add support for FS S3900-48T6S-R (@cgsecurity)
107
+
108
+ ### Fixed
109
+
110
+ - fixed an issue for IOSXR devices which can't allocate pty because of problem with forwarding agent.
111
+ - fixed an issue with the TrueNAS model where the configuration would come up blank when TrueNAS was also using it. (@neilschelly)
112
+ - fixed on issue where Oxidized could not pull config from Opengear devices #1899 (@rikard0)
113
+ - fixed an issue where Oxidized could not pull config from XOS-devices operating in stacked mode (@DarkCatapulter)
114
+ - fixed an issue where Oxidized could not pull config from XOS-devices that have not saved their configuration (@DarkCatapulter)
115
+ - improved scrubbing of show chassis in ironware model (@michaelpsomiadis)
116
+ - fixed snmp secret handling in netgear model (@CirnoT)
117
+ - generalise fortiOS to support new versions and VM based products e.g. FortiManager, FortiAnalyzer and FortiMail, which requires keyboard-interactive auth method. Includes trial-and-error cmd list to retrieve most infromative config. Fixes #2227. Moved 'system ha status' to 'config global' section to support clusters with virtual domains.
118
+ - filter next periodic save schedule time in xos model output (@sargon)
119
+ - Fix when auto-saved is configured on xos switches (@trappiz)
120
+ - fixed ArubaOS-CX enviroment/system inconsistent values #2297 (@raunz)
121
+ - further improvements to ArubaOS-CX environment values (@olemyhre)
122
+ - Update AirFiber prompt regex (@murrant)
123
+ - System time and running time are now stripped from tplink model output (@spike77453)
124
+ - <?xml... line is no longer improperly stripped from OPNsense and PFsense backups (@pv2b)
125
+ - fixed an issue where Oxidized timeouts in Brocade ICX-series devices (@piterpunk)
126
+ - fixed an issue where EOS config was truncated. Fixes #2038 (@jake2184 @fhibler)
127
+ - fixed missing output from routeros version command (@mjbnz)
128
+ - stopped `clear: true` from removing all commands (@mjbnz)
129
+ - Updated fastiron enable password prompt regex (@pepperoni-pi)
130
+ - fixed an issue where the pfsense model would not report errors in case it was unable to download the configuration e.g. due to insufficient permissions
131
+ - added a missing check for whether to send `enable` commands to Adtran devices (@repnop)
132
+ - fixed an issue where ADVA devices with a configured prompt != `ADVA-->` couldn't be polled (@momorientes)
133
+ - ensure local time and system up time are filtered for ADVA devices (@stephrdev)
134
+ - fixed an issue with FortiOS that didn't accurately match `set ca` lines #2567 (@neilschelly)
135
+ - removed unwanted current date from slxos model
136
+ - fixed secret handling for rip authentication in casa model #2648 (@grahamjohnston)
137
+ - stripped IoT-detect version for Fortigate devices
138
+ - Fix expect usage in models on telnet. Tested with Netgear GS108T. (@arrjay)
139
+ - Fix Sonicwall SonicOS "system-uptime" omission from log (@lazynooblet)
140
+ - purityos: at least v6.3.5 needs other terminal settings (@elliot64)
141
+ - purityos: remove purealerts and VEEAM snapshots from backed up config (@elliot64)
142
+
9
143
  ## [0.28.0 - 2020-05-18]
10
144
 
11
145
  ### Added
@@ -40,7 +174,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
40
174
  - fortios model strips uptime even without remove_secrets (@jplitza)
41
175
  - HP ProCurve now accepts ">" as apart of the prompt (@magnuslarsen)
42
176
  - fix IOS SNMP notification community hiding for informs and v3 (@moisseev)
43
- - fixed issue where the regex-pattern for XOS-prompts used invalid syntax (@darkcatapulter)
177
+ - fixed issue where the regex-pattern for XOS-prompts used invalid syntax (@DarkCatapulter)
178
+ - set terminal width in EdgeCOS model (@moisseev)
179
+ - suppress errors for commands that are not supported on some devices in EdgeCOS model (@moisseev)
180
+ - revert including command names in the output of the EdgeCOS model (@moisseev)
44
181
 
45
182
  ## [0.27.0] - 2019-10-27
46
183
 
@@ -392,7 +529,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
392
529
 
393
530
  ### Fixed
394
531
 
395
- - debugging, tests (by @ElvinEfendi)
532
+ - debugging, tests (by @ElvinEfendi)
396
533
  - nos, panos, acos, procurve, eos, edgeswitch, aosw, fortios updates
397
534
 
398
535
  ## [0.14.3] - 2016-05-25
data/Dockerfile CHANGED
@@ -1,20 +1,20 @@
1
- # Single-stage build of an oxidized container from phusion/baseimage-docker v0.11, derived from Ubuntu 18.04 (Bionic Beaver)
2
- FROM phusion/baseimage:0.11
1
+ # Single-stage build of an oxidized container from phusion/baseimage-docker jammy-1.0.1, derived from Ubuntu 22.04 (Jammy Jellyfish)
2
+ FROM docker.io/phusion/baseimage:jammy-1.0.1
3
3
 
4
4
  # set up dependencies for the build process
5
5
  RUN apt-get -yq update \
6
- && apt-get -yq --no-install-recommends install ruby2.5 ruby2.5-dev libssl1.1 libssl-dev pkg-config make cmake libssh2-1 libssh2-1-dev git g++ libffi-dev ruby-bundler libicu60 libicu-dev libsqlite3-0 libsqlite3-dev libmysqlclient20 libmysqlclient-dev libpq5 libpq-dev zlib1g-dev \
6
+ && apt-get -yq --no-install-recommends install ruby3.0 ruby3.0-dev libssl3 bzip2 libssl-dev pkg-config make cmake libssh2-1 libssh2-1-dev git git-email libmailtools-perl g++ libffi-dev ruby-bundler libicu70 libicu-dev libsqlite3-0 libsqlite3-dev libmysqlclient21 libmysqlclient-dev libpq5 libpq-dev zlib1g-dev \
7
7
  && apt-get clean \
8
8
  && rm -rf /var/lib/apt/lists/*
9
9
 
10
10
  # dependencies for hooks
11
- RUN gem install aws-sdk slack-api xmpp4r cisco_spark --no-ri --no-rdoc
11
+ RUN gem install --no-document aws-sdk slack-ruby-client xmpp4r cisco_spark
12
12
 
13
13
  # dependencies for sources
14
- RUN gem install gpgme sequel sqlite3 mysql2 pg --no-ri --no-rdoc
14
+ RUN gem install --no-document gpgme sequel sqlite3 mysql2 pg
15
15
 
16
16
  # dependencies for inputs
17
- RUN gem install net-tftp net-http-persistent mechanize --no-ri --no-rdoc
17
+ RUN gem install --no-document net-tftp net-http-persistent mechanize
18
18
 
19
19
  # build and install oxidized
20
20
  COPY . /tmp/oxidized/
@@ -22,20 +22,24 @@ WORKDIR /tmp/oxidized
22
22
 
23
23
  # docker automated build gets shallow copy, but non-shallow copy cannot be unshallowed
24
24
  RUN git fetch --unshallow || true
25
- RUN rake install
25
+ RUN CMAKE_FLAGS='-DUSE_SSH=ON' rake install
26
26
 
27
27
  # web interface
28
- RUN gem install oxidized-web --no-ri --no-rdoc
28
+ RUN gem install oxidized-web --no-document
29
29
 
30
30
  # clean up
31
31
  WORKDIR /
32
32
  RUN rm -rf /tmp/oxidized
33
33
  RUN apt-get -yq --purge autoremove ruby-dev pkg-config make cmake ruby-bundler libssl-dev libssh2-1-dev libicu-dev libsqlite3-dev libmysqlclient-dev libpq-dev zlib1g-dev
34
34
 
35
+ # add non-privileged user
36
+ ARG UID=30000
37
+ ARG GID=$UID
38
+ RUN groupadd -g "${GID}" -r oxidized && useradd -u "${UID}" -r -m -d /home/oxidized -g oxidized oxidized
39
+
35
40
  # add runit services
36
41
  COPY extra/oxidized.runit /etc/service/oxidized/run
37
42
  COPY extra/auto-reload-config.runit /etc/service/auto-reload-config/run
38
43
  COPY extra/update-ca-certificates.runit /etc/service/update-ca-certificates/run
39
44
 
40
- VOLUME ["/root/.config/oxidized"]
41
45
  EXPOSE 8888/tcp