Class: ChefDK::Command::Verify
- Inherits:
-
Base
- Object
- Base
- ChefDK::Command::Verify
show all
- Includes:
- Helpers
- Defined in:
- lib/chef-dk/command/verify.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Helpers
#err, #msg, #omnibus_apps_dir, #omnibus_bin_dir, #omnibus_chefdk_location, #omnibus_embedded_bin_dir, #omnibus_install?, #stderr, #stdout, #system_command
Methods inherited from Base
#needs_help?, #needs_version?, #run_with_default_options
Constructor Details
#initialize ⇒ Verify
Returns a new instance of Verify.
222
223
224
225
226
227
|
# File 'lib/chef-dk/command/verify.rb', line 222
def initialize
super
@verification_threads = [ ]
@verification_results = [ ]
@verification_status = 0
end
|
Instance Attribute Details
#verification_results ⇒ Object
Returns the value of attribute verification_results.
219
220
221
|
# File 'lib/chef-dk/command/verify.rb', line 219
def verification_results
@verification_results
end
|
#verification_status ⇒ Object
Returns the value of attribute verification_status.
220
221
222
|
# File 'lib/chef-dk/command/verify.rb', line 220
def verification_status
@verification_status
end
|
#verification_threads ⇒ Object
Returns the value of attribute verification_threads.
218
219
220
|
# File 'lib/chef-dk/command/verify.rb', line 218
def verification_threads
@verification_threads
end
|
Class Method Details
.add_component(name, _delete_me = nil) {|component| ... } ⇒ Object
47
48
49
50
51
|
# File 'lib/chef-dk/command/verify.rb', line 47
def add_component(name, _delete_me=nil)
component = ComponentTest.new(name)
yield component if block_given? component_map[name] = component
end
|
.component(name) ⇒ Object
53
54
55
|
# File 'lib/chef-dk/command/verify.rb', line 53
def component(name)
component_map[name]
end
|
.component_map ⇒ Object
61
62
63
|
# File 'lib/chef-dk/command/verify.rb', line 61
def component_map
@component_map ||= {}
end
|
.components ⇒ Object
57
58
59
|
# File 'lib/chef-dk/command/verify.rb', line 57
def components
component_map.values
end
|
Instance Method Details
#components ⇒ Object
66
67
68
|
# File 'lib/chef-dk/command/verify.rb', line 66
def components
self.class.components
end
|
#components_to_test ⇒ Object
251
252
253
254
255
256
257
258
259
|
# File 'lib/chef-dk/command/verify.rb', line 251
def components_to_test
if @components_filter.empty?
components
else
components.select do |component|
@components_filter.include?(component.name.to_s)
end
end
end
|
#invoke_tests ⇒ Object
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
|
# File 'lib/chef-dk/command/verify.rb', line 261
def invoke_tests
components_to_test.each do |component|
verification_threads << Thread.new do
results = []
results << component.run_smoke_test
if config[:unit]
results << component.run_unit_test
end
if config[:integration]
results << component.run_integration_test
end
if results.any? {|r| r.exitstatus != 0 }
component_status = 1
@verification_status = 1
else
component_status = 0
end
{
:component => component,
:results => results,
:component_status => component_status
}
end
msg("Running verification for component '#{component.name}'")
end
end
|
#omnibus_root ⇒ Object
240
241
242
|
# File 'lib/chef-dk/command/verify.rb', line 240
def omnibus_root
config[:omnibus_dir] || super
end
|
#report_results ⇒ Object
316
317
318
319
320
321
322
323
|
# File 'lib/chef-dk/command/verify.rb', line 316
def report_results
msg("")
msg("---------------------------------------------")
verification_results.each do |result|
message = result[:component_status] == 0 ? "succeeded" : "failed"
msg("Verification of component '#{result[:component].name}' #{message}.")
end
end
|
#run(params = [ ]) ⇒ Object
229
230
231
232
233
234
235
236
237
238
|
# File 'lib/chef-dk/command/verify.rb', line 229
def run(params = [ ])
@components_filter = parse_options(params)
validate_components!
invoke_tests
wait_for_tests
report_results
verification_status
end
|
#validate_components! ⇒ Object
244
245
246
247
248
249
|
# File 'lib/chef-dk/command/verify.rb', line 244
def validate_components!
components.each do |component|
component.omnibus_root = omnibus_root
component.assert_present!
end
end
|
#wait_for_tests ⇒ Object
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
|
# File 'lib/chef-dk/command/verify.rb', line 296
def wait_for_tests
while !verification_threads.empty?
verification_threads.each do |t|
if t.join(1)
verification_threads.delete t
verification_results << t.value
t.value[:results].each do |result|
if config[:verbose] || t.value[:component_status] != 0
msg("")
msg(result.stdout)
msg(result.stderr) if result.stderr
end
end
else
$stdout.write "."
end
end
end
end
|