oxidized 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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)
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oxidized (0.10.0)
4
+ oxidized (0.11.0)
5
5
  asetus (~> 0.1)
6
6
  net-ssh (~> 3.0, >= 3.0.2)
7
7
  rugged (~> 0.21, >= 0.21.4)
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
- * Wireless
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
- * Force10
81
- * FTOS
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
- * Palo Alto
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 oxidized
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 oxidized
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
File without changes
File without changes
File without changes
File without changes
@@ -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)
@@ -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::Crash + "-#{@node.ip}-ftp", 'w') if Oxidized.config.input.debug?
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
@@ -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::Crash + "-#{@node.ip}-ssh", 'w') if Oxidized.config.input.debug?
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
- @log.print data if Oxidized.config.input.debug?
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::Crash + "-#{@node.ip}-telnet" if Oxidized.config.input.debug?
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
@@ -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).to_i
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
@@ -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 configuration' do |cfg|
30
- cfg
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]+ (RPM|RPMs|mV|C)$/
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
@@ -11,6 +11,7 @@ class FortiOS < Oxidized::Model
11
11
 
12
12
  cmd 'get system status' do |cfg|
13
13
  @vdom_enabled = cfg.include? 'Virtual domain configuration: enable'
14
+ cfg.gsub!(/(System time: )(.*)/, '\1<stripped>\3')
14
15
  comment cfg
15
16
  end
16
17
 
@@ -58,7 +58,7 @@ class IOS < Oxidized::Model
58
58
  if vars :enable
59
59
  post_login do
60
60
  send "enable\n"
61
- send vars(:enable) + "\n"
61
+ cmd vars(:enable)
62
62
  end
63
63
  end
64
64
  pre_logout 'exit'
@@ -2,7 +2,7 @@ class IOSXR < Oxidized::Model
2
2
 
3
3
  # IOS XR model #
4
4
 
5
- prompt /^([\w.@:\/-]+[#>]\s?)$/
5
+ prompt /^(\r?[\w.@:\/-]+[#>]\s?)$/
6
6
  comment '! '
7
7
 
8
8
  cmd :all do |cfg|
@@ -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]{3} \(\d{2}\%\)/, '' #remove unwanted lines Speed Fans
35
- cfg.gsub! /current speed is [A-Z]{3} \(\d{2}\%\)/, ''
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
@@ -147,6 +147,7 @@ module Oxidized
147
147
  rescue Oxidized::NodeNotFound
148
148
  end
149
149
  end
150
+ sort_by! { |x| x.last.nil? ? Time.new(0) : x.last.end }
150
151
  end
151
152
 
152
153
  public
@@ -1,3 +1,3 @@
1
1
  module Oxidized
2
- VERSION = '0.11.0'
2
+ VERSION = '0.12.0'
3
3
  end
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.11.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-01-27 00:00:00.000000000 Z
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
- - ".travis.yml"
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: 2.4.5.1
296
+ rubygems_version: 1.8.23
274
297
  signing_key:
275
- specification_version: 4
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