mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 10:08:40 -05:00
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.
36 lines
642 B
Ruby
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
|