Class: Berta::ExpirationManager

Inherits:
Object
  • Object
show all
Defined in:
lib/berta/expiration_manager.rb

Overview

Class for managing expiration dates on vms

Instance Method Summary collapse

Instance Method Details

#add_default_expiration(vm) ⇒ Object

Adds default expiration if no valid expiration with right expiration action is set.

Parameters:



34
35
36
37
38
39
40
# File 'lib/berta/expiration_manager.rb', line 34

def add_default_expiration(vm)
  return if vm.default_expiration
  vm.add_expiration(Time.now.to_i + Berta::Settings.expiration_offset,
                    Berta::Settings.expiration.action)
rescue Berta::Errors::BackendError => e
  logger.error "#{e.message}\n\tOn vm with id #{vm.handle['ID']}"
end

#remove_invalid_expirations(vm) ⇒ Object

Removes invalid expirations on vm. That are schelude actions with expiration time later than expiration offset.

Parameters:



21
22
23
24
25
26
27
# File 'lib/berta/expiration_manager.rb', line 21

def remove_invalid_expirations(vm)
  exps = vm.expirations
  exps.keep_if(&:in_expiration_interval?)
  vm.update_expirations(exps) if exps.length != vm.expirations.length
rescue Berta::Errors::BackendError => e
  logger.error "#{e.message}\n\tOn vm with id #{vm.handle['ID']}"
end

#update_expirations(vms) ⇒ Object

Update all expirations on vm, removes invalid expirations and if needed will set default expiration date.

Parameters:



9
10
11
12
13
14
# File 'lib/berta/expiration_manager.rb', line 9

def update_expirations(vms)
  vms.each do |vm|
    remove_invalid_expirations(vm)
    add_default_expiration(vm)
  end
end