class ChefDK::Command::Verify
Attributes
verification_results[R]
verification_status[R]
verification_threads[R]
Public Class Methods
add_component(name, _delete_me = nil) { |component| ... }
click to toggle source
# 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? # delete this conditional component_map[name] = component end
component(name)
click to toggle source
# File lib/chef-dk/command/verify.rb, line 54 def component(name) component_map[name] end
component_map()
click to toggle source
# File lib/chef-dk/command/verify.rb, line 62 def component_map @component_map ||= {} end
components()
click to toggle source
# File lib/chef-dk/command/verify.rb, line 58 def components component_map.values end
new()
click to toggle source
Calls superclass method
ChefDK::Command::Base::new
# File lib/chef-dk/command/verify.rb, line 400 def initialize super @verification_threads = [ ] @verification_results = [ ] @verification_status = 0 end
Public Instance Methods
components()
click to toggle source
# File lib/chef-dk/command/verify.rb, line 67 def components self.class.components end
components_to_test()
click to toggle source
# File lib/chef-dk/command/verify.rb, line 430 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()
click to toggle source
# File lib/chef-dk/command/verify.rb, line 440 def invoke_tests components_to_test.each do |component| # Run the component specs in parallel 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()
click to toggle source
Calls superclass method
ChefDK::Helpers#omnibus_root
# File lib/chef-dk/command/verify.rb, line 419 def omnibus_root config[:omnibus_dir] || super end
report_results()
click to toggle source
# File lib/chef-dk/command/verify.rb, line 495 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 = [ ])
click to toggle source
# File lib/chef-dk/command/verify.rb, line 407 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!()
click to toggle source
# File lib/chef-dk/command/verify.rb, line 423 def validate_components! components.each do |component| component.omnibus_root = omnibus_root component.assert_present! end end
wait_for_tests()
click to toggle source
# File lib/chef-dk/command/verify.rb, line 475 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