class Doctor::HdAnalyser

Public Instance Methods

analyse() click to toggle source
# File app/analyser/doctor/hd_analyser.rb, line 5
def analyse
  result = []

  Doctor::ConfigManager.directory_list.each { |directory|
    result << validate_free_space(directory)
  }

  result
end
get_used_space(path) click to toggle source
# File app/analyser/doctor/hd_analyser.rb, line 35
def get_used_space(path)
  stat = Sys::Filesystem.stat(path)
  free_space = (stat.block_size * stat.blocks_available) / 1024 / 1024 / 1024
  total_space = (stat.block_size * stat.blocks) / 1024 / 1024 / 1024
  (total_space - free_space) * 100 / total_space
end
validate_free_space(directory) click to toggle source
# File app/analyser/doctor/hd_analyser.rb, line 15
def validate_free_space(directory)
  result = {name: directory[:name], alarm_if_less_than: directory[:alarm_if_less_than], path: directory[:path]}

  begin
    used_space = get_used_space(directory[:path])

    if (used_space > directory[:alarm_if_less_than])
      result[:error_message] = "The used space configured [#{directory[:alarm_if_less_than]}] for the directory #{directory[:path]} is at [#{used_space}]"
      result[:status] = 'error'
    else
      result[:status] = 'ok'
    end
  rescue Exception => ex
    result[:error_message] = ex.message
    result[:status] = 'error'
  end

  OpenStruct.new(result)
end