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.
@@ -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