oxidized 0.29.1 → 0.30.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/codeql.yml +4 -4
  3. data/.github/workflows/publishdocker.yml +3 -0
  4. data/.github/workflows/ruby.yml +1 -1
  5. data/.github/workflows/stale.yml +4 -1
  6. data/.rubocop.yml +6 -3
  7. data/.rubocop_todo.yml +10 -93
  8. data/CHANGELOG.md +66 -4
  9. data/CONTRIBUTING.md +174 -0
  10. data/Dockerfile +12 -1
  11. data/README.md +18 -36
  12. data/bin/oxidized +2 -5
  13. data/docs/Hooks.md +37 -1
  14. data/docs/Model-Notes/APC_AOS.md +52 -0
  15. data/docs/Model-Notes/FSOS.md +11 -0
  16. data/docs/Model-Notes/FortiOS.md +28 -0
  17. data/docs/Model-Notes/README.md +1 -20
  18. data/docs/Model-Notes/XGS4600-Zyxel.md +5 -0
  19. data/docs/Ruby-API.md +1 -1
  20. data/docs/Sources.md +13 -0
  21. data/docs/Supported-OS-Types.md +178 -270
  22. data/docs/Troubleshooting.md +16 -0
  23. data/examples/podman-compose/Makefile +61 -0
  24. data/examples/podman-compose/README.md +58 -0
  25. data/examples/podman-compose/docker-compose.yml +21 -0
  26. data/examples/podman-compose/model-simulation/Dockerfile-model +13 -0
  27. data/examples/podman-compose/model-simulation/asternos.sh +34 -0
  28. data/examples/podman-compose/oxidized-config/.gitignore +8 -0
  29. data/examples/podman-compose/oxidized-config/config +46 -0
  30. data/examples/podman-compose/oxidized-config/router.db +1 -0
  31. data/examples/podman-compose/oxidized-ssh/README.md +14 -0
  32. data/extra/rest_client.rb +2 -2
  33. data/extra/syslog.rb +2 -2
  34. data/lib/oxidized/cli.rb +6 -4
  35. data/lib/oxidized/config.rb +17 -14
  36. data/lib/oxidized/core.rb +22 -3
  37. data/lib/oxidized/hook.rb +3 -3
  38. data/lib/oxidized/input/exec.rb +1 -1
  39. data/lib/oxidized/input/ftp.rb +2 -2
  40. data/lib/oxidized/input/http.rb +32 -8
  41. data/lib/oxidized/input/input.rb +1 -1
  42. data/lib/oxidized/input/scp.rb +52 -0
  43. data/lib/oxidized/input/ssh.rb +10 -7
  44. data/lib/oxidized/input/telnet.rb +3 -2
  45. data/lib/oxidized/input/tftp.rb +1 -1
  46. data/lib/oxidized/jobs.rb +11 -1
  47. data/lib/oxidized/manager.rb +6 -6
  48. data/lib/oxidized/model/acos.rb +1 -1
  49. data/lib/oxidized/model/addpack.rb +26 -0
  50. data/lib/oxidized/model/adtran.rb +5 -1
  51. data/lib/oxidized/model/adva.rb +2 -2
  52. data/lib/oxidized/model/aoscx.rb +2 -1
  53. data/lib/oxidized/model/apc_aos.rb +2 -1
  54. data/lib/oxidized/model/aricentiss.rb +7 -0
  55. data/lib/oxidized/model/asternos.rb +22 -0
  56. data/lib/oxidized/model/asyncos.rb +2 -2
  57. data/lib/oxidized/model/awplus.rb +2 -2
  58. data/lib/oxidized/model/bdcom.rb +1 -0
  59. data/lib/oxidized/model/c4cmts.rb +1 -2
  60. data/lib/oxidized/model/ciscosma.rb +1 -1
  61. data/lib/oxidized/model/ciscosmb.rb +6 -1
  62. data/lib/oxidized/model/comware.rb +2 -2
  63. data/lib/oxidized/model/cumulus.rb +1 -1
  64. data/lib/oxidized/model/dellx.rb +1 -1
  65. data/lib/oxidized/model/dlink.rb +4 -2
  66. data/lib/oxidized/model/dlinknextgen.rb +51 -0
  67. data/lib/oxidized/model/dnos.rb +3 -0
  68. data/lib/oxidized/model/edgecos.rb +1 -1
  69. data/lib/oxidized/model/eltex.rb +2 -0
  70. data/lib/oxidized/model/enterasys800.rb +1 -1
  71. data/lib/oxidized/model/eos.rb +1 -1
  72. data/lib/oxidized/model/firebrick.rb +2 -2
  73. data/lib/oxidized/model/firewareos.rb +1 -1
  74. data/lib/oxidized/model/fortios.rb +9 -2
  75. data/lib/oxidized/model/fsos.rb +44 -0
  76. data/lib/oxidized/model/ios.rb +1 -1
  77. data/lib/oxidized/model/iosxr.rb +2 -2
  78. data/lib/oxidized/model/junos.rb +3 -2
  79. data/lib/oxidized/model/mimosab11.rb +34 -0
  80. data/lib/oxidized/model/ml66.rb +33 -0
  81. data/lib/oxidized/model/model.rb +3 -3
  82. data/lib/oxidized/model/netgear.rb +1 -1
  83. data/lib/oxidized/model/netscaler.rb +1 -1
  84. data/lib/oxidized/model/nxos.rb +4 -3
  85. data/lib/oxidized/model/ocnos.rb +42 -0
  86. data/lib/oxidized/model/onefinity.rb +18 -0
  87. data/lib/oxidized/model/openbsd.rb +1 -1
  88. data/lib/oxidized/model/opengear.rb +36 -1
  89. data/lib/oxidized/model/opnsense.rb +1 -1
  90. data/lib/oxidized/model/panos.rb +2 -0
  91. data/lib/oxidized/model/pfsense.rb +1 -0
  92. data/lib/oxidized/model/procurve.rb +3 -1
  93. data/lib/oxidized/model/rgos.rb +33 -0
  94. data/lib/oxidized/model/routeros.rb +10 -8
  95. data/lib/oxidized/model/slxos.rb +2 -2
  96. data/lib/oxidized/model/sonicos.rb +18 -17
  97. data/lib/oxidized/model/sros.rb +3 -3
  98. data/lib/oxidized/model/tplink.rb +4 -3
  99. data/lib/oxidized/model/truenas.rb +2 -1
  100. data/lib/oxidized/model/vrp.rb +3 -1
  101. data/lib/oxidized/model/vyatta.rb +6 -0
  102. data/lib/oxidized/model/zynos.rb +67 -3
  103. data/lib/oxidized/model/zynosadsl.rb +14 -0
  104. data/lib/oxidized/model/zynosgs.rb +2 -0
  105. data/lib/oxidized/model/zynosmgs.rb +32 -0
  106. data/lib/oxidized/node.rb +7 -7
  107. data/lib/oxidized/nodes.rb +17 -12
  108. data/lib/oxidized/output/file.rb +1 -1
  109. data/lib/oxidized/output/git.rb +5 -3
  110. data/lib/oxidized/output/gitcrypt.rb +4 -3
  111. data/lib/oxidized/signals.rb +44 -0
  112. data/lib/oxidized/source/csv.rb +1 -1
  113. data/lib/oxidized/source/http.rb +26 -5
  114. data/lib/oxidized/source/source.rb +2 -2
  115. data/lib/oxidized/source/sql.rb +3 -3
  116. data/lib/oxidized/version.rb +2 -2
  117. data/lib/oxidized/worker.rb +8 -1
  118. data/lib/oxidized.rb +3 -2
  119. data/lib/refinements.rb +1 -1
  120. data/oxidized.gemspec +6 -3
  121. metadata +77 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d5f60756df10959016092e920b8d30c1752a54c902c25dd5753f73cf9982dbbe
4
- data.tar.gz: 32e8b6918df95cc21e0a7cdcfb2934385f362a70f5035c70a2271390254826d7
3
+ metadata.gz: d625b3e76b0f0da59640bacd2b46452c9090147e4e37bff750a55a33d4a2f674
4
+ data.tar.gz: 0a5bb64b7fc358ae1d2cc37fd1ba38db94daa577993e43bfbf5e6e0316110dea
5
5
  SHA512:
6
- metadata.gz: 299463a15d5fdbdea8f6e67859eb9c2c9d8ea9c1fe6bf4506a1bc3fb7de9e6ed9f01887e3d999460d67ecfd8eb7994ebd193a0bca33d1cc6fe39e30b8f34293a
7
- data.tar.gz: '095c7d26e35534fac3c3c1fe2615eb31e5d6b6302910c66e3d07ba23f698f9b13b8bbab9e70f84f5a627bf560a6e636e7d8dea7a85158f31012c50c845edf0cd'
6
+ metadata.gz: fcd31252d23f0ac88df32bc90db782712295951fec3c6ec4b4c43fde0534ce002f3ba56de46a8fdd0894e9c6f92588009e6a64c795b7f14f5c0fce39c3729e2a
7
+ data.tar.gz: a3995054f0560def1a4eddc45cb2629817de31d1a197c39764c8027314449f12d139f6e3dcd86494caa8869708e2521da063ec6614b3b88d2a08df4de01b66cc
@@ -40,11 +40,11 @@ jobs:
40
40
 
41
41
  steps:
42
42
  - name: Checkout repository
43
- uses: actions/checkout@v3
43
+ uses: actions/checkout@v4
44
44
 
45
45
  # Initializes the CodeQL tools for scanning.
46
46
  - name: Initialize CodeQL
47
- uses: github/codeql-action/init@v2
47
+ uses: github/codeql-action/init@v3
48
48
  with:
49
49
  languages: ${{ matrix.language }}
50
50
  # If you wish to specify custom queries, you can do so here or in a config file.
@@ -58,7 +58,7 @@ jobs:
58
58
  # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
59
59
  # If this step fails, then you should remove it and run the build manually (see below)
60
60
  - name: Autobuild
61
- uses: github/codeql-action/autobuild@v2
61
+ uses: github/codeql-action/autobuild@v3
62
62
 
63
63
  # ℹ️ Command-line programs to run using the OS shell.
64
64
  # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -71,6 +71,6 @@ jobs:
71
71
  # ./location_of_script_within_repo/buildscript.sh
72
72
 
73
73
  - name: Perform CodeQL Analysis
74
- uses: github/codeql-action/analyze@v2
74
+ uses: github/codeql-action/analyze@v3
75
75
  with:
76
76
  category: "/language:${{matrix.language}}"
@@ -13,6 +13,8 @@ jobs:
13
13
  - name: Get Release Version
14
14
  id: get_version
15
15
  run: echo "release-version=$(git describe --tags)" >> $GITHUB_OUTPUT
16
+ - name: Set up Docker Buildx
17
+ uses: docker/setup-buildx-action@v3
16
18
  - name: Publish to Registry
17
19
  uses: elgohr/Publish-Docker-Github-Action@v5
18
20
  with:
@@ -20,3 +22,4 @@ jobs:
20
22
  username: ${{ secrets.DOCKER_USERNAME }}
21
23
  password: ${{ secrets.DOCKER_PASSWORD }}
22
24
  tags: "latest,${{ steps.get_version.outputs.release-version }}"
25
+ platforms: linux/amd64,linux/arm64
@@ -22,7 +22,7 @@ jobs:
22
22
  ruby-version: ['3.0', '3.1', '3.2']
23
23
 
24
24
  steps:
25
- - uses: actions/checkout@v3
25
+ - uses: actions/checkout@v4
26
26
  - name: Set up Ruby
27
27
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
28
  # change this to (see https://github.com/ruby/setup-ruby#versioning):
@@ -1,3 +1,4 @@
1
+ ---
1
2
  name: "Stale Issue/PR cleanup"
2
3
  on:
3
4
  schedule:
@@ -11,6 +12,8 @@ jobs:
11
12
  stale:
12
13
  runs-on: ubuntu-latest
13
14
  steps:
14
- - uses: actions/stale@v8
15
+ - uses: actions/stale@v9
15
16
  with:
16
17
  operations-per-run: 500
18
+ days-before-issue-stale: 90
19
+ days-before-close: 30
data/.rubocop.yml CHANGED
@@ -7,6 +7,9 @@ AllCops:
7
7
  Exclude:
8
8
  - 'vendor/**/*'
9
9
 
10
+ Gemspec/DevelopmentDependencies:
11
+ EnforcedStyle: gemspec
12
+
10
13
  Style/StringLiterals:
11
14
  Enabled: false
12
15
 
@@ -68,10 +71,10 @@ Style/ParallelAssignment:
68
71
  Enabled: false
69
72
 
70
73
  Metrics/MethodLength:
71
- Max: 45
74
+ Max: 50
72
75
 
73
- ## Metrics/AbcSize:
74
- ## Max: 28
76
+ Metrics/AbcSize:
77
+ Max: 28
75
78
 
76
79
  Metrics/ClassLength:
77
80
  Max: 200
data/.rubocop_todo.yml CHANGED
@@ -1,71 +1,39 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2023-04-14 17:17:03 UTC using RuboCop version 1.48.1.
3
+ # on 2024-02-27 14:27:59 UTC using RuboCop version 1.60.2.
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
- # Offense count: 3
10
- # Configuration parameters: AllowComments, AllowNil.
11
- Lint/SuppressedException:
12
- Exclude:
13
- - 'lib/oxidized/input/ssh.rb'
14
- - 'lib/oxidized/input/telnet.rb'
15
- - 'lib/oxidized/nodes.rb'
16
-
17
- # Offense count: 62
18
- # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
9
+ # Offense count: 27
10
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
19
11
  Metrics/AbcSize:
20
- Max: 92
12
+ Enabled: false
21
13
 
22
- # Offense count: 16
14
+ # Offense count: 17
23
15
  # Configuration parameters: AllowedMethods, AllowedPatterns.
24
16
  Metrics/CyclomaticComplexity:
25
17
  Max: 12
26
18
 
27
- # Offense count: 13
19
+ # Offense count: 14
28
20
  # Configuration parameters: AllowedMethods, AllowedPatterns.
29
21
  Metrics/PerceivedComplexity:
30
22
  Max: 12
31
23
 
32
24
  # Offense count: 1
33
- Naming/AccessorMethodName:
34
- Exclude:
35
- - 'lib/refinements.rb'
36
-
37
- # Offense count: 8
38
25
  Naming/ConstantName:
39
26
  Exclude:
40
27
  - 'extra/rest_client.rb'
41
- - 'lib/oxidized/config.rb'
42
- - 'lib/oxidized/hook.rb'
43
- - 'lib/oxidized/input/ftp.rb'
44
- - 'lib/oxidized/input/input.rb'
45
- - 'lib/oxidized/input/ssh.rb'
46
- - 'lib/oxidized/input/telnet.rb'
47
28
 
48
29
  # Offense count: 1
30
+ # This cop supports unsafe autocorrection (--autocorrect-all).
49
31
  # Configuration parameters: EnforcedStyleForLeadingUnderscores.
50
32
  # SupportedStylesForLeadingUnderscores: disallowed, required, optional
51
33
  Naming/MemoizedInstanceVariableName:
52
34
  Exclude:
53
35
  - 'lib/refinements.rb'
54
36
 
55
- # Offense count: 9
56
- # This cop supports safe autocorrection (--autocorrect).
57
- # Configuration parameters: PreferredName.
58
- Naming/RescuedExceptionsVariableName:
59
- Exclude:
60
- - 'bin/oxidized'
61
- - 'extra/rest_client.rb'
62
- - 'extra/syslog.rb'
63
- - 'lib/oxidized/cli.rb'
64
- - 'lib/oxidized/config.rb'
65
- - 'lib/oxidized/node.rb'
66
- - 'lib/oxidized/nodes.rb'
67
- - 'lib/oxidized/source/sql.rb'
68
-
69
37
  # Offense count: 2
70
38
  Rake/DuplicateTask:
71
39
  Exclude:
@@ -76,14 +44,13 @@ Security/Eval:
76
44
  Exclude:
77
45
  - 'Rakefile'
78
46
 
79
- # Offense count: 3
47
+ # Offense count: 1
80
48
  # This cop supports unsafe autocorrection (--autocorrect-all).
81
49
  # Configuration parameters: EnforcedStyle.
82
50
  # SupportedStyles: nested, compact
83
51
  Style/ClassAndModuleChildren:
84
52
  Exclude:
85
53
  - 'lib/oxidized/config/vars.rb'
86
- - 'lib/oxidized/nodes.rb'
87
54
 
88
55
  # Offense count: 2
89
56
  Style/ClassVars:
@@ -98,12 +65,6 @@ Style/DoubleNegation:
98
65
  Exclude:
99
66
  - 'lib/oxidized/hook/exec.rb'
100
67
 
101
- # Offense count: 1
102
- # This cop supports unsafe autocorrection (--autocorrect-all).
103
- Style/GlobalStdStream:
104
- Exclude:
105
- - 'lib/oxidized.rb'
106
-
107
68
  # Offense count: 3
108
69
  Style/OpenStructUse:
109
70
  Exclude:
@@ -111,45 +72,7 @@ Style/OpenStructUse:
111
72
  - 'lib/oxidized/node.rb'
112
73
  - 'spec/hook/githubrepo_spec.rb'
113
74
 
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
75
+ # Offense count: 47
153
76
  # This cop supports safe autocorrection (--autocorrect).
154
77
  # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
155
78
  # SupportedStyles: slashes, percent_r, mixed
@@ -161,14 +84,8 @@ Style/RegexpLiteral:
161
84
  Style/SlicingWithRange:
162
85
  Enabled: false
163
86
 
164
- # Offense count: 81
87
+ # Offense count: 83
165
88
  # This cop supports unsafe autocorrection (--autocorrect-all).
166
89
  # Configuration parameters: Mode.
167
90
  Style/StringConcatenation:
168
91
  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
@@ -4,15 +4,76 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
- ## [Unreleased]
7
+ ## [0.30.0 – 2024-04-11]
8
8
 
9
- ## Added
9
+ ### Added
10
+ - model for D-Link cisco like CLI (@mirackle-spb)
11
+ - model for Ruijie Networks RGOS devices (@spike77453)
12
+ - Add serial number collection to Opengear (@ermuller)
13
+ - added support for AricentISS 2.x firmware (@davromaniak)
14
+ - model for Asterfusion Network Operating System (@avl-dev)
15
+ - pagination for http source (@davama)
16
+ - model for Ericsson Miniling 6600 series (@schouwenburg)
17
+ - model for Mimosa B11 (@ritzbhuj)
18
+ - added SCP input (@aeiodelic)
19
+ - Added `linux/arm64` and `linux/amd64` platforms to Docker build/publish. (@disaac)
20
+ - Added verion info for Vyatta (@systeembeheerder)
21
+ - model for Fibrestore (fs.com) FSOS (@tcrichton)
22
+ - model for IP Infusion OcNOS
23
+ - model for Fujitsu 1finity (@jerji)
24
+
25
+ ### Changed
26
+ - tp-link: fixed enable mode post login entrance (@mirackle-spb)
27
+ - dlink: fixed prompt for other dlink switches, added additional uptime removal expressions (@mirackle-spb)
28
+ - Collect VC info for juniper ex3400 (@ermuller)
29
+ - adva: fix config content for recovery process, collect config delta instead of current (@MichiMeyer)
30
+ - iosxr: include last config changed by in model (@electrocret)
31
+ - panos: exclude device dictionary
32
+ - Added support for Nokia SAR 7705 HMC in SROS model (@schouwenburg)
33
+ - fortios: only perform a "show" instead of a "show full-configuration" when retrieving configs from fortios. fixes timeouts and avoids extraneous defaulted config information. (@jforeman)
34
+ - opengear: support newer Opengear CM* and OM* models (@matej_v)
35
+ - edgecos: improve system temperature removal (@freddy36)
36
+ - zynos: Rewrite the script to properly collect config via ssh/telnet. Backup with FTP is not working atm, feel free to open an issue if needed. (@sharteeya)
37
+ - pfsense: exclude autogenerated firewall rule timestamps to reduce change churn from use of stuff like PFBlockerNG #2985 (@anthonysomerset)
38
+ - ciscosmb: ignore "Please change the password" hint when doing backup. (@sharteeya)
39
+ - c4cmts: uses chassis eeprom data for inventory information instead of environmental status (@nickhilliard)
40
+ - dlinknextgen removes user and snmp-server secrets (@tcrichton)
41
+ - dnos: hide secrets in "ospf message-digest-key", "authentication-type" and "bsd-username" (@rybnico)
42
+ - junos: Replace dynamic value in VMX-BANDWIDTH with count, hide ssh keys
43
+
44
+ ### Fixed
45
+ - fixed empty lines for ZyXEL GS1900 switches (@jluebbe)
46
+ - fixed prompt for Watchguard FirewareOS not matching the regex when the node is non-master (@netdiver)
47
+ - defined 'psych' runtime dependency to resolve 'unsafe_load' error during startup (@MattKobayashi)
48
+ - fixed new date/time format with newer RouterOS `# jun/01/2023 12:11:25 by RouterOS 7.9.1` vs `# 2023-06-01 12:16:16 by RouterOS 7.10rc1` (@tim427)
49
+ - fixed netscaler backups with hostname set #2828 (@electrocret)
50
+ - Do not redirect stderr when fetching opnsense version since default shell (csh) doesn't support it (@spike77453)
51
+ - Fix missing configuration for Opengear (@ermuller)
52
+ - Fixed fan RPM speeds included in Aruba CX diffs (@danpoltawski)
53
+ - Gitcrypt output refinements (@electrocret)
54
+ - Remove constantly updating dates from backup of Adtran config (@davesbell)
55
+ - fixed prompt for Cumulus to allow usernames with dots and dashes (@ktims)
56
+ - fixed source http when source is librenms (@davama)
57
+ - Fixed login and su regex unable to match in some comware devices (@sharteeya)
58
+ - fixed prompt detection for Netgear M4250-10G2XF-PoE+ and M4300-28G-PoE+ (@rexhaugen)
59
+ - fixed devices (pfsense, opnsense, openwrt) not retriving config after refinement change #2771 #2968 (@robertcheramy)
60
+ - Fixed login into Fortigate when post-login-baned ist enabled. Fixes #2021 (@chrisr0880, @sahdan, @dangoscomb and @robertcheramy)
61
+ - Fixed pre_logout for BDCOM switches
62
+ - Fix 'wpa passphrase' hashed secret for SonicOS devices with built-in wireless #3036 (@lazynooblet)
63
+ - Oxidized will now exit on SIGTERM and SIGINT; SIGHUP will trigger a node list reload and reopen logs (@gs-kamnas)
64
+ - Fix potential busy wait when retries and/or next_adds_job is enabled (@gs-kamnas)
65
+ - Reverting PR #2498 as it broke old procurve models (2510G, 2610, 2824). Fixes #2833, #2871 (@robertcheramy)
66
+ - Fixed regexp used to remove secrets in nxos model. Fixes #3080 (@desnoe)
67
+
68
+ ## [0.29.1 - 2023-04-24]
10
69
 
11
- ## Changed
70
+ ### Added
71
+
72
+ ### Changed
12
73
 
13
74
  - Ensure Docker builds are only pushed to registry on `master` (@aschaber1)
14
75
 
15
- ## Fixed
76
+ ### Fixed
16
77
 
17
78
  - #2749: fix issues with `cut_both`
18
79
 
@@ -114,6 +175,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
114
175
  - ios: Add support for RBAC in IOS model (@jameskirsop)
115
176
  - hide unsupported-transceiver license key in Arista EOS (@davidc)
116
177
  - edgecos: add support for FS S3900-48T6S-R (@cgsecurity)
178
+ - eltex: added one command for disable pagination on Eltex MES2424 switches (@mirackle-spb)
117
179
 
118
180
  ### Fixed
119
181
 
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,174 @@
1
+ # Oxidized - Contributing Guide
2
+ You can contribute to [Oxidized](https://github.com/ytti/oxidized/) in many ways, and first of all we'd like to thank you for taking your time to improve this great project!
3
+
4
+ ## Contribute as a user
5
+ A great place for users to get involved is the [GitHub issues](https://github.com/ytti/oxidized/issues).
6
+ Through the issues, you can interact with maintainers and other users. You can open an issue
7
+ if you need help, but you can also help other users by reviewing their issues and commenting on them.
8
+
9
+ > ## Legal Notice
10
+ > When submitting content to this project, you must agree that you have authored 100%
11
+ > of the content, that you have the necessary rights to the content and that the
12
+ > content you contribute may be provided under the project license.
13
+ >
14
+ > If you are employed, you probably need the permission from your employer to
15
+ > contribute to open source projects.
16
+
17
+ ## Contribute some content
18
+ Content contributions are always welcome. You do not need to be a maintainer for this.
19
+ You even do not need to be a ruby programmer, as an example, the documentation always needs some
20
+ enhancements :-)
21
+
22
+ Contributions can be submitted through pull requests in github. For a full explanation how to
23
+ contribute some content, see [How to contribute content](#how-to-contribute-content).
24
+
25
+ ## Help Needed
26
+
27
+ As things stand right now, `oxidized` is maintained by a few people. A great
28
+ many [contributors](https://github.com/ytti/oxidized/graphs/contributors) have
29
+ helped further the software, however contributions are not the same as ongoing
30
+ owner- and maintainer-ship. It appears that many companies use the software to
31
+ manage their network infrastructure, this is great news! But without additional
32
+ help to maintain the software and put out releases, the future of oxidized
33
+ might be less bright. The current pace of development and the much needed
34
+ refactoring simply are not sustainable if they are to be driven by a few
35
+ persons.
36
+
37
+ ## Model maintainers
38
+ Oxidized supports more than [150 different devices](docs/Supported-OS-Types.md), and there is no way a person
39
+ maintaining the infrastructure code ([Oxidized maintainers](#oxidized-maintainers))
40
+ has any ability to have complete understanding of each model and validity of changes upon them.
41
+
42
+ On the other hand, we have a lot of great users with a detailed understanding of *their*
43
+ favorite hardware and a technical background which is plenty sufficient to support
44
+ *their*" model in oxidized. The model maintainer role is designed to have a very low
45
+ entry barrier, low maintenance burden and needs no long-term commitment.
46
+
47
+ ### Model maintainer tasks
48
+ A model maintainer has the following tasks:
49
+
50
+ * Monitor and comment any model changes in a reasonable time (up to 3 weeks)
51
+ * Monitor, comment and fix issues related to the model in a reasonable time (up to 3 weeks)
52
+ * Note that Oxidized has a very liberal approach to changes: if someone needed it,
53
+ I need good reason to reject it.
54
+ * When a model maintainer comments a Pull Request as ready to merge into main,
55
+ an [Oxidized maintainer](#oxidized-maintainers) will merge it without any
56
+ further checks. If nothing happens, the model maintainer should trigger an Oxidized maintainer directly ;-).
57
+ * If there are multiple model maintainers for a model, they should agree among themselves
58
+ how they want to collaborate
59
+ * Please remove yourself as maintainer, if you no longer wish to respond on changes related to the model. We may remove unresponsive model maintainers, but it is nicer if you let us know.
60
+ * If a model maintainer is unresponsive, the person pushing the change may be a good candidate as a new model maintainer ;-)
61
+
62
+ ### How to add / remove yourself as a model maintainer?
63
+
64
+ The model maintainers are listed in [docs/Supported.OS-Types.md]. Add or remove yourself in the table and push the change to github (pull request). Don't know how? Have a look at [How to contribute content](#how-to-contribute-content).
65
+
66
+ ## Oxidized maintainers
67
+ ### Become a maintainer for Oxidized
68
+ If you would like to be a maintainer for Oxidized then please read through the below and see if it's something you would like to help with. It's not a requirement that you can tick all the boxes below but it helps :)
69
+
70
+ * Triage on issues, review pull requests and help answer any questions from users.
71
+ * Above average knowledge of the Ruby programming language.
72
+ * Professional experience with both oxidized and some other config backup tool (like rancid).
73
+ * Ability to keep a cool head, and enjoy interaction with end users! :)
74
+ * A desire and passion to help drive `oxidized` towards its `1.x.x` stage of life
75
+ * Help refactor the code
76
+ * Rework the core infrastructure
77
+ * Permission from your employer to contribute to open source projects
78
+
79
+ ### YES, I WANT TO HELP
80
+ Awesome! Simply send an e-mail to Saku Ytti at <saku@ytti.fi>.
81
+
82
+ ### Further reading
83
+ Brian Anderson (from Rust fame) wrote an [excellent
84
+ post](http://brson.github.io/2017/04/05/minimally-nice-maintainer) on what it
85
+ means to be a maintainer.
86
+
87
+ ### Current maintainers
88
+ Current active maintainer of Oxidized are:
89
+ * Saku Ytti (@ytti) - he is the original author of Oxidized
90
+ * Alexander Schaber (@aschaber1)
91
+ * Robert Chéramy (@robertcheramy)
92
+
93
+
94
+ ## How to contribute content
95
+ Content can be code, but also documentation and other things.
96
+
97
+ ### Fork the repository
98
+ Fork this repository to your GitHub account by clicking the "Fork" button at the top right. This creates a personal copy of the project you can work on.
99
+
100
+ ### Clone your fork
101
+ Clone your forked repository to your local machine using the `git clone` command:
102
+ ```bash
103
+ git clone git@github.com:##yourname##/oxidized.git
104
+ ```
105
+
106
+ ### Create a new branch
107
+ Create a new branch for your contribution. Choose a concise name for your branch. If your contribution refers to an issue, you may prepend the number of the issue to the branch name.
108
+ ```bash
109
+ git checkout -b 1234-your-branch-name
110
+ ```
111
+
112
+ ### Create a ruby bundle
113
+ You need [Bundler](https://bundler.io/) to install ruby dependencies locally. If it is not already
114
+ installed on your system, it should be prepackaged in your favorite Linux or
115
+ Ruby distribution. On Debian Bookworm, you can install Bundler with `sudo apt install ruby-bundler`
116
+
117
+ ```bash
118
+ bundle config set --local path 'vendor/bundle'
119
+ bundle install
120
+ ```
121
+
122
+ ### Run your code
123
+ ```bash
124
+ bundle exec bin/oxidized
125
+ ```
126
+
127
+ ### Use a custom oxidized configuration
128
+ If you don't want to use the configuration under `~/.config/oxidized/`, you can set the path to your specific configuration with the environement variable `OXIDIZED_HOME': `export OXIDIZED_HOME=~/oxidized-config/`.
129
+
130
+ ### Code like a ruby professional
131
+ rubocop will help you to respect our coding conventions (which are ruby coding conventions).
132
+ ```bash
133
+ bundle exec rubocop
134
+ ```
135
+
136
+ ### Run tests
137
+ Oxidized has integrated tests, that should be run before submitting your work.
138
+ ```bash
139
+ bundle exec rake test
140
+ ```
141
+
142
+ ### Commit your work
143
+ You can save your changes anytime to the branch. These changes are saved locally and not pushed upstream:
144
+ ```bash
145
+ git status
146
+ git diff
147
+ git add <changed files here>
148
+ git commit
149
+ ```
150
+ You can also use a git GUI like [Git Cola](https://git-cola.github.io/) for a better overview of your changes.
151
+
152
+ The commits will be seen in the pull request, so be concise and remember that someone will try to
153
+ understand what you have done.
154
+
155
+ ### Push your work to your github repository
156
+ With this step, your commits will be seen on github. You are pushing the branch you created before (in this example 1234-your-branch-name`) into your fork of Oxidized.
157
+
158
+ ```bash
159
+ git push -u origin 1234-your-branch-name
160
+ ```
161
+
162
+ You can push as often as you wish. If you already opened a pull request, your pushed commits will automatically get updated there.
163
+
164
+ ### Open a pull request
165
+ Go to your github repository, and github will propose to create a pull request and will guide you.
166
+
167
+ We are happy that you are contributing to Oxidized. If something is not as it should be, a maintainer
168
+ will probably ask you to change it when reviewing the pull request. And if your pull request breaks something, this can be fixed, so don't be shy, submit your code ;-)
169
+
170
+ ### Delete the branch from your repository
171
+ When the pull request has been merged into main, github will ask if you want to delete your branch. Clean up and delete it, so that you can keep your fork clean and ready for new contributions.
172
+
173
+ ## One last word
174
+ Have fun, and don't forget to congratulate yourself for your great contribution to [Oxidized](https://github.com/ytti/oxidized/)!
data/Dockerfile CHANGED
@@ -3,7 +3,7 @@ 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 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 \
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 msmtp \
7
7
  && apt-get clean \
8
8
  && rm -rf /var/lib/apt/lists/*
9
9
 
@@ -39,6 +39,17 @@ ARG UID=30000
39
39
  ARG GID=$UID
40
40
  RUN groupadd -g "${GID}" -r oxidized && useradd -u "${UID}" -r -m -d /home/oxidized -g oxidized oxidized
41
41
 
42
+ # link config for msmtp for easier use.
43
+ RUN ln -s /home/oxidized/.config/oxidized/.msmtprc /home/oxidized/
44
+
45
+ # create parent directory & touch required file
46
+ RUN mkdir -p /home/oxidized/.config/oxidized/
47
+ RUN touch /home/oxidized/.config/oxidized/.msmtprc
48
+
49
+ # setup the access to the file
50
+ RUN chmod 600 /home/oxidized/.msmtprc
51
+ RUN chown oxidized:oxidized /home/oxidized/.msmtprc
52
+
42
53
  # add runit services
43
54
  COPY extra/oxidized.runit /etc/service/oxidized/run
44
55
  COPY extra/auto-reload-config.runit /etc/service/auto-reload-config/run