oxidized 0.11.0 → 0.12.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.
- data/CHANGELOG.md +12 -0
- data/Gemfile.lock +1 -1
- data/README.md +12 -8
- data/bin/console +0 -0
- data/extra/auto-reload-config.runit +0 -0
- data/extra/oxidized-report-git-commits +0 -0
- data/extra/oxidized.runit +0 -0
- data/lib/oxidized/config.rb +1 -0
- data/lib/oxidized/input/ftp.rb +1 -1
- data/lib/oxidized/input/ssh.rb +5 -2
- data/lib/oxidized/input/telnet.rb +1 -1
- data/lib/oxidized/jobs.rb +6 -1
- data/lib/oxidized/model/aosw.rb +25 -3
- data/lib/oxidized/model/edgeswitch.rb +25 -0
- data/lib/oxidized/model/fortios.rb +1 -0
- data/lib/oxidized/model/ios.rb +1 -1
- data/lib/oxidized/model/iosxr.rb +1 -1
- data/lib/oxidized/model/ironware.rb +2 -2
- data/lib/oxidized/model/opengear.rb +19 -0
- data/lib/oxidized/model/powerconnect.rb +3 -1
- data/lib/oxidized/model/tmos.rb +48 -0
- data/lib/oxidized/nodes.rb +1 -0
- data/lib/oxidized/version.rb +1 -1
- metadata +53 -30
- checksums.yaml +0 -7
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 0.12.0
|
2
|
+
- FEATURE: enhance AOSW (by @mikebryant)
|
3
|
+
- FEATURE: F5 TMOS support (by @mikebryant)
|
4
|
+
- FEATURE: Opengear support (by @mikebryant)
|
5
|
+
- FEATURE: EdgeSwitch support (by @doogieconsulting)
|
6
|
+
- BUGFIX: rename input debug log files
|
7
|
+
- BUGFIX: powerconnect model fixes (by @Madpilot0)
|
8
|
+
- BUGFIX: fortigate model fixes (by @ElvinEfendi)
|
9
|
+
- BUGFIX: various (by @mikebryant)
|
10
|
+
- BUGFIX: write SSH debug to file without buffering
|
11
|
+
- BUGFIX: fix IOS XR prompt handling
|
12
|
+
|
1
13
|
# 0.11.0
|
2
14
|
- FEATURE: ssh proxycommand (by @ElvinEfendi)
|
3
15
|
- FEATURE: basic auth in HTTP source (by @laf)
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -45,11 +45,11 @@ Oxidized is a network device configuration backup tool. It's a RANCID replacemen
|
|
45
45
|
* A10 Networks
|
46
46
|
* ACOS
|
47
47
|
* Alcatel-Lucent
|
48
|
-
* ISAM
|
49
48
|
* AOS
|
50
49
|
* AOS7
|
51
|
-
*
|
50
|
+
* ISAM
|
52
51
|
* TiMOS
|
52
|
+
* Wireless
|
53
53
|
* Arista
|
54
54
|
* EOS
|
55
55
|
* Arris
|
@@ -77,10 +77,11 @@ Oxidized is a network device configuration backup tool. It's a RANCID replacemen
|
|
77
77
|
* AOSW
|
78
78
|
* Extreme Networks
|
79
79
|
* XOS
|
80
|
-
*
|
81
|
-
*
|
80
|
+
* F5
|
81
|
+
* TMOS
|
82
82
|
* Force10
|
83
83
|
* DNOS
|
84
|
+
* FTOS
|
84
85
|
* FortiGate
|
85
86
|
* FortiOS
|
86
87
|
* HP
|
@@ -95,11 +96,14 @@ Oxidized is a network device configuration backup tool. It's a RANCID replacemen
|
|
95
96
|
* RouterOS
|
96
97
|
* MRV
|
97
98
|
* MasterOS
|
99
|
+
* Opengear
|
100
|
+
* Opengear
|
101
|
+
* Palo Alto
|
102
|
+
* PANOS
|
98
103
|
* Ubiquiti
|
99
104
|
* AirOS
|
100
105
|
* Edgeos
|
101
|
-
|
102
|
-
* PANOS
|
106
|
+
* EdgeSwitch
|
103
107
|
* Zyxel
|
104
108
|
* ZyNOS
|
105
109
|
|
@@ -218,7 +222,7 @@ rvm use --default 2.1.2
|
|
218
222
|
```
|
219
223
|
6. run container again:
|
220
224
|
```
|
221
|
-
root@bla:~# docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -t oxidized/oxidized:latest
|
225
|
+
root@bla:~# docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -t oxidized/oxidized:latest
|
222
226
|
oxidized[1]: Oxidized starting, running as pid 1
|
223
227
|
oxidized[1]: Loaded 1 nodes
|
224
228
|
Puma 2.13.4 starting...
|
@@ -232,7 +236,7 @@ rvm use --default 2.1.2
|
|
232
236
|
|
233
237
|
If you want to have the config automatically reloaded (e.g. when using a http source that changes)
|
234
238
|
```
|
235
|
-
root@bla:~# docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -e CONFIG_RELOAD_INTERVAL=3600 -t oxidized/oxidized:latest
|
239
|
+
root@bla:~# docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -e CONFIG_RELOAD_INTERVAL=3600 -t oxidized/oxidized:latest
|
236
240
|
```
|
237
241
|
|
238
242
|
## Cookbook
|
data/bin/console
CHANGED
File without changes
|
File without changes
|
File without changes
|
data/extra/oxidized.runit
CHANGED
File without changes
|
data/lib/oxidized/config.rb
CHANGED
@@ -5,6 +5,7 @@ module Oxidized
|
|
5
5
|
class Config
|
6
6
|
Root = File.join ENV['HOME'], '.config', 'oxidized'
|
7
7
|
Crash = File.join Root, 'crash'
|
8
|
+
Log = File.join Root, 'log'
|
8
9
|
InputDir = File.join Directory, %w(lib oxidized input)
|
9
10
|
OutputDir = File.join Directory, %w(lib oxidized output)
|
10
11
|
ModelDir = File.join Directory, %w(lib oxidized model)
|
data/lib/oxidized/input/ftp.rb
CHANGED
@@ -18,7 +18,7 @@ module Oxidized
|
|
18
18
|
def connect node
|
19
19
|
@node = node
|
20
20
|
@node.model.cfg['ftp'].each { |cb| instance_exec(&cb) }
|
21
|
-
@log = File.open(Oxidized::Config::
|
21
|
+
@log = File.open(Oxidized::Config::Log + "-#{@node.ip}-ftp", 'w') if Oxidized.config.input.debug?
|
22
22
|
@ftp = Net::FTP.new @node.ip, @node.auth[:username], @node.auth[:password]
|
23
23
|
connected?
|
24
24
|
end
|
data/lib/oxidized/input/ssh.rb
CHANGED
@@ -21,7 +21,7 @@ module Oxidized
|
|
21
21
|
@output = ''
|
22
22
|
@node.model.cfg['ssh'].each { |cb| instance_exec(&cb) }
|
23
23
|
secure = Oxidized.config.input.ssh.secure
|
24
|
-
@log = File.open(Oxidized::Config::
|
24
|
+
@log = File.open(Oxidized::Config::Log + "-#{@node.ip}-ssh", 'w') if Oxidized.config.input.debug?
|
25
25
|
port = vars(:ssh_port) || 22
|
26
26
|
if proxy_host = vars(:proxy)
|
27
27
|
proxy = Net::SSH::Proxy::Command.new("ssh #{proxy_host} nc %h %p")
|
@@ -79,7 +79,10 @@ module Oxidized
|
|
79
79
|
def shell_open ssh
|
80
80
|
@ses = ssh.open_channel do |ch|
|
81
81
|
ch.on_data do |_ch, data|
|
82
|
-
|
82
|
+
if Oxidized.config.input.debug?
|
83
|
+
@log.print data
|
84
|
+
@log.fsync
|
85
|
+
end
|
83
86
|
@output << data
|
84
87
|
@output = @node.model.expects @output
|
85
88
|
end
|
@@ -16,7 +16,7 @@ module Oxidized
|
|
16
16
|
'Port' => port.to_i,
|
17
17
|
'Timeout' => @timeout,
|
18
18
|
'Model' => @node.model }
|
19
|
-
opt['Output_log'] = Oxidized::Config::
|
19
|
+
opt['Output_log'] = Oxidized::Config::Log + "-#{@node.ip}-telnet" if Oxidized.config.input.debug?
|
20
20
|
|
21
21
|
@telnet = Net::Telnet.new opt
|
22
22
|
if @node.auth[:username] and @node.auth[:username].length > 0
|
data/lib/oxidized/jobs.rb
CHANGED
@@ -20,13 +20,18 @@ module Oxidized
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def duration last
|
23
|
+
if @durations.size > @nodes.size
|
24
|
+
@durations.slice! @nodes.size...@durations.size
|
25
|
+
elsif @durations.size < @nodes.size
|
26
|
+
@durations.fill AVERAGE_DURATION, @durations.size...@nodes.size
|
27
|
+
end
|
23
28
|
@durations.push(last).shift
|
24
29
|
@duration = @durations.inject(:+).to_f / @nodes.size #rolling average
|
25
30
|
new_count
|
26
31
|
end
|
27
32
|
|
28
33
|
def new_count
|
29
|
-
@want = ((@nodes.size * @duration) / @interval).
|
34
|
+
@want = ((@nodes.size * @duration) / @interval).ceil
|
30
35
|
@want = 1 if @want < 1
|
31
36
|
@want = @nodes.size if @want > @nodes.size
|
32
37
|
@want = @max if @want > @max
|
data/lib/oxidized/model/aosw.rb
CHANGED
@@ -11,6 +11,20 @@ class AOSW < Oxidized::Model
|
|
11
11
|
cfg.each_line.to_a[1..-2].join
|
12
12
|
end
|
13
13
|
|
14
|
+
cmd :secret do |cfg|
|
15
|
+
cfg.gsub!(/PRE-SHARE (\S+)$/, 'PRE-SHARE <secret removed>')
|
16
|
+
cfg.gsub!(/ipsec (\S+)$/, 'ipsec <secret removed>')
|
17
|
+
cfg.gsub!(/community (\S+)$/, 'community <secret removed>')
|
18
|
+
cfg.gsub!(/ sha (\S+)/, ' sha <secret removed>')
|
19
|
+
cfg.gsub!(/ des (\S+)/, ' des <secret removed>')
|
20
|
+
cfg.gsub!(/mobility-manager (\S+) user (\S+) (\S+)/, 'mobility-manager \1 user \2 <secret removed>')
|
21
|
+
cfg.gsub!(/mgmt-user (\S+) (\S+) (\S+)$/, 'mgmt-user \1 \2 <secret removed>')
|
22
|
+
cfg.gsub!(/key (\S+)$/, 'key <secret removed>')
|
23
|
+
cfg.gsub!(/secret (\S+)$/, 'secret <secret removed>')
|
24
|
+
cfg.gsub!(/wpa-passphrase (\S+)$/, 'wpa-passphrase <secret removed>')
|
25
|
+
cfg
|
26
|
+
end
|
27
|
+
|
14
28
|
cmd 'show version' do |cfg|
|
15
29
|
cfg = cfg.each_line.select { |line| not line.match /Switch uptime/i }
|
16
30
|
comment cfg.join
|
@@ -26,8 +40,15 @@ class AOSW < Oxidized::Model
|
|
26
40
|
cmd 'show license' do |cfg|
|
27
41
|
comment cfg
|
28
42
|
end
|
29
|
-
cmd 'show
|
30
|
-
|
43
|
+
cmd 'show running-config' do |cfg|
|
44
|
+
out = []
|
45
|
+
cfg.each_line do |line|
|
46
|
+
next if line.match /^controller config \d+$/
|
47
|
+
next if line.match /^Building Configuration/
|
48
|
+
out << line.strip
|
49
|
+
end
|
50
|
+
out = out.join "\n"
|
51
|
+
out << "\n"
|
31
52
|
end
|
32
53
|
|
33
54
|
cfg :telnet do
|
@@ -43,6 +64,7 @@ class AOSW < Oxidized::Model
|
|
43
64
|
end
|
44
65
|
end
|
45
66
|
post_login 'no paging'
|
67
|
+
post_login 'encrypt disable'
|
46
68
|
if vars :enable
|
47
69
|
pre_logout 'exit'
|
48
70
|
end
|
@@ -56,7 +78,7 @@ class AOSW < Oxidized::Model
|
|
56
78
|
next if line.match /Output \d Config/i
|
57
79
|
next if line.match /(Tachometers|Temperatures|Voltages)/
|
58
80
|
next if line.match /((Card|CPU) Temperature|Chassis Fan|VMON1[0-9])/
|
59
|
-
next if line.match /[0-9]+ (
|
81
|
+
next if line.match /[0-9]+ (RPMS?|m?V|C)/i
|
60
82
|
out << line.strip
|
61
83
|
end
|
62
84
|
out = comment out.join "\n"
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class EdgeSwitch < Oxidized::Model
|
2
|
+
|
3
|
+
# Ubiquiti EdgeSwitch #
|
4
|
+
|
5
|
+
comment '!'
|
6
|
+
|
7
|
+
prompt /[(]\w*\s\w*[)][\s#>]*[\s#>]/
|
8
|
+
|
9
|
+
cmd 'show running-config' do |cfg|
|
10
|
+
comment cfg.each_line.reject { |line| line.match /System Up Time.*/ or line.match /Current SNTP Synchronized Time.*/ }.join
|
11
|
+
end
|
12
|
+
|
13
|
+
cfg :telnet do
|
14
|
+
username /Username:\s/
|
15
|
+
passsword /^Password:\s/
|
16
|
+
end
|
17
|
+
|
18
|
+
cfg :telnet, :ssh do
|
19
|
+
post_login 'enable'
|
20
|
+
post_login 'terminal length 0'
|
21
|
+
pre_logout 'exit'
|
22
|
+
pre_logout 'exit'
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
data/lib/oxidized/model/ios.rb
CHANGED
data/lib/oxidized/model/iosxr.rb
CHANGED
@@ -31,8 +31,8 @@ class IronWare < Oxidized::Model
|
|
31
31
|
cmd 'show chassis' do |cfg|
|
32
32
|
cfg.encode!("UTF-8", :invalid => :replace) #sometimes ironware returns broken encoding
|
33
33
|
cfg.gsub! /(^((.*)Current temp(.*))$)/, '' #remove unwanted lines current temperature
|
34
|
-
cfg.gsub! /Speed = [A-Z]{
|
35
|
-
cfg.gsub! /current speed is [A-Z]{
|
34
|
+
cfg.gsub! /Speed = [A-Z-]{2,6} \(\d{2,3}\%\)/, '' #remove unwanted lines Speed Fans
|
35
|
+
cfg.gsub! /current speed is [A-Z]{2,6} \(\d{2,3}\%\)/, ''
|
36
36
|
cfg.gsub! /\d{2}\.\d deg-C/, 'XX.X deg-C'
|
37
37
|
if cfg.include? "TEMPERATURE"
|
38
38
|
sc = StringScanner.new cfg
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class OpenGear < Oxidized::Model
|
2
|
+
|
3
|
+
comment '# '
|
4
|
+
|
5
|
+
cmd :secret do |cfg|
|
6
|
+
cfg.gsub!(/password (\S+)/, 'password <secret removed>')
|
7
|
+
cfg.gsub!(/community (\S+)/, 'community <secret removed>')
|
8
|
+
cfg
|
9
|
+
end
|
10
|
+
|
11
|
+
cmd('cat /etc/version') { |cfg| comment cfg }
|
12
|
+
|
13
|
+
cmd 'config -g config'
|
14
|
+
|
15
|
+
cfg :ssh do
|
16
|
+
exec true # don't run shell, run each command in exec channel
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -26,7 +26,9 @@ class PowerConnect < Oxidized::Model
|
|
26
26
|
clean cfg
|
27
27
|
end
|
28
28
|
|
29
|
-
cmd 'show running-config'
|
29
|
+
cmd 'show running-config' do |cfg|
|
30
|
+
cfg.sub(/^(sflow \S+ destination owner \S+ timeout )\d+$/, '! \1<timeout>')
|
31
|
+
end
|
30
32
|
|
31
33
|
cfg :telnet, :ssh do
|
32
34
|
username /^User( Name)?:/
|
@@ -0,0 +1,48 @@
|
|
1
|
+
class TMOS < Oxidized::Model
|
2
|
+
|
3
|
+
comment '# '
|
4
|
+
|
5
|
+
cmd :secret do |cfg|
|
6
|
+
cfg.gsub!(/password (\S+)/, 'password <secret removed>')
|
7
|
+
cfg.gsub!(/passphrase (\S+)/, 'passphrase <secret removed>')
|
8
|
+
cfg.gsub!(/community (\S+)/, 'community <secret removed>')
|
9
|
+
cfg.gsub!(/community-name (\S+)/, 'community-name <secret removed>')
|
10
|
+
cfg
|
11
|
+
end
|
12
|
+
|
13
|
+
cmd('tmsh show sys version') { |cfg| comment cfg }
|
14
|
+
|
15
|
+
cmd('tmsh show sys software') { |cfg| comment cfg }
|
16
|
+
|
17
|
+
cmd 'tmsh show sys hardware field-fmt' do |cfg|
|
18
|
+
cfg.gsub!(/fan-speed (\S+)/, '')
|
19
|
+
cfg.gsub!(/temperature (\S+)/, '')
|
20
|
+
comment cfg
|
21
|
+
end
|
22
|
+
|
23
|
+
cmd('cat /config/bigip.license') { |cfg| comment cfg }
|
24
|
+
|
25
|
+
cmd 'tmsh list' do |cfg|
|
26
|
+
cfg.gsub!(/state (up|down)/, '')
|
27
|
+
cfg.gsub!(/errors (\d+)/, '')
|
28
|
+
cfg
|
29
|
+
end
|
30
|
+
|
31
|
+
cmd('tmsh list net route all') { |cfg| comment cfg }
|
32
|
+
|
33
|
+
cmd('/bin/ls --full-time --color=never /config/ssl/ssl.crt') { |cfg| comment cfg }
|
34
|
+
|
35
|
+
cmd('/bin/ls --full-time --color=never /config/ssl/ssl.key') { |cfg| comment cfg }
|
36
|
+
|
37
|
+
cmd 'tmsh show running-config sys db all-properties' do |cfg|
|
38
|
+
cfg.gsub!(/sys db configsync.localconfigtime {[^}]+}/m, '')
|
39
|
+
cfg.gsub!(/sys db gtm.configtime {[^}]+}/m, '')
|
40
|
+
cfg.gsub!(/sys db ltm.configtime {[^}]+}/m, '')
|
41
|
+
comment cfg
|
42
|
+
end
|
43
|
+
|
44
|
+
cfg :ssh do
|
45
|
+
exec true # don't run shell, run each command in exec channel
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
data/lib/oxidized/nodes.rb
CHANGED
data/lib/oxidized/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oxidized
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Saku Ytti
|
@@ -10,144 +11,162 @@ authors:
|
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date: 2016-
|
14
|
+
date: 2016-02-05 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: asetus
|
17
18
|
requirement: !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
18
20
|
requirements:
|
19
|
-
- -
|
21
|
+
- - ~>
|
20
22
|
- !ruby/object:Gem::Version
|
21
23
|
version: '0.1'
|
22
24
|
type: :runtime
|
23
25
|
prerelease: false
|
24
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
25
28
|
requirements:
|
26
|
-
- -
|
29
|
+
- - ~>
|
27
30
|
- !ruby/object:Gem::Version
|
28
31
|
version: '0.1'
|
29
32
|
- !ruby/object:Gem::Dependency
|
30
33
|
name: slop
|
31
34
|
requirement: !ruby/object:Gem::Requirement
|
35
|
+
none: false
|
32
36
|
requirements:
|
33
|
-
- -
|
37
|
+
- - ~>
|
34
38
|
- !ruby/object:Gem::Version
|
35
39
|
version: '3.5'
|
36
40
|
type: :runtime
|
37
41
|
prerelease: false
|
38
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
39
44
|
requirements:
|
40
|
-
- -
|
45
|
+
- - ~>
|
41
46
|
- !ruby/object:Gem::Version
|
42
47
|
version: '3.5'
|
43
48
|
- !ruby/object:Gem::Dependency
|
44
49
|
name: net-ssh
|
45
50
|
requirement: !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
46
52
|
requirements:
|
47
|
-
- -
|
53
|
+
- - ~>
|
48
54
|
- !ruby/object:Gem::Version
|
49
55
|
version: '3.0'
|
50
|
-
- -
|
56
|
+
- - ! '>='
|
51
57
|
- !ruby/object:Gem::Version
|
52
58
|
version: 3.0.2
|
53
59
|
type: :runtime
|
54
60
|
prerelease: false
|
55
61
|
version_requirements: !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
56
63
|
requirements:
|
57
|
-
- -
|
64
|
+
- - ~>
|
58
65
|
- !ruby/object:Gem::Version
|
59
66
|
version: '3.0'
|
60
|
-
- -
|
67
|
+
- - ! '>='
|
61
68
|
- !ruby/object:Gem::Version
|
62
69
|
version: 3.0.2
|
63
70
|
- !ruby/object:Gem::Dependency
|
64
71
|
name: rugged
|
65
72
|
requirement: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
66
74
|
requirements:
|
67
|
-
- -
|
75
|
+
- - ~>
|
68
76
|
- !ruby/object:Gem::Version
|
69
77
|
version: '0.21'
|
70
|
-
- -
|
78
|
+
- - ! '>='
|
71
79
|
- !ruby/object:Gem::Version
|
72
80
|
version: 0.21.4
|
73
81
|
type: :runtime
|
74
82
|
prerelease: false
|
75
83
|
version_requirements: !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
76
85
|
requirements:
|
77
|
-
- -
|
86
|
+
- - ~>
|
78
87
|
- !ruby/object:Gem::Version
|
79
88
|
version: '0.21'
|
80
|
-
- -
|
89
|
+
- - ! '>='
|
81
90
|
- !ruby/object:Gem::Version
|
82
91
|
version: 0.21.4
|
83
92
|
- !ruby/object:Gem::Dependency
|
84
93
|
name: pry
|
85
94
|
requirement: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
86
96
|
requirements:
|
87
|
-
- -
|
97
|
+
- - ~>
|
88
98
|
- !ruby/object:Gem::Version
|
89
99
|
version: '0'
|
90
100
|
type: :development
|
91
101
|
prerelease: false
|
92
102
|
version_requirements: !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
93
104
|
requirements:
|
94
|
-
- -
|
105
|
+
- - ~>
|
95
106
|
- !ruby/object:Gem::Version
|
96
107
|
version: '0'
|
97
108
|
- !ruby/object:Gem::Dependency
|
98
109
|
name: bundler
|
99
110
|
requirement: !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
100
112
|
requirements:
|
101
|
-
- -
|
113
|
+
- - ~>
|
102
114
|
- !ruby/object:Gem::Version
|
103
115
|
version: '1.10'
|
104
116
|
type: :development
|
105
117
|
prerelease: false
|
106
118
|
version_requirements: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
107
120
|
requirements:
|
108
|
-
- -
|
121
|
+
- - ~>
|
109
122
|
- !ruby/object:Gem::Version
|
110
123
|
version: '1.10'
|
111
124
|
- !ruby/object:Gem::Dependency
|
112
125
|
name: rake
|
113
126
|
requirement: !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
114
128
|
requirements:
|
115
|
-
- -
|
129
|
+
- - ~>
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: '10.0'
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
121
136
|
requirements:
|
122
|
-
- -
|
137
|
+
- - ~>
|
123
138
|
- !ruby/object:Gem::Version
|
124
139
|
version: '10.0'
|
125
140
|
- !ruby/object:Gem::Dependency
|
126
141
|
name: minitest
|
127
142
|
requirement: !ruby/object:Gem::Requirement
|
143
|
+
none: false
|
128
144
|
requirements:
|
129
|
-
- -
|
145
|
+
- - ~>
|
130
146
|
- !ruby/object:Gem::Version
|
131
147
|
version: '5.8'
|
132
148
|
type: :development
|
133
149
|
prerelease: false
|
134
150
|
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
135
152
|
requirements:
|
136
|
-
- -
|
153
|
+
- - ~>
|
137
154
|
- !ruby/object:Gem::Version
|
138
155
|
version: '5.8'
|
139
156
|
- !ruby/object:Gem::Dependency
|
140
157
|
name: mocha
|
141
158
|
requirement: !ruby/object:Gem::Requirement
|
159
|
+
none: false
|
142
160
|
requirements:
|
143
|
-
- -
|
161
|
+
- - ~>
|
144
162
|
- !ruby/object:Gem::Version
|
145
163
|
version: '1.1'
|
146
164
|
type: :development
|
147
165
|
prerelease: false
|
148
166
|
version_requirements: !ruby/object:Gem::Requirement
|
167
|
+
none: false
|
149
168
|
requirements:
|
150
|
-
- -
|
169
|
+
- - ~>
|
151
170
|
- !ruby/object:Gem::Version
|
152
171
|
version: '1.1'
|
153
172
|
description: software to fetch configuration from network devices and store them
|
@@ -160,7 +179,7 @@ executables:
|
|
160
179
|
extensions: []
|
161
180
|
extra_rdoc_files: []
|
162
181
|
files:
|
163
|
-
-
|
182
|
+
- .travis.yml
|
164
183
|
- CHANGELOG.md
|
165
184
|
- Dockerfile
|
166
185
|
- Gemfile
|
@@ -211,6 +230,7 @@ files:
|
|
211
230
|
- lib/oxidized/model/cumulus.rb
|
212
231
|
- lib/oxidized/model/dnos.rb
|
213
232
|
- lib/oxidized/model/edgeos.rb
|
233
|
+
- lib/oxidized/model/edgeswitch.rb
|
214
234
|
- lib/oxidized/model/eos.rb
|
215
235
|
- lib/oxidized/model/fabricos.rb
|
216
236
|
- lib/oxidized/model/fortios.rb
|
@@ -224,6 +244,7 @@ files:
|
|
224
244
|
- lib/oxidized/model/model.rb
|
225
245
|
- lib/oxidized/model/nos.rb
|
226
246
|
- lib/oxidized/model/nxos.rb
|
247
|
+
- lib/oxidized/model/opengear.rb
|
227
248
|
- lib/oxidized/model/outputs.rb
|
228
249
|
- lib/oxidized/model/panos.rb
|
229
250
|
- lib/oxidized/model/powerconnect.rb
|
@@ -232,6 +253,7 @@ files:
|
|
232
253
|
- lib/oxidized/model/saos.rb
|
233
254
|
- lib/oxidized/model/screenos.rb
|
234
255
|
- lib/oxidized/model/timos.rb
|
256
|
+
- lib/oxidized/model/tmos.rb
|
235
257
|
- lib/oxidized/model/vrp.rb
|
236
258
|
- lib/oxidized/model/vyatta.rb
|
237
259
|
- lib/oxidized/model/xos.rb
|
@@ -253,25 +275,26 @@ files:
|
|
253
275
|
homepage: http://github.com/ytti/oxidized
|
254
276
|
licenses:
|
255
277
|
- Apache-2.0
|
256
|
-
metadata: {}
|
257
278
|
post_install_message:
|
258
279
|
rdoc_options: []
|
259
280
|
require_paths:
|
260
281
|
- lib
|
261
282
|
required_ruby_version: !ruby/object:Gem::Requirement
|
283
|
+
none: false
|
262
284
|
requirements:
|
263
|
-
- -
|
285
|
+
- - ! '>='
|
264
286
|
- !ruby/object:Gem::Version
|
265
287
|
version: 1.9.3
|
266
288
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
289
|
+
none: false
|
267
290
|
requirements:
|
268
|
-
- -
|
291
|
+
- - ! '>='
|
269
292
|
- !ruby/object:Gem::Version
|
270
293
|
version: '0'
|
271
294
|
requirements: []
|
272
295
|
rubyforge_project: oxidized
|
273
|
-
rubygems_version:
|
296
|
+
rubygems_version: 1.8.23
|
274
297
|
signing_key:
|
275
|
-
specification_version:
|
298
|
+
specification_version: 3
|
276
299
|
summary: feeble attempt at rancid
|
277
300
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: cdb31290367c66dd2c76fe99a93efa832e676446
|
4
|
-
data.tar.gz: 23e3a5a6c42f603d72e8266f2b705e03edec502b
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 48675858978583b89c86a3943fe4f95a78d44eedffe4ae59a0e624a608707a9e85ad93277e3bd878710777208bc45100b10dc8fd9824f67fe476d0db9577ed41
|
7
|
-
data.tar.gz: 4f2dfe9e24f3e6f9afe878c5cf786c89701aaeb531966d37dd2e37e188be6069cbca9358f3a61b6bf9db8cf4e02c5261bbe45d90f2625784445cec127427b8bf
|