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, #git_bin_dir, #git_windows_bin_dir, #msg, #omnibus_apps_dir, #omnibus_bin_dir, #omnibus_chefdk_location, #omnibus_embedded_bin_dir, #omnibus_env, #omnibus_install?, #stderr, #stdout, #system_command, #usr_bin_path, #usr_bin_prefix
Methods inherited from Base
#check_license_acceptance, #needs_help?, #needs_version?, #run_with_default_options
Constructor Details
#initialize ⇒ Verify
Returns a new instance of Verify.
432
433
434
435
436
437
|
# File 'lib/chef-dk/command/verify.rb', line 432
def initialize
super
@verification_threads = [ ]
@verification_results = [ ]
@verification_status = 0
end
|
Instance Attribute Details
#verification_results ⇒ Object
Returns the value of attribute verification_results.
429
430
431
|
# File 'lib/chef-dk/command/verify.rb', line 429
def verification_results
@verification_results
end
|
#verification_status ⇒ Object
Returns the value of attribute verification_status.
430
431
432
|
# File 'lib/chef-dk/command/verify.rb', line 430
def verification_status
@verification_status
end
|
#verification_threads ⇒ Object
Returns the value of attribute verification_threads.
428
429
430
|
# File 'lib/chef-dk/command/verify.rb', line 428
def verification_threads
@verification_threads
end
|
Class Method Details
.add_component(name, _delete_me = nil) {|component| ... } ⇒ Object
48
49
50
51
52
|
# File 'lib/chef-dk/command/verify.rb', line 48
def add_component(name, _delete_me = nil)
component = ComponentTest.new(name)
yield component if block_given? component_map[name] = component
end
|
.component(name) ⇒ Object
54
55
56
|
# File 'lib/chef-dk/command/verify.rb', line 54
def component(name)
component_map[name]
end
|
.component_map ⇒ Object
62
63
64
|
# File 'lib/chef-dk/command/verify.rb', line 62
def component_map
@component_map ||= {}
end
|
.components ⇒ Object
58
59
60
|
# File 'lib/chef-dk/command/verify.rb', line 58
def components
component_map.values
end
|
Instance Method Details
#components ⇒ Object
67
68
69
|
# File 'lib/chef-dk/command/verify.rb', line 67
def components
self.class.components
end
|
#components_to_test ⇒ Object
462
463
464
465
466
467
468
469
470
|
# File 'lib/chef-dk/command/verify.rb', line 462
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
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
|
# File 'lib/chef-dk/command/verify.rb', line 472
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
451
452
453
|
# File 'lib/chef-dk/command/verify.rb', line 451
def omnibus_root
config[:omnibus_dir] || super
end
|
#report_results ⇒ Object
527
528
529
530
531
532
533
534
|
# File 'lib/chef-dk/command/verify.rb', line 527
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
439
440
441
442
443
444
445
446
447
448
449
|
# File 'lib/chef-dk/command/verify.rb', line 439
def run(params = [ ])
err("[WARN] This is an internal command used by the ChefDK development team. If you are a ChefDK user, please do not run it.")
@components_filter = parse_options(params)
validate_components!
invoke_tests
wait_for_tests
report_results
verification_status
end
|
#validate_components! ⇒ Object
455
456
457
458
459
460
|
# File 'lib/chef-dk/command/verify.rb', line 455
def validate_components!
components.each do |component|
component.omnibus_root = omnibus_root
component.assert_present!
end
end
|
#wait_for_tests ⇒ Object
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
|
# File 'lib/chef-dk/command/verify.rb', line 507
def wait_for_tests
until 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
|