vmpooler/lib/vmpooler/janitor.rb
Colin d0275f5fba (QENG-1906) Add spec tests for Janitor
Add spec tests to verify Janitor deletes stale vms correctly. This
required a small refactor of Janitor to move the logic out of the for
loop.
2015-03-31 10:21:24 -07:00

36 lines
642 B
Ruby

module Vmpooler
class Janitor
def initialize(logger, redis, data_ttl)
# Load logger library
$logger = logger
# Connect to Redis
$redis = redis
# TTL
$data_ttl = data_ttl
end
def execute!
loop do
find_stale_vms
sleep(600)
end
end
def find_stale_vms
$redis.keys('vmpooler__vm__*').each do |key|
data = $redis.hgetall(key)
if data['destroy']
lifetime = (Time.now - Time.parse(data['destroy'])) / 60 / 60
if lifetime > $data_ttl
$redis.del(key)
end
end
end
end
end
end