Class: Hive::DiagnosticRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/hive/diagnostic_runner.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options, diagnostics_config, platform, hive_mind = nil) ⇒ DiagnosticRunner

Returns a new instance of DiagnosticRunner.



5
6
7
8
9
10
# 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

Instance Attribute Details

#diagnosticsObject

Returns the value of attribute diagnostics.



3
4
5
# File 'lib/hive/diagnostic_runner.rb', line 3

def diagnostics
  @diagnostics
end

#optionsObject

Returns the value of attribute options.



3
4
5
# File 'lib/hive/diagnostic_runner.rb', line 3

def options
  @options
end

Instance Method Details

#initialize_diagnostics(diagnostics_config) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# 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

#runObject



24
25
26
27
28
29
30
31
# 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