oxidized 0.36.0 → 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/.rubocop.yml +3 -0
- data/CHANGELOG.md +26 -0
- data/Rakefile +1 -1
- data/docs/Configuration.md +10 -1
- data/docs/Creating-Models.md +1 -1
- data/docs/Hooks.md +92 -67
- data/docs/Inputs.md +15 -12
- data/docs/Model-Notes/GrandstreamHT8xx.md +8 -0
- data/docs/Model-Notes/RouterOS.md +13 -0
- data/docs/Model-Notes/TrueNAS.md +11 -7
- data/docs/Release.md +6 -1
- data/docs/Supported-OS-Types.md +1 -0
- data/extra/hooks/modelrulesadvanced.rb +0 -1
- data/lib/oxidized/cli/support.rb +152 -0
- data/lib/oxidized/cli.rb +9 -0
- data/lib/oxidized/hook.rb +2 -0
- data/lib/oxidized/input/debugtext.rb +40 -0
- data/lib/oxidized/input/debugyaml.rb +82 -0
- data/lib/oxidized/input/exec.rb +1 -6
- data/lib/oxidized/input/ftp.rb +0 -4
- data/lib/oxidized/input/http.rb +1 -8
- data/lib/oxidized/input/ssh.rb +28 -21
- data/lib/oxidized/input/sshbase.rb +7 -12
- data/lib/oxidized/input/telnet.rb +12 -9
- data/lib/oxidized/input/tftp.rb +0 -4
- data/lib/oxidized/model/aoscx.rb +13 -9
- data/lib/oxidized/model/cumulus.rb +3 -3
- data/lib/oxidized/model/dlinknextgen.rb +1 -0
- data/lib/oxidized/model/fortigate.rb +1 -1
- data/lib/oxidized/model/grandstreamht8xx.rb +19 -0
- data/lib/oxidized/model/ios.rb +2 -0
- data/lib/oxidized/model/junos.rb +2 -2
- data/lib/oxidized/model/linuxgeneric.rb +4 -2
- data/lib/oxidized/model/nxos.rb +4 -1
- data/lib/oxidized/model/routeros.rb +4 -0
- data/lib/oxidized/model/tplink.rb +4 -6
- data/lib/oxidized/model/truenas.rb +56 -5
- data/lib/oxidized/model/vyos.rb +1 -0
- data/lib/oxidized/version.rb +2 -2
- metadata +6 -1
|
@@ -9,19 +9,70 @@ class TrueNAS < Oxidized::Model
|
|
|
9
9
|
# for TrueNAS SCALE machines, make sure the user you use to connect can run
|
|
10
10
|
# this command, or if needed, with passwordless sudo. Try putting this in
|
|
11
11
|
# /etc/sudoers
|
|
12
|
-
# oxidized ALL=(ALL) NOPASSWD: /usr/bin/sqlite3 file
|
|
12
|
+
# oxidized ALL=(ALL) NOPASSWD: /usr/bin/find /mnt/.ix-apps/app_configs *, /usr/bin/sqlite3 -readonly file\:/data/freenas-v1.db *
|
|
13
13
|
|
|
14
|
-
cmd("sqlite3 'file
|
|
14
|
+
cmd("sqlite3 -readonly 'file:/data/freenas-v1.db' .dump") do |cfg|
|
|
15
15
|
if cfg.include? "Error: unable to open database"
|
|
16
|
-
|
|
16
|
+
# retry with sudo
|
|
17
|
+
cfg = cmd("sudo sqlite3 -readonly 'file:/data/freenas-v1.db' .dump")
|
|
17
18
|
end
|
|
18
19
|
cfg.lines.reject do |line|
|
|
19
|
-
line.match(/^INSERT INTO storage_replication /) ||
|
|
20
|
+
line.match(/^INSERT INTO storage_replication /) || # ignore storage_replication because repl_status field changes on every run
|
|
20
21
|
line.match(/^INSERT INTO system_alert /) || # ignore system alerts in db
|
|
21
|
-
line.match(/^INSERT INTO sqlite_sequence VALUES\('system_alert',/) # ignore system alerts in db
|
|
22
|
+
line.match(/^INSERT INTO sqlite_sequence VALUES\('system_alert',/) || # ignore system alerts in db
|
|
23
|
+
line.match(/^INSERT INTO tasks_cloudsync /) # ignore cloudsync tasks because job field changes on every run
|
|
22
24
|
end.join
|
|
23
25
|
end
|
|
24
26
|
|
|
27
|
+
post do
|
|
28
|
+
filter_column("storage_replication", "repl_state")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
post do
|
|
32
|
+
filter_column("tasks_cloudsync", "job")
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
post do
|
|
36
|
+
collect_ixapps_configurations
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def filter_column(table_name, column_name)
|
|
40
|
+
sqlite_cmd = "sqlite3 -readonly 'file:/data/freenas-v1.db'"
|
|
41
|
+
|
|
42
|
+
# This SQL command will create a SELECT query with all columns except the one we want to skip.
|
|
43
|
+
generate_select_cmd = "select 'select ' || group_concat(name,', ') || ' FROM #{table_name};' FROM pragma_table_info('#{table_name}') WHERE name != '#{column_name}';"
|
|
44
|
+
|
|
45
|
+
select_stmt = cmd("#{sqlite_cmd} \"#{generate_select_cmd}\"")
|
|
46
|
+
if select_stmt.include? "Error: unable to open database"
|
|
47
|
+
# retry with sudo
|
|
48
|
+
sqlite_cmd = "sudo #{sqlite_cmd}"
|
|
49
|
+
select_stmt = cmd("#{sqlite_cmd} \"#{generate_select_cmd}\"")
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
insert_cmds = "-header '.mode insert #{table_name}' '#{select_stmt}'"
|
|
53
|
+
cmd("#{sqlite_cmd} #{insert_cmds}") do |cfg|
|
|
54
|
+
if cfg.include? "INSERT"
|
|
55
|
+
# Don't add a COMMIT; if the query came up with no rows
|
|
56
|
+
cfg + "COMMIT;\n"
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def collect_ixapps_configurations
|
|
62
|
+
config_command = <<~'CMDEND'
|
|
63
|
+
if [ -d /mnt/.ix-apps ];
|
|
64
|
+
then
|
|
65
|
+
sudo find /mnt/.ix-apps/app_configs
|
|
66
|
+
\( -name "app.yaml" -or -name "user_config.yaml" -or -name "metadata.yaml" \)
|
|
67
|
+
-printf "\n\n#######################\n# %p\n#######################\n"
|
|
68
|
+
-exec cat {} \; ;
|
|
69
|
+
else
|
|
70
|
+
echo "# No Apps configuration found in /mnt/.ix-apps";
|
|
71
|
+
fi
|
|
72
|
+
CMDEND
|
|
73
|
+
cmd(config_command.gsub("\n", ""))
|
|
74
|
+
end
|
|
75
|
+
|
|
25
76
|
cfg :ssh do
|
|
26
77
|
exec true # don't run shell, run each command in exec channel
|
|
27
78
|
end
|
data/lib/oxidized/model/vyos.rb
CHANGED
|
@@ -16,6 +16,7 @@ class Vyos < Oxidized::Model
|
|
|
16
16
|
cfg.gsub! /secret (\S+).*/, 'secret <secret removed>'
|
|
17
17
|
cfg.gsub! /password (\S+).*/, 'password <secret removed>'
|
|
18
18
|
cfg.gsub! /snmp community (\S+)/, 'snmp community <secret removed>'
|
|
19
|
+
cfg.gsub! /snmp trap-target ([^\s\\]*) community (\S+)/, 'snmp trap-target \1 community <secret removed>'
|
|
19
20
|
cfg.gsub! /preshared-key (\S+).*/, 'preshared-key <secret removed>'
|
|
20
21
|
cfg.gsub! /private key (\S+).*/, 'private key <secret removed>'
|
|
21
22
|
cfg.gsub! /private-key (\S+).*/, 'private-key <secret removed>'
|
data/lib/oxidized/version.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module Oxidized
|
|
4
|
-
VERSION = '0.
|
|
5
|
-
VERSION_FULL = '0.
|
|
4
|
+
VERSION = '0.37.0'
|
|
5
|
+
VERSION_FULL = '0.37.0'
|
|
6
6
|
def self.version_set
|
|
7
7
|
version_full = %x(git describe --tags).chop rescue ""
|
|
8
8
|
version = %x(git describe --tags --abbrev=0).chop rescue ""
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: oxidized
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.37.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Saku Ytti
|
|
@@ -465,6 +465,7 @@ files:
|
|
|
465
465
|
- docs/Model-Notes/ExaLink.md
|
|
466
466
|
- docs/Model-Notes/FSOS.md
|
|
467
467
|
- docs/Model-Notes/Fortinet.md
|
|
468
|
+
- docs/Model-Notes/GrandstreamHT8xx.md
|
|
468
469
|
- docs/Model-Notes/HPEAruba.md
|
|
469
470
|
- docs/Model-Notes/IOS.md
|
|
470
471
|
- docs/Model-Notes/IvantiConnectSecure.md
|
|
@@ -516,6 +517,7 @@ files:
|
|
|
516
517
|
- extra/update-ca-certificates.runit
|
|
517
518
|
- lib/oxidized.rb
|
|
518
519
|
- lib/oxidized/cli.rb
|
|
520
|
+
- lib/oxidized/cli/support.rb
|
|
519
521
|
- lib/oxidized/config.rb
|
|
520
522
|
- lib/oxidized/config/vars.rb
|
|
521
523
|
- lib/oxidized/core.rb
|
|
@@ -528,6 +530,8 @@ files:
|
|
|
528
530
|
- lib/oxidized/hook/slackdiff.rb
|
|
529
531
|
- lib/oxidized/hook/xmppdiff.rb
|
|
530
532
|
- lib/oxidized/input/cli.rb
|
|
533
|
+
- lib/oxidized/input/debugtext.rb
|
|
534
|
+
- lib/oxidized/input/debugyaml.rb
|
|
531
535
|
- lib/oxidized/input/exec.rb
|
|
532
536
|
- lib/oxidized/input/ftp.rb
|
|
533
537
|
- lib/oxidized/input/http.rb
|
|
@@ -628,6 +632,7 @@ files:
|
|
|
628
632
|
- lib/oxidized/model/garderos.rb
|
|
629
633
|
- lib/oxidized/model/gcombnps.rb
|
|
630
634
|
- lib/oxidized/model/grandstream.rb
|
|
635
|
+
- lib/oxidized/model/grandstreamht8xx.rb
|
|
631
636
|
- lib/oxidized/model/h3c.rb
|
|
632
637
|
- lib/oxidized/model/hatteras.rb
|
|
633
638
|
- lib/oxidized/model/hios.rb
|