class Hive::DiagnosticRunner

Attributes

diagnostics[RW]
options[RW]

Public Class Methods

new(options, diagnostics_config, platform, hive_mind=nil) click to toggle source
# File lib/hive/diagnostic_runner.rb, line 5
def initialize(options, diagnostics_config, platform, hive_mind=nil)
  @options = options
  @platform = platform
  @hive_mind = hive_mind
  @diagnostics = self.initialize_diagnostics(diagnostics_config[@platform]) if diagnostics_config.has_key?(@platform)
end

Public Instance Methods

initialize_diagnostics(diagnostics_config) click to toggle source
# File lib/hive/diagnostic_runner.rb, line 12
def initialize_diagnostics(diagnostics_config)
  if diagnostics_config
    @diagnostics = diagnostics_config.collect do |component, config|
      Hive.logger.info("Initializing #{component.capitalize} component for #{@platform.capitalize} diagnostic")
      require "hive/diagnostic/#{@platform}/#{component}"
      Object.const_get('Hive').const_get('Diagnostic').const_get(@platform.capitalize).const_get(component.capitalize).new(config, @options, @hive_mind)
    end
  else
    Hive.logger.info("No diagnostic specified for #{@platform}")
  end
end
run() click to toggle source
# File lib/hive/diagnostic_runner.rb, line 24
def run
  results = @diagnostics.collect do |diagnostic|
    diagnostic.run
  end
 
  failures = results.select { |r| r.failed? }
  failures.count == 0
end