oxidized 0.20.0 → 0.21.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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +135 -865
  5. data/docs/Configuration.md +186 -0
  6. data/docs/Hooks.md +143 -0
  7. data/docs/Outputs.md +190 -0
  8. data/docs/Ruby-API.md +115 -0
  9. data/docs/Sources.md +110 -0
  10. data/docs/Supported-OS-Types.md +149 -0
  11. data/docs/VRP-Huawei.md +27 -0
  12. data/extra/oxidized-report-git-commits +21 -40
  13. data/extra/oxidized-ubuntu.haproxy +45 -0
  14. data/extra/oxidized.service +4 -0
  15. data/lib/oxidized/hook.rb +1 -0
  16. data/lib/oxidized/hook/exec.rb +0 -1
  17. data/lib/oxidized/input/ssh.rb +11 -8
  18. data/lib/oxidized/model/acsw.rb +67 -0
  19. data/lib/oxidized/model/aen.rb +20 -0
  20. data/lib/oxidized/model/alteonos.rb +60 -0
  21. data/lib/oxidized/model/asa.rb +53 -18
  22. data/lib/oxidized/model/asyncos.rb +49 -0
  23. data/lib/oxidized/model/audiocodes.rb +32 -0
  24. data/lib/oxidized/model/boss.rb +76 -0
  25. data/lib/oxidized/model/ciscosma.rb +45 -0
  26. data/lib/oxidized/model/ciscosmb.rb +6 -1
  27. data/lib/oxidized/model/coriantgroove.rb +30 -0
  28. data/lib/oxidized/model/dlink.rb +1 -0
  29. data/lib/oxidized/model/enterasys.rb +30 -0
  30. data/lib/oxidized/model/fiberdriver.rb +1 -1
  31. data/lib/oxidized/model/fortios.rb +3 -1
  32. data/lib/oxidized/model/ftos.rb +2 -0
  33. data/lib/oxidized/model/hirschmann.rb +41 -0
  34. data/lib/oxidized/model/hpemsa.rb +13 -0
  35. data/lib/oxidized/model/ios.rb +2 -2
  36. data/lib/oxidized/model/iosxr.rb +1 -0
  37. data/lib/oxidized/model/ipos.rb +7 -1
  38. data/lib/oxidized/model/ironware.rb +4 -1
  39. data/lib/oxidized/model/netgear.rb +12 -4
  40. data/lib/oxidized/model/panos.rb +1 -1
  41. data/lib/oxidized/model/planet.rb +2 -1
  42. data/lib/oxidized/model/powerconnect.rb +5 -0
  43. data/lib/oxidized/model/procurve.rb +13 -0
  44. data/lib/oxidized/model/routeros.rb +12 -5
  45. data/lib/oxidized/model/sgos.rb +46 -0
  46. data/lib/oxidized/model/ucs.rb +31 -0
  47. data/lib/oxidized/model/voss.rb +12 -3
  48. data/lib/oxidized/model/vrp.rb +6 -0
  49. data/lib/oxidized/model/weos.rb +22 -0
  50. data/lib/oxidized/model/xos.rb +4 -0
  51. data/lib/oxidized/node.rb +4 -2
  52. data/lib/oxidized/nodes.rb +1 -0
  53. data/lib/oxidized/version.rb +1 -1
  54. data/lib/oxidized/worker.rb +23 -2
  55. data/oxidized.gemspec +1 -1
  56. metadata +54 -46
@@ -0,0 +1,31 @@
1
+ class UCS < Oxidized::Model
2
+
3
+ prompt /^(\r?[\w.@_()-]+[#]\s?)$/
4
+ comment '! '
5
+
6
+ cmd 'show version brief' do |cfg|
7
+ comment cfg
8
+ end
9
+
10
+ cmd 'show chassis detail' do |cfg|
11
+ comment cfg
12
+ end
13
+
14
+ cmd 'show fabric-interconnect detail' do |cfg|
15
+ comment cfg
16
+ end
17
+
18
+ cmd 'show configuration all | no-more' do |cfg|
19
+ cfg
20
+ end
21
+
22
+ cfg :ssh, :telnet do
23
+ post_login 'terminal length 0'
24
+ pre_logout 'exit'
25
+ end
26
+
27
+ cfg :telnet do
28
+ username /^login:/
29
+ password /^Password:/
30
+ end
31
+ end
@@ -1,22 +1,31 @@
1
1
  class Voss < Oxidized::Model
2
2
  # Avaya VSP Operating System Software(VOSS)
3
3
  # Created by danielcoxman@gmail.com
4
- # May 9, 2017
4
+ # May 25, 2017
5
5
  # This was tested on vsp4k and vsp8k
6
6
 
7
7
  comment '# '
8
8
 
9
9
  prompt /^[^\s#>]+[#>]$/
10
10
 
11
+ # needed for proper formatting after post_login
12
+ cmd('') { |cfg| comment "#{cfg}\n" }
13
+
14
+ # Get sys-info and remove information that changes such has temperature and power
11
15
  cmd 'show sys-info' do |cfg|
12
- comment cfg
16
+ cfg.gsub! /(^((.*)SysUpTime(.*))$)/, 'removed SysUpTime'
17
+ cfg.gsub! /^((.*)Temperature Info \:(.*\r?\n){4})/, 'removed Temperature Info and 3 more lines'
18
+ cfg.gsub! /(^((.*)AmbientTemperature(.*)\:(.*))$)/, 'removed AmbientTemperature'
19
+ cfg.gsub! /(^((.*)Temperature(.*)\:(.*))$)/, 'removed Temperature'
20
+ cfg.gsub! /(^((.*)Total Power Usage(.*)\:(.*))$)/, 'removed Total Power Usage'
21
+ comment "#{cfg}\n"
13
22
  end
14
23
 
15
24
  # more the config rather than doing a show run
16
25
  cmd 'more config.cfg' do |cfg|
17
26
  cfg
18
27
  cfg.gsub! /^[^\s#>]+[#>]$/, ''
19
- cfg.gsub! /^more config.cfg/, ''
28
+ cfg.gsub! /^more config.cfg/, '# more config.cfg'
20
29
  end
21
30
 
22
31
  cfg :telnet do
@@ -4,6 +4,12 @@ class VRP < Oxidized::Model
4
4
  prompt /^(<[\w.-]+>)$/
5
5
  comment '# '
6
6
 
7
+ cmd :secret do |cfg|
8
+ cfg.gsub! /(pin verify (?:auto|)).*/, '\\1 <PIN hidden>'
9
+ cfg.gsub! /(%\^%#.*%\^%#)/, '<secret hidden>'
10
+ cfg
11
+ end
12
+
7
13
  cmd :all do |cfg|
8
14
  cfg.each_line.to_a[1..-2].join
9
15
  end
@@ -0,0 +1,22 @@
1
+ class WEOS < Oxidized::Model
2
+
3
+ #Westell WEOS, works with Westell 8178G, Westell 8266G
4
+
5
+ prompt /^(\s[\w.@-]+[#>]\s?)$/
6
+
7
+ cmd :all do |cfg|
8
+ cfg.each_line.to_a[1..-2].join
9
+ end
10
+
11
+ cmd 'show running-config' do |cfg|
12
+ cfg
13
+ end
14
+
15
+ cfg :telnet do
16
+ username /login:/
17
+ password /assword:/
18
+ post_login 'cli more disable'
19
+ pre_logout 'logout'
20
+ end
21
+
22
+ end
@@ -29,6 +29,10 @@ class XOS < Oxidized::Model
29
29
 
30
30
  cmd 'show configuration'
31
31
 
32
+ cmd 'show policy detail' do |cfg|
33
+ comment cfg
34
+ end
35
+
32
36
  cfg :telnet do
33
37
  username /^login:/
34
38
  password /^\r*password:/
@@ -6,8 +6,9 @@ module Oxidized
6
6
  class ModelNotFound < OxidizedError; end
7
7
  class Node
8
8
  attr_reader :name, :ip, :model, :input, :output, :group, :auth, :prompt, :vars, :last, :repo
9
- attr_accessor :running, :user, :msg, :from, :stats, :retry
9
+ attr_accessor :running, :user, :email, :msg, :from, :stats, :retry
10
10
  alias :running? :running
11
+
11
12
  def initialize opt
12
13
  Oxidized.logger.debug 'resolving DNS for %s...' % opt[:name]
13
14
  # remove the prefix if an IP Address is provided with one as IPAddr converts it to a network address.
@@ -120,7 +121,7 @@ module Oxidized
120
121
  end
121
122
 
122
123
  def reset
123
- @user = @msg = @from = nil
124
+ @user = @email = @msg = @from = nil
124
125
  @retry = 0
125
126
  end
126
127
 
@@ -217,6 +218,7 @@ module Oxidized
217
218
  end
218
219
 
219
220
  #model
221
+ # FIXME: warning: instance variable @model not initialized
220
222
  if Oxidized.config.models.has_key?(@model.class.name.to_s.downcase)
221
223
  if Oxidized.config.models[@model.class.name.to_s.downcase].has_key?(key_str)
222
224
  value = Oxidized.config.models[@model.class.name.to_s.downcase][key_str]
@@ -68,6 +68,7 @@ module Oxidized
68
68
  with_lock do
69
69
  n = del node
70
70
  n.user = opt['user']
71
+ n.email = opt['email']
71
72
  n.msg = opt['msg']
72
73
  n.from = opt['from']
73
74
  # set last job to nil so that the node is picked for immediate update
@@ -1,3 +1,3 @@
1
1
  module Oxidized
2
- VERSION = '0.20.0'
2
+ VERSION = '0.21.0'
3
3
  end
@@ -3,6 +3,7 @@ module Oxidized
3
3
  require 'oxidized/jobs'
4
4
  class Worker
5
5
  def initialize nodes
6
+ @jobs_done = 0
6
7
  @nodes = nodes
7
8
  @jobs = Jobs.new(Oxidized.config.threads, Oxidized.config.interval, @nodes)
8
9
  @nodes.jobs = @jobs
@@ -14,8 +15,9 @@ module Oxidized
14
15
  @jobs.delete_if { |job| ended << job if not job.alive? }
15
16
  ended.each { |job| process job }
16
17
  @jobs.work
18
+
17
19
  while @jobs.size < @jobs.want
18
- Oxidized.logger.debug "lib/oxidized/worker.rb: Jobs #{@jobs.size}, Want: #{@jobs.want}"
20
+ Oxidized.logger.debug "lib/oxidized/worker.rb: Jobs running: #{@jobs.size} of #{@jobs.want} - ended: #{@jobs_done} of #{@nodes.size}"
19
21
  # ask for next node in queue non destructive way
20
22
  nextnode = @nodes.first
21
23
  unless nextnode.last.nil?
@@ -29,6 +31,8 @@ module Oxidized
29
31
  @jobs.push Job.new node
30
32
  Oxidized.logger.debug "lib/oxidized/worker.rb: Added #{node.name} to the job queue"
31
33
  end
34
+
35
+ run_done_hook if is_cycle_finished?
32
36
  Oxidized.logger.debug("lib/oxidized/worker.rb: #{@jobs.size} jobs running in parallel") unless @jobs.empty?
33
37
  end
34
38
 
@@ -38,6 +42,8 @@ module Oxidized
38
42
  node.stats.add job
39
43
  @jobs.duration job.time
40
44
  node.running = false
45
+ @jobs_done += 1 # needed for worker_done event
46
+
41
47
  if job.status == :success
42
48
  Oxidized.Hooks.handle :node_success, :node => node,
43
49
  :job => job
@@ -46,7 +52,7 @@ module Oxidized
46
52
  msg += " with message '#{node.msg}'" if node.msg
47
53
  output = node.output.new
48
54
  if output.store node.name, job.config,
49
- :msg => msg, :user => node.user, :group => node.group
55
+ :msg => msg, :email => node.email, :user => node.user, :group => node.group
50
56
  Oxidized.logger.info "Configuration updated for #{node.group}/#{node.name}"
51
57
  Oxidized.Hooks.handle :post_store, :node => node,
52
58
  :job => job,
@@ -71,5 +77,20 @@ module Oxidized
71
77
  Oxidized.logger.warn "#{node.name} not found, removed while collecting?"
72
78
  end
73
79
 
80
+ private
81
+
82
+ def is_cycle_finished?
83
+ @jobs_done > 0 && @jobs_done % @nodes.count == 0
84
+ end
85
+
86
+ def run_done_hook
87
+ Oxidized.logger.debug "lib/oxidized/worker.rb: Running :nodes_done hook"
88
+ Oxidized.Hooks.handle :nodes_done
89
+ rescue => e
90
+ # swallow the hook erros and continue as normal
91
+ Oxidized.logger.error "lib/oxidized/worker.rb: #{e.message}"
92
+ ensure
93
+ @jobs_done = 0
94
+ end
74
95
  end
75
96
  end
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.required_ruby_version = '>= 2.0.0'
22
22
  s.add_runtime_dependency 'asetus', '~> 0.1'
23
23
  s.add_runtime_dependency 'slop', '~> 3.5'
24
- s.add_runtime_dependency 'net-ssh', '~> 3.0.2'
24
+ s.add_runtime_dependency 'net-ssh', '~> 4.1.0'
25
25
  s.add_runtime_dependency 'rugged', '~> 0.21', '>= 0.21.4'
26
26
 
27
27
  if defined?(RUBY_VERSION) && RUBY_VERSION > '2.3'
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.20.0
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Saku Ytti
@@ -10,166 +10,152 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-05-14 00:00:00.000000000 Z
13
+ date: 2017-11-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: asetus
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - "~>"
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - "~>"
26
+ - - ~>
27
27
  - !ruby/object:Gem::Version
28
28
  version: '0.1'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: slop
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - "~>"
33
+ - - ~>
34
34
  - !ruby/object:Gem::Version
35
35
  version: '3.5'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - "~>"
40
+ - - ~>
41
41
  - !ruby/object:Gem::Version
42
42
  version: '3.5'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: net-ssh
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - "~>"
47
+ - - ~>
48
48
  - !ruby/object:Gem::Version
49
- version: 3.0.2
49
+ version: 4.1.0
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - "~>"
54
+ - - ~>
55
55
  - !ruby/object:Gem::Version
56
- version: 3.0.2
56
+ version: 4.1.0
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rugged
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - "~>"
61
+ - - ~>
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0.21'
64
- - - ">="
64
+ - - '>='
65
65
  - !ruby/object:Gem::Version
66
66
  version: 0.21.4
67
67
  type: :runtime
68
68
  prerelease: false
69
69
  version_requirements: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - "~>"
71
+ - - ~>
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0.21'
74
- - - ">="
74
+ - - '>='
75
75
  - !ruby/object:Gem::Version
76
76
  version: 0.21.4
77
- - !ruby/object:Gem::Dependency
78
- name: net-telnet
79
- requirement: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: '0'
84
- type: :runtime
85
- prerelease: false
86
- version_requirements: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - "~>"
89
- - !ruby/object:Gem::Version
90
- version: '0'
91
77
  - !ruby/object:Gem::Dependency
92
78
  name: pry
93
79
  requirement: !ruby/object:Gem::Requirement
94
80
  requirements:
95
- - - "~>"
81
+ - - ~>
96
82
  - !ruby/object:Gem::Version
97
83
  version: '0'
98
84
  type: :development
99
85
  prerelease: false
100
86
  version_requirements: !ruby/object:Gem::Requirement
101
87
  requirements:
102
- - - "~>"
88
+ - - ~>
103
89
  - !ruby/object:Gem::Version
104
90
  version: '0'
105
91
  - !ruby/object:Gem::Dependency
106
92
  name: bundler
107
93
  requirement: !ruby/object:Gem::Requirement
108
94
  requirements:
109
- - - "~>"
95
+ - - ~>
110
96
  - !ruby/object:Gem::Version
111
97
  version: '1.10'
112
98
  type: :development
113
99
  prerelease: false
114
100
  version_requirements: !ruby/object:Gem::Requirement
115
101
  requirements:
116
- - - "~>"
102
+ - - ~>
117
103
  - !ruby/object:Gem::Version
118
104
  version: '1.10'
119
105
  - !ruby/object:Gem::Dependency
120
106
  name: rake
121
107
  requirement: !ruby/object:Gem::Requirement
122
108
  requirements:
123
- - - "~>"
109
+ - - ~>
124
110
  - !ruby/object:Gem::Version
125
111
  version: '10.0'
126
112
  type: :development
127
113
  prerelease: false
128
114
  version_requirements: !ruby/object:Gem::Requirement
129
115
  requirements:
130
- - - "~>"
116
+ - - ~>
131
117
  - !ruby/object:Gem::Version
132
118
  version: '10.0'
133
119
  - !ruby/object:Gem::Dependency
134
120
  name: minitest
135
121
  requirement: !ruby/object:Gem::Requirement
136
122
  requirements:
137
- - - "~>"
123
+ - - ~>
138
124
  - !ruby/object:Gem::Version
139
125
  version: '5.8'
140
126
  type: :development
141
127
  prerelease: false
142
128
  version_requirements: !ruby/object:Gem::Requirement
143
129
  requirements:
144
- - - "~>"
130
+ - - ~>
145
131
  - !ruby/object:Gem::Version
146
132
  version: '5.8'
147
133
  - !ruby/object:Gem::Dependency
148
134
  name: mocha
149
135
  requirement: !ruby/object:Gem::Requirement
150
136
  requirements:
151
- - - "~>"
137
+ - - ~>
152
138
  - !ruby/object:Gem::Version
153
139
  version: '1.1'
154
140
  type: :development
155
141
  prerelease: false
156
142
  version_requirements: !ruby/object:Gem::Requirement
157
143
  requirements:
158
- - - "~>"
144
+ - - ~>
159
145
  - !ruby/object:Gem::Version
160
146
  version: '1.1'
161
147
  - !ruby/object:Gem::Dependency
162
148
  name: git
163
149
  requirement: !ruby/object:Gem::Requirement
164
150
  requirements:
165
- - - "~>"
151
+ - - ~>
166
152
  - !ruby/object:Gem::Version
167
153
  version: '1'
168
154
  type: :development
169
155
  prerelease: false
170
156
  version_requirements: !ruby/object:Gem::Requirement
171
157
  requirements:
172
- - - "~>"
158
+ - - ~>
173
159
  - !ruby/object:Gem::Version
174
160
  version: '1'
175
161
  description: software to fetch configuration from network devices and store them
@@ -182,9 +168,9 @@ executables:
182
168
  extensions: []
183
169
  extra_rdoc_files: []
184
170
  files:
185
- - ".gitignore"
186
- - ".ruby-version"
187
- - ".travis.yml"
171
+ - .gitignore
172
+ - .ruby-version
173
+ - .travis.yml
188
174
  - CHANGELOG.md
189
175
  - Dockerfile
190
176
  - Gemfile
@@ -194,9 +180,17 @@ files:
194
180
  - TODO.md
195
181
  - bin/console
196
182
  - bin/oxidized
183
+ - docs/Configuration.md
184
+ - docs/Hooks.md
185
+ - docs/Outputs.md
186
+ - docs/Ruby-API.md
187
+ - docs/Sources.md
188
+ - docs/Supported-OS-Types.md
189
+ - docs/VRP-Huawei.md
197
190
  - extra/auto-reload-config.runit
198
191
  - extra/nagios_check_failing_nodes.rb
199
192
  - extra/oxidized-report-git-commits
193
+ - extra/oxidized-ubuntu.haproxy
200
194
  - extra/oxidized.apache2
201
195
  - extra/oxidized.init
202
196
  - extra/oxidized.init.d
@@ -230,22 +224,30 @@ files:
230
224
  - lib/oxidized/jobs.rb
231
225
  - lib/oxidized/manager.rb
232
226
  - lib/oxidized/model/acos.rb
227
+ - lib/oxidized/model/acsw.rb
228
+ - lib/oxidized/model/aen.rb
233
229
  - lib/oxidized/model/aireos.rb
234
230
  - lib/oxidized/model/airos.rb
231
+ - lib/oxidized/model/alteonos.rb
235
232
  - lib/oxidized/model/alvarion.rb
236
233
  - lib/oxidized/model/aos.rb
237
234
  - lib/oxidized/model/aos7.rb
238
235
  - lib/oxidized/model/aosw.rb
239
236
  - lib/oxidized/model/apc_aos.rb
240
237
  - lib/oxidized/model/asa.rb
238
+ - lib/oxidized/model/asyncos.rb
239
+ - lib/oxidized/model/audiocodes.rb
240
+ - lib/oxidized/model/boss.rb
241
241
  - lib/oxidized/model/br6910.rb
242
242
  - lib/oxidized/model/c4cmts.rb
243
243
  - lib/oxidized/model/casa.rb
244
244
  - lib/oxidized/model/catos.rb
245
245
  - lib/oxidized/model/cisconga.rb
246
+ - lib/oxidized/model/ciscosma.rb
246
247
  - lib/oxidized/model/ciscosmb.rb
247
248
  - lib/oxidized/model/comware.rb
248
249
  - lib/oxidized/model/coriant8600.rb
250
+ - lib/oxidized/model/coriantgroove.rb
249
251
  - lib/oxidized/model/corianttmos.rb
250
252
  - lib/oxidized/model/cumulus.rb
251
253
  - lib/oxidized/model/datacom.rb
@@ -253,6 +255,7 @@ files:
253
255
  - lib/oxidized/model/dnos.rb
254
256
  - lib/oxidized/model/edgeos.rb
255
257
  - lib/oxidized/model/edgeswitch.rb
258
+ - lib/oxidized/model/enterasys.rb
256
259
  - lib/oxidized/model/eos.rb
257
260
  - lib/oxidized/model/fabricos.rb
258
261
  - lib/oxidized/model/fiberdriver.rb
@@ -262,7 +265,9 @@ files:
262
265
  - lib/oxidized/model/fujitsupy.rb
263
266
  - lib/oxidized/model/gaiaos.rb
264
267
  - lib/oxidized/model/hatteras.rb
268
+ - lib/oxidized/model/hirschmann.rb
265
269
  - lib/oxidized/model/hpebladesystem.rb
270
+ - lib/oxidized/model/hpemsa.rb
266
271
  - lib/oxidized/model/ios.rb
267
272
  - lib/oxidized/model/iosxr.rb
268
273
  - lib/oxidized/model/ipos.rb
@@ -290,16 +295,19 @@ files:
290
295
  - lib/oxidized/model/routeros.rb
291
296
  - lib/oxidized/model/saos.rb
292
297
  - lib/oxidized/model/screenos.rb
298
+ - lib/oxidized/model/sgos.rb
293
299
  - lib/oxidized/model/siklu.rb
294
300
  - lib/oxidized/model/supermicro.rb
295
301
  - lib/oxidized/model/timos.rb
296
302
  - lib/oxidized/model/tmos.rb
297
303
  - lib/oxidized/model/tplink.rb
298
304
  - lib/oxidized/model/trango.rb
305
+ - lib/oxidized/model/ucs.rb
299
306
  - lib/oxidized/model/voltaire.rb
300
307
  - lib/oxidized/model/voss.rb
301
308
  - lib/oxidized/model/vrp.rb
302
309
  - lib/oxidized/model/vyatta.rb
310
+ - lib/oxidized/model/weos.rb
303
311
  - lib/oxidized/model/xos.rb
304
312
  - lib/oxidized/model/zhoneolt.rb
305
313
  - lib/oxidized/model/zynos.rb
@@ -329,17 +337,17 @@ require_paths:
329
337
  - lib
330
338
  required_ruby_version: !ruby/object:Gem::Requirement
331
339
  requirements:
332
- - - ">="
340
+ - - '>='
333
341
  - !ruby/object:Gem::Version
334
342
  version: 2.0.0
335
343
  required_rubygems_version: !ruby/object:Gem::Requirement
336
344
  requirements:
337
- - - ">="
345
+ - - '>='
338
346
  - !ruby/object:Gem::Version
339
347
  version: '0'
340
348
  requirements: []
341
349
  rubyforge_project: oxidized
342
- rubygems_version: 2.5.2
350
+ rubygems_version: 2.0.14.1
343
351
  signing_key:
344
352
  specification_version: 4
345
353
  summary: feeble attempt at rancid