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
#chefdk_home, #err, #msg, #omnibus_apps_dir, #omnibus_bin_dir, #omnibus_chefdk_location, #omnibus_embedded_bin_dir, #omnibus_install?, #stderr, #stdout, #system_command, #usr_bin_path, #usr_bin_prefix
Methods inherited from Base
#needs_help?, #needs_version?, #run_with_default_options
Constructor Details
#initialize ⇒ Verify
Returns a new instance of Verify.
385
386
387
388
389
390
|
# File 'lib/chef-dk/command/verify.rb', line 385
def initialize
super
@verification_threads = [ ]
@verification_results = [ ]
@verification_status = 0
end
|
Instance Attribute Details
#verification_results ⇒ Object
Returns the value of attribute verification_results.
382
383
384
|
# File 'lib/chef-dk/command/verify.rb', line 382
def verification_results
@verification_results
end
|
#verification_status ⇒ Object
Returns the value of attribute verification_status.
383
384
385
|
# File 'lib/chef-dk/command/verify.rb', line 383
def verification_status
@verification_status
end
|
#verification_threads ⇒ Object
Returns the value of attribute verification_threads.
381
382
383
|
# File 'lib/chef-dk/command/verify.rb', line 381
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
414
415
416
417
418
419
420
421
422
|
# File 'lib/chef-dk/command/verify.rb', line 414
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
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
|
# File 'lib/chef-dk/command/verify.rb', line 424
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
403
404
405
|
# File 'lib/chef-dk/command/verify.rb', line 403
def omnibus_root
config[:omnibus_dir] || super
end
|
#report_results ⇒ Object
479
480
481
482
483
484
485
486
|
# File 'lib/chef-dk/command/verify.rb', line 479
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
392
393
394
395
396
397
398
399
400
401
|
# File 'lib/chef-dk/command/verify.rb', line 392
def run(params = [ ])
@components_filter = parse_options(params)
validate_components!
invoke_tests
wait_for_tests
report_results
verification_status
end
|
#validate_components! ⇒ Object
407
408
409
410
411
412
|
# File 'lib/chef-dk/command/verify.rb', line 407
def validate_components!
components.each do |component|
component.omnibus_root = omnibus_root
component.assert_present!
end
end
|
#wait_for_tests ⇒ Object
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
|
# File 'lib/chef-dk/command/verify.rb', line 459
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
|