Class: IPVSLitmus::Metric::AvailableMemory

Inherits:
Object
  • Object
show all
Defined in:
lib/ipvs_litmus/metric/available_memory.rb

Constant Summary collapse

MULTIPLIER =
{
  "GB" => 1024*1024*1024,
  "MB" => 1024*1024,
  "KB" => 1024
}

Instance Method Summary collapse

Constructor Details

#initialize(weight, facter = Facter) ⇒ AvailableMemory

Returns a new instance of AvailableMemory.



10
11
12
13
# File 'lib/ipvs_litmus/metric/available_memory.rb', line 10

def initialize(weight, facter = Facter)
  @weight = weight
  @facter = facter
end

Instance Method Details

#current_healthObject



15
16
17
# File 'lib/ipvs_litmus/metric/available_memory.rb', line 15

def current_health
  @weight * memory_free / memory_total
end

#memory_freeObject



26
27
28
29
# File 'lib/ipvs_litmus/metric/available_memory.rb', line 26

def memory_free
  size, scale = @facter.value('memoryfree').split(' ')
  size.to_i * MULTIPLIER[scale]
end

#memory_totalObject



19
20
21
22
23
24
# File 'lib/ipvs_litmus/metric/available_memory.rb', line 19

def memory_total
  return @memory_total unless @memory_total.nil?

  size, scale = @facter.value('memorytotal').split(' ')
  @memory_total = size.to_i * MULTIPLIER[scale]
end