oxidized 0.29.1 → 0.37.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.
- checksums.yaml +4 -4
- data/.coderabbit.yaml +21 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +45 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- data/.github/ISSUE_TEMPLATE/support-request.md +39 -0
- data/.github/workflows/codeql.yml +4 -4
- data/.github/workflows/publishdocker.yml +108 -13
- data/.github/workflows/ruby.yml +3 -12
- data/.github/workflows/stale.yml +6 -1
- data/.gitignore +2 -0
- data/.rubocop.yml +69 -13
- data/.rubocop_todo.yml +13 -143
- data/CHANGELOG.md +431 -4
- data/CONTRIBUTING.md +189 -0
- data/Dockerfile +89 -34
- data/README.md +59 -188
- data/Rakefile +58 -12
- data/bin/oxidized +2 -5
- data/docs/Configuration.md +382 -149
- data/docs/Creating-Models.md +262 -10
- data/docs/DeviceSimulation.md +196 -0
- data/docs/Docker.md +246 -0
- data/docs/Hooks.md +146 -51
- data/docs/Inputs.md +237 -0
- data/docs/Issues.md +123 -0
- data/docs/Model-Notes/APC.md +72 -0
- data/docs/Model-Notes/Cumulus.md +5 -0
- data/docs/Model-Notes/EatonNetwork.md +18 -0
- data/docs/Model-Notes/ExaLink.md +43 -0
- data/docs/Model-Notes/FSOS.md +17 -0
- data/docs/Model-Notes/Fortinet.md +75 -0
- data/docs/Model-Notes/GrandstreamHT8xx.md +8 -0
- data/docs/Model-Notes/HPEAruba.md +32 -0
- data/docs/Model-Notes/IvantiConnectSecure.md +59 -0
- data/docs/Model-Notes/OS6.md +10 -0
- data/docs/Model-Notes/README.md +1 -20
- data/docs/Model-Notes/RouterOS.md +28 -0
- data/docs/Model-Notes/SikluMHTG.md +7 -0
- data/docs/Model-Notes/TrueNAS.md +23 -0
- data/docs/Model-Notes/XGS4600-Zyxel.md +5 -0
- data/docs/ModelUnitTests.md +219 -0
- data/docs/Outputs.md +102 -5
- data/docs/Release.md +102 -0
- data/docs/Ruby-API.md +135 -2
- data/docs/Sources.md +34 -0
- data/docs/Supported-OS-Types.md +207 -270
- data/docs/Troubleshooting.md +43 -1
- data/extra/device2yaml.rb +259 -0
- data/extra/gitdiff-msteams.sh +32 -5
- data/extra/hooks/modelrules.rb +55 -0
- data/extra/hooks/modelrulesadvanced.rb +167 -0
- data/extra/hooks/srcipmap.rb +54 -0
- data/extra/nagios_check_failing_nodes.rb +1 -1
- data/extra/oxidized.runit +1 -1
- data/extra/rest_client.rb +5 -4
- data/extra/syslog.rb +11 -6
- data/lib/oxidized/cli/support.rb +152 -0
- data/lib/oxidized/cli.rb +21 -6
- data/lib/oxidized/config/vars.rb +33 -14
- data/lib/oxidized/config.rb +28 -17
- data/lib/oxidized/core.rb +50 -8
- data/lib/oxidized/hook/ciscosparkdiff.rb +11 -9
- data/lib/oxidized/hook/exec.rb +5 -4
- data/lib/oxidized/hook/githubrepo.rb +55 -18
- data/lib/oxidized/hook/noophook.rb +2 -2
- data/lib/oxidized/hook/slackdiff.rb +50 -14
- data/lib/oxidized/hook/xmppdiff.rb +9 -9
- data/lib/oxidized/hook.rb +68 -16
- data/lib/oxidized/input/cli.rb +8 -3
- data/lib/oxidized/input/debugtext.rb +40 -0
- data/lib/oxidized/input/debugyaml.rb +82 -0
- data/lib/oxidized/input/exec.rb +2 -11
- data/lib/oxidized/input/ftp.rb +2 -19
- data/lib/oxidized/input/http.rb +67 -17
- data/lib/oxidized/input/input.rb +35 -14
- data/lib/oxidized/input/scp.rb +27 -0
- data/lib/oxidized/input/ssh.rb +59 -83
- data/lib/oxidized/input/sshbase.rb +102 -0
- data/lib/oxidized/input/telnet.rb +20 -19
- data/lib/oxidized/input/tftp.rb +8 -8
- data/lib/oxidized/job.rb +18 -7
- data/lib/oxidized/jobs.rb +11 -1
- data/lib/oxidized/logger.rb +51 -0
- data/lib/oxidized/manager.rb +18 -17
- data/lib/oxidized/model/acos.rb +2 -1
- data/lib/oxidized/model/addpack.rb +26 -0
- data/lib/oxidized/model/adtran.rb +5 -1
- data/lib/oxidized/model/adva.rb +3 -3
- data/lib/oxidized/model/airfiber.rb +1 -1
- data/lib/oxidized/model/aos7.rb +11 -0
- data/lib/oxidized/model/aoscx.rb +37 -29
- data/lib/oxidized/model/aosw.rb +39 -29
- data/lib/oxidized/model/apc_aos.rb +7 -2
- data/lib/oxidized/model/apcaos.rb +39 -0
- data/lib/oxidized/model/aricentiss.rb +9 -2
- data/lib/oxidized/model/arubainstant.rb +93 -0
- data/lib/oxidized/model/asa.rb +11 -10
- data/lib/oxidized/model/asternos.rb +22 -0
- data/lib/oxidized/model/asyncos.rb +3 -3
- data/lib/oxidized/model/audiocodes.rb +2 -2
- data/lib/oxidized/model/awplus.rb +15 -12
- data/lib/oxidized/model/axos.rb +1 -1
- data/lib/oxidized/model/bdcom.rb +1 -0
- data/lib/oxidized/model/c4cmts.rb +1 -2
- data/lib/oxidized/model/ciscosma.rb +1 -1
- data/lib/oxidized/model/ciscosmb.rb +6 -1
- data/lib/oxidized/model/cnos.rb +13 -10
- data/lib/oxidized/model/comtrol.rb +1 -1
- data/lib/oxidized/model/comware.rb +5 -3
- data/lib/oxidized/model/cumulus.rb +14 -2
- data/lib/oxidized/model/defacto.rb +26 -0
- data/lib/oxidized/model/dellx.rb +1 -1
- data/lib/oxidized/model/dlink.rb +5 -2
- data/lib/oxidized/model/dlinknextgen.rb +55 -0
- data/lib/oxidized/model/dnos.rb +3 -0
- data/lib/oxidized/model/dslcommands.rb +93 -0
- data/lib/oxidized/model/dslsetup.rb +102 -0
- data/lib/oxidized/model/eatonnetwork.rb +70 -0
- data/lib/oxidized/model/edgecos.rb +3 -1
- data/lib/oxidized/model/edgeos.rb +7 -6
- data/lib/oxidized/model/edgeswitch.rb +3 -1
- data/lib/oxidized/model/efos.rb +41 -0
- data/lib/oxidized/model/eltex.rb +4 -2
- data/lib/oxidized/model/enterasys800.rb +2 -2
- data/lib/oxidized/model/enterprise_sonic.rb +46 -0
- data/lib/oxidized/model/eos.rb +3 -1
- data/lib/oxidized/model/exalink.rb +36 -0
- data/lib/oxidized/model/f5os.rb +17 -0
- data/lib/oxidized/model/fabricos.rb +2 -2
- data/lib/oxidized/model/fastiron.rb +5 -3
- data/lib/oxidized/model/firebrick.rb +2 -2
- data/lib/oxidized/model/firelinuxos.rb +13 -6
- data/lib/oxidized/model/firewareos.rb +10 -1
- data/lib/oxidized/model/fortigate.rb +160 -0
- data/lib/oxidized/model/fortios.rb +38 -48
- data/lib/oxidized/model/fsos.rb +46 -0
- data/lib/oxidized/model/gaiaos.rb +4 -4
- data/lib/oxidized/model/garderos.rb +38 -0
- data/lib/oxidized/model/grandstreamht8xx.rb +19 -0
- data/lib/oxidized/model/h3c.rb +1 -1
- data/lib/oxidized/model/ibos.rb +1 -0
- data/lib/oxidized/model/ingate.rb +47 -0
- data/lib/oxidized/model/ios.rb +57 -30
- data/lib/oxidized/model/iosxr.rb +2 -2
- data/lib/oxidized/model/ironware.rb +7 -5
- data/lib/oxidized/model/ivanti.rb +54 -0
- data/lib/oxidized/model/junos.rb +12 -5
- data/lib/oxidized/model/kornfeldos.rb +33 -0
- data/lib/oxidized/model/lenovonos.rb +2 -0
- data/lib/oxidized/model/linksyssrw.rb +3 -3
- data/lib/oxidized/model/linuxgeneric.rb +4 -2
- data/lib/oxidized/model/macros.rb +60 -0
- data/lib/oxidized/model/mimosab11.rb +34 -0
- data/lib/oxidized/model/ml66.rb +33 -0
- data/lib/oxidized/model/mlnxos.rb +18 -14
- data/lib/oxidized/model/model.rb +98 -103
- data/lib/oxidized/model/mtrlrfs.rb +1 -0
- data/lib/oxidized/model/ndms.rb +6 -0
- data/lib/oxidized/model/netgear.rb +14 -3
- data/lib/oxidized/model/netonix.rb +1 -1
- data/lib/oxidized/model/netscaler.rb +1 -1
- data/lib/oxidized/model/nodegrid.rb +1 -1
- data/lib/oxidized/model/nsxdfw.rb +31 -0
- data/lib/oxidized/model/nsxfirewall.rb +2 -1
- data/lib/oxidized/model/nxos.rb +20 -15
- data/lib/oxidized/model/ocnos.rb +42 -0
- data/lib/oxidized/model/onefinity.rb +18 -0
- data/lib/oxidized/model/openbsd.rb +1 -1
- data/lib/oxidized/model/opengear.rb +36 -1
- data/lib/oxidized/model/openwrt.rb +6 -6
- data/lib/oxidized/model/opnsense.rb +9 -1
- data/lib/oxidized/model/os6.rb +48 -0
- data/lib/oxidized/model/outputs.rb +5 -0
- data/lib/oxidized/model/panos.rb +2 -0
- data/lib/oxidized/model/perle.rb +41 -0
- data/lib/oxidized/model/pfsense.rb +9 -0
- data/lib/oxidized/model/powerconnect.rb +32 -11
- data/lib/oxidized/model/procurve.rb +6 -2
- data/lib/oxidized/model/qtech.rb +3 -1
- data/lib/oxidized/model/quantaos.rb +8 -6
- data/lib/oxidized/model/rgos.rb +33 -0
- data/lib/oxidized/model/riverbed.rb +104 -0
- data/lib/oxidized/model/routeros.rb +18 -11
- data/lib/oxidized/model/saos.rb +18 -1
- data/lib/oxidized/model/saos10.rb +38 -0
- data/lib/oxidized/model/siklu.rb +1 -1
- data/lib/oxidized/model/siklumhtg.rb +22 -0
- data/lib/oxidized/model/sixwind.rb +28 -0
- data/lib/oxidized/model/slxos.rb +3 -3
- data/lib/oxidized/model/smartbyte.rb +48 -0
- data/lib/oxidized/model/sonicos.rb +27 -20
- data/lib/oxidized/model/speedtouch.rb +1 -1
- data/lib/oxidized/model/sros.rb +3 -3
- data/lib/oxidized/model/srosmd.rb +1 -1
- data/lib/oxidized/model/supermicro.rb +1 -1
- data/lib/oxidized/model/telco.rb +1 -1
- data/lib/oxidized/model/tmos.rb +1 -0
- data/lib/oxidized/model/tnsr.rb +57 -0
- data/lib/oxidized/model/tplink.rb +5 -5
- data/lib/oxidized/model/trango.rb +4 -2
- data/lib/oxidized/model/truenas.rb +64 -3
- data/lib/oxidized/model/ucs.rb +1 -1
- data/lib/oxidized/model/unifiap.rb +144 -0
- data/lib/oxidized/model/uplinkolt.rb +46 -0
- data/lib/oxidized/model/voltaire.rb +1 -1
- data/lib/oxidized/model/voss.rb +3 -0
- data/lib/oxidized/model/vrp.rb +5 -1
- data/lib/oxidized/model/vyatta.rb +9 -3
- data/lib/oxidized/model/vyos.rb +37 -0
- data/lib/oxidized/model/xos.rb +10 -1
- data/lib/oxidized/model/zhoneolt.rb +4 -2
- data/lib/oxidized/model/zynos.rb +67 -3
- data/lib/oxidized/model/zynosadsl.rb +14 -0
- data/lib/oxidized/model/zynoscli.rb +1 -1
- data/lib/oxidized/model/zynosgs.rb +2 -0
- data/lib/oxidized/model/zynosmgs.rb +32 -0
- data/lib/oxidized/node.rb +99 -64
- data/lib/oxidized/nodes.rb +40 -19
- data/lib/oxidized/output/file.rb +80 -43
- data/lib/oxidized/output/git.rb +295 -151
- data/lib/oxidized/output/gitcrypt.rb +193 -185
- data/lib/oxidized/output/http.rb +63 -51
- data/lib/oxidized/output/output.rb +20 -4
- data/lib/oxidized/signals.rb +44 -0
- data/lib/oxidized/source/csv.rb +49 -49
- data/lib/oxidized/source/http.rb +76 -63
- data/lib/oxidized/source/jsonfile.rb +68 -0
- data/lib/oxidized/source/source.rb +73 -18
- data/lib/oxidized/source/sql.rb +71 -59
- data/lib/oxidized/version.rb +6 -4
- data/lib/oxidized/worker.rb +57 -29
- data/lib/oxidized.rb +4 -24
- data/lib/refinements.rb +21 -1
- data/oxidized.gemspec +45 -21
- metadata +248 -41
- data/lib/oxidized/model/timos.rb +0 -10
data/docs/Ruby-API.md
CHANGED
|
@@ -2,11 +2,45 @@
|
|
|
2
2
|
|
|
3
3
|
The following objects exist in Oxidized.
|
|
4
4
|
|
|
5
|
+
## Index
|
|
6
|
+
- [Input](#input)
|
|
7
|
+
- [http](#http)
|
|
8
|
+
- [Output](#output)
|
|
9
|
+
- [Source](#source)
|
|
10
|
+
- [Model](#model)
|
|
11
|
+
- [At the top level](#at-the-top-level)
|
|
12
|
+
- [cfg](#cfg)
|
|
13
|
+
- [inputs](#inputs)
|
|
14
|
+
- [cmd](#cmd)
|
|
15
|
+
- [comment](#comment)
|
|
16
|
+
- [prompt](#prompt)
|
|
17
|
+
- [expect](#expect)
|
|
18
|
+
- [pre / post](#pre--post)
|
|
19
|
+
- [macro :enable](#macro-enable)
|
|
20
|
+
- [clean :escape_codes](#clean-escape_codes)
|
|
21
|
+
- [clean :cut](#clean-cut)
|
|
22
|
+
- [At the second level](#at-the-second-level)
|
|
23
|
+
- [comment](#comment-1)
|
|
24
|
+
- [password](#password)
|
|
25
|
+
- [post_login](#post_login)
|
|
26
|
+
- [pre_logout](#pre_logout)
|
|
27
|
+
- [send](#send)
|
|
28
|
+
- [cmd](#cmd-1)
|
|
29
|
+
- [Monkey patching](#monkey-patching)
|
|
30
|
+
- [clear: true](#clear-true)
|
|
31
|
+
- [prepend: true](#prepend-true)
|
|
32
|
+
- [Refinements - String Convenience Methods](#refinements)
|
|
33
|
+
- [cut_tail](#cut_tail)
|
|
34
|
+
- [cut_head](#cut_head)
|
|
35
|
+
- [cut_both](#cut_both)
|
|
36
|
+
- [keep_lines](#keep_lines)
|
|
37
|
+
- [reject_lines](#reject_lines)
|
|
38
|
+
|
|
5
39
|
## Input
|
|
6
40
|
|
|
7
41
|
* gets config from nodes
|
|
8
42
|
* must implement 'connect', 'get', 'cmd'
|
|
9
|
-
* 'ssh', 'telnet', 'ftp', 'tftp', 'http' implemented
|
|
43
|
+
* 'ssh', 'telnet', 'ftp', 'tftp', 'scp', 'http' implemented
|
|
10
44
|
|
|
11
45
|
### http
|
|
12
46
|
|
|
@@ -59,6 +93,40 @@ The block may contain commands to change some behaviour for the given methods
|
|
|
59
93
|
|
|
60
94
|
Supports [monkey patching](#monkey-patching).
|
|
61
95
|
|
|
96
|
+
#### 'inputs'
|
|
97
|
+
`inputs` can be used to specify multiple inputs to be run on the model. It
|
|
98
|
+
takes a list of either input symbols or lists of input symbols:
|
|
99
|
+
```ruby
|
|
100
|
+
inputs [:ssh, %i[scp ftp]]
|
|
101
|
+
inputs [:ssh, :scp]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Oxidized will run the model against each item of `inputs`. If an item is a
|
|
105
|
+
list of symbols (`%i[scp ftp]`), it will try each input in the order
|
|
106
|
+
configured in the `input/default` section of the oxidized configuration file.
|
|
107
|
+
|
|
108
|
+
If `inputs` is not specified, Oxidized will try each input that has a `cfg`
|
|
109
|
+
section in the model, in the order configured in the `input/default` section
|
|
110
|
+
of the oxidized configuration file.
|
|
111
|
+
|
|
112
|
+
To specify which command is to run against which input, use the `input`
|
|
113
|
+
parameter of the `cmd` configuration:
|
|
114
|
+
```ruby
|
|
115
|
+
cmd 'upsabout', input: :ssh do |cfg|
|
|
116
|
+
comment cfg
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
cmd 'config.ini', input: %i[scp ftp] do |cfg|
|
|
120
|
+
"; ========== config.ini ==========\n" + cfg
|
|
121
|
+
end
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
`cmd` without `input` parameter will run against every input.
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
See the [ApcAos model](/lib/oxidized/model/apcaos.rb) for a full example.
|
|
128
|
+
|
|
129
|
+
|
|
62
130
|
#### `cmd`
|
|
63
131
|
|
|
64
132
|
Is used to specify commands that should be executed on a model in order to
|
|
@@ -68,6 +136,7 @@ gather its configuration. It can be called with:
|
|
|
68
136
|
* A string and a block
|
|
69
137
|
* `:all` and a block
|
|
70
138
|
* `:secret` and a block
|
|
139
|
+
* `:significant_changes` and a block
|
|
71
140
|
|
|
72
141
|
The block takes a single parameter `cfg` containing the output of the command
|
|
73
142
|
being processed.
|
|
@@ -88,11 +157,44 @@ given block before emitting it to hide secrets if secret hiding is enabled. The
|
|
|
88
157
|
block should replace any secrets with `'<hidden>'` and return the resulting
|
|
89
158
|
string.
|
|
90
159
|
|
|
160
|
+
Calling `cmd` with `:significant_changes` and a block will pass the final
|
|
161
|
+
configuration to the given block. The resulting string should contain
|
|
162
|
+
significant changes only and will be used to
|
|
163
|
+
[decide if the configuration should be stored](Configuration.md#store-configuration-only-on-significant-changes).
|
|
164
|
+
|
|
91
165
|
Execution order is `:all`, `:secret`, and lastly the command specific block, if
|
|
92
166
|
given.
|
|
93
167
|
|
|
168
|
+
The `cmd "string"` method accepts a lambda function via the `:if` argument
|
|
169
|
+
to execute the command only when the lambda evaluates to true.
|
|
170
|
+
The lambda function is evaluated at runtime in the instance context.
|
|
171
|
+
See [Conditional `cmd`](Creating-Models.md#conditional-cmd) for details.
|
|
172
|
+
|
|
173
|
+
The `cmd "string"` method accepts a list of supported inputs via the `:input`
|
|
174
|
+
argument to limit this command to specific inputs.
|
|
175
|
+
```ruby
|
|
176
|
+
cmd 'config.ini', input: %i[scp ftp] do |cfg|
|
|
177
|
+
"; ========== config.ini ==========\n" + cfg
|
|
178
|
+
end
|
|
179
|
+
```
|
|
180
|
+
|
|
94
181
|
Supports [monkey patching](#monkey-patching).
|
|
95
182
|
|
|
183
|
+
#### pre / post
|
|
184
|
+
After all `cmd` have been run, the blocks defined in pre and post are called. The
|
|
185
|
+
output of pre will be prepended to the output of the model, The output of post
|
|
186
|
+
will be appended.
|
|
187
|
+
|
|
188
|
+
```ruby
|
|
189
|
+
pre do
|
|
190
|
+
"Prepended output after cmd blocks have been run\n"
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
post do
|
|
194
|
+
"Appended output after cmd blocks have been run\n"
|
|
195
|
+
end
|
|
196
|
+
```
|
|
197
|
+
|
|
96
198
|
#### `comment`
|
|
97
199
|
|
|
98
200
|
Called with a single string containing the string to prepend for comments in
|
|
@@ -119,6 +221,28 @@ it's further processed.
|
|
|
119
221
|
|
|
120
222
|
Supports [monkey patching](#monkey-patching).
|
|
121
223
|
|
|
224
|
+
#### `macro :enable`
|
|
225
|
+
Implements an [handling of enable](Creating-Models.md#handling-enable-mode) for the model.
|
|
226
|
+
|
|
227
|
+
#### `clean :escape_codes`
|
|
228
|
+
[Remove ANSI escape codes](Creating-Models.md#remove-ansi-escape-codes) from the output.
|
|
229
|
+
|
|
230
|
+
#### `clean :cut`
|
|
231
|
+
Removes (default) the first and last line of the outputs (most of the time
|
|
232
|
+
command echo and prompt).
|
|
233
|
+
Arguments: head (default: 1), tail (default: 1)
|
|
234
|
+
```ruby
|
|
235
|
+
clean :cut, head: 2, tail: 0
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Equivalent to:
|
|
239
|
+
```ruby
|
|
240
|
+
cmd :all do |cfg|
|
|
241
|
+
cfg.cut_both(2, 0)
|
|
242
|
+
end
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
|
|
122
246
|
### At the second level
|
|
123
247
|
|
|
124
248
|
The following methods are available:
|
|
@@ -161,6 +285,10 @@ Supports [monkey patching](#monkey-patching).
|
|
|
161
285
|
Usually used inside `expect` or blocks passed to `post_login`/`pre_logout`.
|
|
162
286
|
Takes a single parameter: a string to be sent to the device.
|
|
163
287
|
|
|
288
|
+
#### `cmd`
|
|
289
|
+
You can nest a `cmd` block inside first level blocks. It will be executed at
|
|
290
|
+
runtime.
|
|
291
|
+
|
|
164
292
|
### Monkey patching
|
|
165
293
|
|
|
166
294
|
Several model blocks accept behavior-modifying arguments that make monkey
|
|
@@ -171,7 +299,6 @@ This functionality is supported by `cfg`, `cmd`, `pre_*`, `post_*`, and `expect`
|
|
|
171
299
|
blocks.
|
|
172
300
|
|
|
173
301
|
#### `clear: true`
|
|
174
|
-
|
|
175
302
|
Resets the existing block, allowing the user to completely override its contents.
|
|
176
303
|
|
|
177
304
|
#### `prepend: true`
|
|
@@ -201,3 +328,9 @@ single line was present.
|
|
|
201
328
|
|
|
202
329
|
Returns a multi-line string without the first and last lines, or an empty string
|
|
203
330
|
if fewer than three lines were present.
|
|
331
|
+
|
|
332
|
+
#### `keep_lines`
|
|
333
|
+
Returns a multi-line string with only the lines matching any pattern (String or Regexp) given in an array.
|
|
334
|
+
|
|
335
|
+
#### `reject_lines`
|
|
336
|
+
Returns a multi-line string without the lines matching any pattern (String or Regexp) given in an array.
|
data/docs/Sources.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# Sources
|
|
2
2
|
|
|
3
|
+
Note: in all sources, the map attribute `name` is mandatory. It is used to identify the node and
|
|
4
|
+
for example choose the filename for the configuration output.
|
|
5
|
+
|
|
3
6
|
## Source: CSV
|
|
4
7
|
|
|
5
8
|
One line per device, colon separated. If `ip` isn't present, a DNS lookup will be done against `name`. For large installations, setting `ip` will dramatically reduce startup time.
|
|
@@ -55,6 +58,24 @@ and within: `~/.gnupg/gpg.conf`
|
|
|
55
58
|
pinentry-mode loopback
|
|
56
59
|
```
|
|
57
60
|
|
|
61
|
+
## Source: JSONFile
|
|
62
|
+
|
|
63
|
+
One object per device. Supports GPG encryption like the CSV Source.
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
source:
|
|
67
|
+
default: jsonfile
|
|
68
|
+
jsonfile:
|
|
69
|
+
file: /var/lib/oxidized/router.json
|
|
70
|
+
map:
|
|
71
|
+
name: hostname
|
|
72
|
+
model: os
|
|
73
|
+
username: username
|
|
74
|
+
password: password
|
|
75
|
+
vars_map:
|
|
76
|
+
enable: enable
|
|
77
|
+
```
|
|
78
|
+
|
|
58
79
|
## Source: SQL
|
|
59
80
|
|
|
60
81
|
Oxidized uses the `sequel` ruby gem. You can use a variety of databases that aren't explicitly listed. For more information visit https://github.com/jeremyevans/sequel Make sure you have the correct adapter!
|
|
@@ -187,3 +208,16 @@ source:
|
|
|
187
208
|
scheme: https
|
|
188
209
|
secure: false
|
|
189
210
|
```
|
|
211
|
+
|
|
212
|
+
HTTP source also supports pagination. Two settings must be enabled. (`pagination` as a bool and `pagination_key_name` as a string)
|
|
213
|
+
The `pagination_key_name` setting is the key name that an api returns to find the url of the next page.
|
|
214
|
+
|
|
215
|
+
**Disclaimer**: currently only tested with netbox as the source
|
|
216
|
+
|
|
217
|
+
```yaml
|
|
218
|
+
source:
|
|
219
|
+
default: http
|
|
220
|
+
http:
|
|
221
|
+
pagination: true
|
|
222
|
+
pagination_key_name: 'next'
|
|
223
|
+
```
|