Quick hack to auto-destroy long-running VMs

This commit is contained in:
Scott Schneider 2013-12-04 11:15:03 -08:00
parent c4b85d0306
commit 009cf789ab

View file

@ -79,6 +79,19 @@ def check_ready_vm vm, pool, ttl
}
end
def check_running_vm vm, pool, ttl
Thread.new {
host = $vsphere_helper.find_vms(vm)[vm]
if ((((Time.now - host.runtime.bootTime)/60).to_s[/^\d+\.\d{1}/].to_f) > ttl)
$redis.srem('vmware_host_pool__running__'+pool, vm)
$redis.sadd('vmware_host_pool__completed__'+pool, vm)
$logger.log('d', "[!] [#{pool}] '#{vm}' reached end of TTL after #{ttl} minutes")
end
}
end
# Clone a VM
def clone_vm template, pool, folder, datastore
Thread.new {
@ -197,6 +210,15 @@ def check_pool pool
inventory[vm['name']] = 1
end
# RUNNING
$redis.smembers('vmware_host_pool__running__'+pool['name']).each do |vm|
if (! inventory[vm])
$redis.srem('vmware_host_pool__running__'+pool['name'], vm)
end
check_running_vm(vm, pool['name'], config[:config]['ttl'])
end
# READY
$redis.smembers('vmware_host_pool__ready__'+pool['name']).each do |vm|
if (! inventory[vm])