Thread ALL THE THINGS

This commit is contained in:
Scott Schneider 2013-11-04 14:22:22 -08:00
parent ac7b2f1216
commit 699bf83803

View file

@ -146,6 +146,7 @@ loop do
end end
# Check 'pending' pool # Check 'pending' pool
Thread.new {
$redis.smembers('vmware_host_pool__pending__'+pool['name']).each do |vm| $redis.smembers('vmware_host_pool__pending__'+pool['name']).each do |vm|
if ! inventory[vm] if ! inventory[vm]
$redis.srem('vmware_host_pool__pending__'+pool['name'], vm) $redis.srem('vmware_host_pool__pending__'+pool['name'], vm)
@ -187,8 +188,10 @@ loop do
$redis.lpush('vmware_host_pool_metrics__deploy_fail', '0') $redis.lpush('vmware_host_pool_metrics__deploy_fail', '0')
end end
end end
}
# Check 'ready' pool # Check 'ready' pool
Thread.new {
$redis.smembers('vmware_host_pool__ready__'+pool['name']).each do |vm| $redis.smembers('vmware_host_pool__ready__'+pool['name']).each do |vm|
if ! inventory[vm] if ! inventory[vm]
$redis.srem('vmware_host_pool__ready__'+pool['name'], vm) $redis.srem('vmware_host_pool__ready__'+pool['name'], vm)
@ -220,17 +223,23 @@ loop do
$redis.lpush('vmware_host_pool_metrics__deploy_fail', '1') $redis.lpush('vmware_host_pool_metrics__deploy_fail', '1')
end end
end end
}
# Check 'completed' pool # Check 'completed' pool
Thread.new {
$redis.smembers('vmware_host_pool__completed__'+pool['name']).each do |vm| $redis.smembers('vmware_host_pool__completed__'+pool['name']).each do |vm|
if ! inventory[vm] if ! inventory[vm]
$redis.srem('vmware_host_pool__completed__'+pool['name'], vm) $redis.srem('vmware_host_pool__completed__'+pool['name'], vm)
end end
Thread.new {
destroy_vm(vm) destroy_vm(vm)
}
end end
}
# Check 'failed' pool # Check 'failed' pool
Thread.new {
$redis.smembers('vmware_host_pool__failed__'+pool['name']).each do |vm| $redis.smembers('vmware_host_pool__failed__'+pool['name']).each do |vm|
if ! inventory[vm] if ! inventory[vm]
$redis.srem('vmware_host_pool__failed__'+pool['name'], vm) $redis.srem('vmware_host_pool__failed__'+pool['name'], vm)
@ -253,14 +262,19 @@ loop do
$logger.log('s', "[>] '#{vm}' moved to 'ready' queue") $logger.log('s', "[>] '#{vm}' moved to 'ready' queue")
else else
Thread.new {
destroy_vm(vm) destroy_vm(vm)
}
end end
end end
}
# Bring the pool up to the desired size # Bring the pool up to the desired size
Thread.new {
if total < pool['size'] if total < pool['size']
# Provision VMs # Provision VMs
(1..(pool['size']-total)).each { |i| (1..(pool['size']-total)).each { |i|
Thread.new {
clone_vm( clone_vm(
pool['template'], pool['template'],
pool['pool'], pool['pool'],
@ -268,7 +282,9 @@ loop do
pool['datastore'] pool['datastore']
) )
} }
}
end end
}
# Metrics # Metrics
$redis.ltrim('vmware_host_pool_metrics__deploy_fail', 0, 100) $redis.ltrim('vmware_host_pool_metrics__deploy_fail', 0, 100)