class Doctor::HealthCheck

Public Instance Methods

perform() click to toggle source
# File app/use_case/doctor/health_check.rb, line 3
def perform
  result = {}

  result[:release_path] = analyze_release_path
  result[:telnets] = analyze_telnet
  result[:databases] = analyze_database
  result[:hds] = analyse_hds

  error_messages = list_all_error_messages(result)

  OpenStruct.new(
    result: result,
    has_error?: has_error?(result),
    error_messages: error_messages
  )
end

Private Instance Methods

analyse_hds() click to toggle source
# File app/use_case/doctor/health_check.rb, line 34
def analyse_hds
  process(HdAnalyser, Dto::HdResultDto)
end
analyze_database() click to toggle source
# File app/use_case/doctor/health_check.rb, line 30
def analyze_database
  process(DatabaseAnalyser, Dto::DatabaseResultDto)
end
analyze_release_path() click to toggle source
# File app/use_case/doctor/health_check.rb, line 22
def analyze_release_path
  process(ReleasePathAnalyser, Dto::ReleasePathResultDto)
end
analyze_telnet() click to toggle source
# File app/use_case/doctor/health_check.rb, line 26
def analyze_telnet
  process(TelnetAnalyser, Dto::TelnetResultDto)
end
has_error?(result) click to toggle source
# File app/use_case/doctor/health_check.rb, line 50
def has_error?(result) # rubocop:disable Style/PredicateName
  result.values.each do |result_analyze|
    result_analyze.each do |result|
      return true unless result.status.eql?('ok')
    end
  end

  false
end
list_all_error_messages(result) click to toggle source
# File app/use_case/doctor/health_check.rb, line 60
def list_all_error_messages(result)
  errors = []
  result.values.each do |result_analyze|
    result_analyze.each do |result|
      next if result.status.eql?('ok')

      errors << result.error_message
    end
  end

  errors
end
process(analyzer_class, dto_class) click to toggle source
# File app/use_case/doctor/health_check.rb, line 38
def process(analyzer_class, dto_class)
  analyze_result = analyzer_class.new.analyse

  dto_result = []

  analyze_result.each do |result|
    dto_result << dto_class.new(result)
  end

  dto_result
end