refactor PENDING section in check pool

This commit is contained in:
Samuel Beaulieu 2018-07-17 12:06:51 -05:00
parent dc9b221bb9
commit fdb8a45faa
3 changed files with 21 additions and 20 deletions

View file

@ -737,13 +737,12 @@ module Vmpooler
end end
end end
def check_ready_pool_vms(pool_name, provider, pool_check_response, inventory, pool_ttl = nil) def check_ready_pool_vms(pool_name, provider, pool_check_response, inventory, pool_ttl = 0)
# READY
$redis.smembers("vmpooler__ready__#{pool_name}").each do |vm| $redis.smembers("vmpooler__ready__#{pool_name}").each do |vm|
if inventory[vm] if inventory[vm]
begin begin
pool_check_response[:checked_ready_vms] += 1 pool_check_response[:checked_ready_vms] += 1
check_ready_vm(vm, pool_name, pool_ttl || 0, provider) check_ready_vm(vm, pool_name, pool_ttl, provider)
rescue => err rescue => err
$logger.log('d', "[!] [#{pool_name}] _check_pool failed with an error while evaluating ready VMs: #{err}") $logger.log('d', "[!] [#{pool_name}] _check_pool failed with an error while evaluating ready VMs: #{err}")
end end
@ -753,6 +752,22 @@ module Vmpooler
end end
end end
def check_pending_pool_vms(pool_name, provider, pool_check_response, inventory, pool_timeout = nil)
pool_timeout ||= $config[:config]['timeout'] || 15
$redis.smembers("vmpooler__pending__#{pool_name}").each do |vm|
if inventory[vm]
begin
pool_check_response[:checked_pending_vms] += 1
check_pending_vm(vm, pool_name, pool_timeout, provider)
rescue => err
$logger.log('d', "[!] [#{pool_name}] _check_pool failed with an error while evaluating pending VMs: #{err}")
end
else
fail_pending_vm(vm, pool_name, pool_timeout, false)
end
end
end
def _check_pool(pool, provider) def _check_pool(pool, provider)
pool_check_response = { pool_check_response = {
discovered_vms: 0, discovered_vms: 0,
@ -774,20 +789,7 @@ module Vmpooler
check_ready_pool_vms(pool['name'], provider, pool_check_response, inventory, pool['ready_ttl']) check_ready_pool_vms(pool['name'], provider, pool_check_response, inventory, pool['ready_ttl'])
# PENDING check_pending_pool_vms(pool['name'], provider, pool_check_response, inventory, pool['timeout'])
$redis.smembers("vmpooler__pending__#{pool['name']}").each do |vm|
pool_timeout = pool['timeout'] || $config[:config]['timeout'] || 15
if inventory[vm]
begin
pool_check_response[:checked_pending_vms] += 1
check_pending_vm(vm, pool['name'], pool_timeout, provider)
rescue => err
$logger.log('d', "[!] [#{pool['name']}] _check_pool failed with an error while evaluating pending VMs: #{err}")
end
else
fail_pending_vm(vm, pool['name'], pool_timeout, false)
end
end
# COMPLETED # COMPLETED
$redis.smembers("vmpooler__completed__#{pool['name']}").each do |vm| $redis.smembers("vmpooler__completed__#{pool['name']}").each do |vm|

View file

@ -2742,7 +2742,6 @@ EOT
describe '#check_ready_pool_vms' do describe '#check_ready_pool_vms' do
let(:provider) { double('provider') } let(:provider) { double('provider') }
let(:ttl) { 0 }
let(:pool_check_response) { let(:pool_check_response) {
{:checked_ready_vms => 0} {:checked_ready_vms => 0}
} }

View file

@ -354,7 +354,7 @@
# (optional; default: '10') # (optional; default: '10')
# #
# - timeout # - timeout
# How long (in minutes) before marking a clone as 'failed' and retrying. # How long (in minutes) before marking a clone in 'pending' queues as 'failed' and retrying.
# (optional; default: '15') # (optional; default: '15')
# #
# - vm_checktime # - vm_checktime
@ -500,7 +500,7 @@
# (optional) # (optional)
# #
# - timeout # - timeout
# How long (in minutes) before marking a clone as 'failed' and retrying. # How long (in minutes) before marking a clone in 'pending' queues as 'failed' and retrying.
# This setting overrides any globally-configured timeout setting. # This setting overrides any globally-configured timeout setting.
# (optional; default: '15') # (optional; default: '15')
# #