mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 18:08:42 -05:00
Thread ALL THE THINGS
This commit is contained in:
parent
ac7b2f1216
commit
699bf83803
1 changed files with 123 additions and 107 deletions
|
|
@ -146,6 +146,7 @@ loop do
|
|||
end
|
||||
|
||||
# Check 'pending' pool
|
||||
Thread.new {
|
||||
$redis.smembers('vmware_host_pool__pending__'+pool['name']).each do |vm|
|
||||
if ! inventory[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')
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
# Check 'ready' pool
|
||||
Thread.new {
|
||||
$redis.smembers('vmware_host_pool__ready__'+pool['name']).each do |vm|
|
||||
if ! inventory[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')
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
# Check 'completed' pool
|
||||
Thread.new {
|
||||
$redis.smembers('vmware_host_pool__completed__'+pool['name']).each do |vm|
|
||||
if ! inventory[vm]
|
||||
$redis.srem('vmware_host_pool__completed__'+pool['name'], vm)
|
||||
end
|
||||
|
||||
Thread.new {
|
||||
destroy_vm(vm)
|
||||
}
|
||||
end
|
||||
}
|
||||
|
||||
# Check 'failed' pool
|
||||
Thread.new {
|
||||
$redis.smembers('vmware_host_pool__failed__'+pool['name']).each do |vm|
|
||||
if ! inventory[vm]
|
||||
$redis.srem('vmware_host_pool__failed__'+pool['name'], vm)
|
||||
|
|
@ -253,14 +262,19 @@ loop do
|
|||
|
||||
$logger.log('s', "[>] '#{vm}' moved to 'ready' queue")
|
||||
else
|
||||
Thread.new {
|
||||
destroy_vm(vm)
|
||||
}
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
# Bring the pool up to the desired size
|
||||
Thread.new {
|
||||
if total < pool['size']
|
||||
# Provision VMs
|
||||
(1..(pool['size']-total)).each { |i|
|
||||
Thread.new {
|
||||
clone_vm(
|
||||
pool['template'],
|
||||
pool['pool'],
|
||||
|
|
@ -268,7 +282,9 @@ loop do
|
|||
pool['datastore']
|
||||
)
|
||||
}
|
||||
}
|
||||
end
|
||||
}
|
||||
|
||||
# Metrics
|
||||
$redis.ltrim('vmware_host_pool_metrics__deploy_fail', 0, 100)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue