oxidized 0.28.0 → 0.29.0

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