diff --git a/lib/vmpooler/pool_manager.rb b/lib/vmpooler/pool_manager.rb index b4c07b0..3f4a8b6 100644 --- a/lib/vmpooler/pool_manager.rb +++ b/lib/vmpooler/pool_manager.rb @@ -737,13 +737,12 @@ module Vmpooler end end - def check_ready_pool_vms(pool_name, provider, pool_check_response, inventory, pool_ttl = nil) - # READY + def check_ready_pool_vms(pool_name, provider, pool_check_response, inventory, pool_ttl = 0) $redis.smembers("vmpooler__ready__#{pool_name}").each do |vm| if inventory[vm] begin 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 $logger.log('d', "[!] [#{pool_name}] _check_pool failed with an error while evaluating ready VMs: #{err}") end @@ -753,6 +752,22 @@ module Vmpooler 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) pool_check_response = { discovered_vms: 0, @@ -774,20 +789,7 @@ module Vmpooler check_ready_pool_vms(pool['name'], provider, pool_check_response, inventory, pool['ready_ttl']) - # PENDING - $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 + check_pending_pool_vms(pool['name'], provider, pool_check_response, inventory, pool['timeout']) # COMPLETED $redis.smembers("vmpooler__completed__#{pool['name']}").each do |vm| diff --git a/spec/unit/pool_manager_spec.rb b/spec/unit/pool_manager_spec.rb index 6e74433..1609433 100644 --- a/spec/unit/pool_manager_spec.rb +++ b/spec/unit/pool_manager_spec.rb @@ -2742,7 +2742,6 @@ EOT describe '#check_ready_pool_vms' do let(:provider) { double('provider') } - let(:ttl) { 0 } let(:pool_check_response) { {:checked_ready_vms => 0} } diff --git a/vmpooler.yaml.example b/vmpooler.yaml.example index 03e0e38..8644ff8 100644 --- a/vmpooler.yaml.example +++ b/vmpooler.yaml.example @@ -354,7 +354,7 @@ # (optional; default: '10') # # - 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') # # - vm_checktime @@ -500,7 +500,7 @@ # (optional) # # - 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. # (optional; default: '15') #