mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-27 02:18:41 -05:00
Auto-expire Redis metadata key via Redis EXPIRE
This commit also removed the unnecessary Vmpooler::Janitor lib
This commit is contained in:
parent
2b9f66b8d2
commit
f9de28236b
5 changed files with 19 additions and 127 deletions
|
|
@ -1,36 +0,0 @@
|
|||
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
|
||||
|
|
@ -1,10 +1,8 @@
|
|||
module Vmpooler
|
||||
class PoolManager
|
||||
def initialize(config, pools, logger, redis, graphite=nil)
|
||||
def initialize(config, logger, redis, graphite=nil)
|
||||
$config = config
|
||||
|
||||
$pools = pools
|
||||
|
||||
# Load logger library
|
||||
$logger = logger
|
||||
|
||||
|
|
@ -257,6 +255,9 @@ module Vmpooler
|
|||
$redis.hdel('vmpooler__active__' + pool, vm)
|
||||
$redis.hset('vmpooler__vm__' + vm, 'destroy', Time.now)
|
||||
|
||||
# Auto-expire metadata key
|
||||
$redis.expire('vmpooler__vm__' + vm, ($config[:redis]['data_ttl'].to_i * 60 * 60))
|
||||
|
||||
host = $vsphere[pool].find_vm(vm) ||
|
||||
$vsphere[pool].find_vm_heavy(vm)[vm]
|
||||
|
||||
|
|
@ -451,7 +452,7 @@ module Vmpooler
|
|||
$redis.set('vmpooler__tasks__clone', 0)
|
||||
|
||||
loop do
|
||||
$pools.each do |pool|
|
||||
$config[:pools].each do |pool|
|
||||
if ! $threads[pool['name']]
|
||||
check_pool(pool)
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue