(MOB) refactored check_running_pool_vms method

Some test fixing came along with this
This commit is contained in:
kevpl 2018-06-29 13:58:26 -07:00
parent 37e137962a
commit 5cfc4ed3bb
No known key found for this signature in database
GPG key ID: A2791F7C6D6C0186
2 changed files with 26 additions and 35 deletions

View file

@ -721,8 +721,20 @@ module Vmpooler
inventory inventory
end end
def check_running_pool_vms(pool, provider, pool_check_response) def check_running_pool_vms(pool_name, provider, pool_check_response, inventory)
# do stuff here $redis.smembers("vmpooler__running__#{pool_name}").each do |vm|
if inventory[vm]
begin
vm_lifetime = $redis.hget('vmpooler__vm__' + vm, 'lifetime') || $config[:config]['vm_lifetime'] || 12
pool_check_response[:checked_running_vms] += 1
check_running_vm(vm, pool_name, vm_lifetime, provider)
rescue => err
$logger.log('d', "[!] [#{pool_name}] _check_pool with an error while evaluating running VMs: #{err}")
end
else
move_vm_queue(pool_name, vm, 'running', 'completed', 'is a running VM but is missing from inventory. Marking as completed.')
end
end
end end
def _check_pool(pool, provider) def _check_pool(pool, provider)
@ -742,26 +754,8 @@ module Vmpooler
return(pool_check_response) return(pool_check_response)
end end
# RUNNING check_running_pool_vms(pool['name'], provider, pool_check_response, inventory)
begin
check_running_pool_vms(pool, provider, pool_check_response)
rescue => err
return(pool_check_response)
end
$redis.smembers("vmpooler__running__#{pool['name']}").each do |vm|
if inventory[vm]
begin
vm_lifetime = $redis.hget('vmpooler__vm__' + vm, 'lifetime') || $config[:config]['vm_lifetime'] || 12
pool_check_response[:checked_running_vms] += 1
check_running_vm(vm, pool['name'], vm_lifetime, provider)
rescue => err
$logger.log('d', "[!] [#{pool['name']}] _check_pool with an error while evaluating running VMs: #{err}")
end
else
move_vm_queue(pool['name'], vm, 'running', 'completed', 'is a running VM but is missing from inventory. Marking as completed.')
end
end
# READY # READY
$redis.smembers("vmpooler__ready__#{pool['name']}").each do |vm| $redis.smembers("vmpooler__ready__#{pool['name']}").each do |vm|

View file

@ -2653,13 +2653,15 @@ EOT
describe '#create_inventory' do describe '#create_inventory' do
it 'should log an error if one occurs' # do it 'should log an error if one occurs' do
# expect(provider).to receive(:vms_in_pool).and_raise(RuntimeError,'Mock Error') allow(provider).to receive(:vms_in_pool).and_raise(
# expect(logger).to receive(:log).with('s', "[!] [#{pool}] _check_pool failed with an error while running create_inventory: Mock Error") RuntimeError,'Mock Error'
# )
# subject._check_pool(pool_object,provider)
# end
expect {
subject.create_inventory(config[:pools].first, provider, {})
}.to raise_error(RuntimeError, 'Mock Error')
end
end end
describe '#_check_pool' do describe '#_check_pool' do
@ -2719,13 +2721,11 @@ EOT
subject._check_pool(pool_object, provider) subject._check_pool(pool_object, provider)
end end
it 'passes #create_inventory errors correctly' do it 'returns a hash when #create_inventory errors' do
allow(subject).to receive(:create_inventory).and_raise( allow(subject).to receive(:create_inventory).and_raise(
RuntimeError,'Mock Error' RuntimeError,'Mock Error'
) )
expect { expect(subject._check_pool(pool_object, provider)).to be_kind_of(Hash)
subject._check_pool(pool_object, provider)
}.to raise_error(RuntimeError, /Mock Error/)
end end
it 'should not perform any other actions if an error occurs' do it 'should not perform any other actions if an error occurs' do
@ -2733,11 +2733,8 @@ EOT
RuntimeError,'Mock Error' RuntimeError,'Mock Error'
) )
expect {
subject._check_pool(pool_object, provider)
}.to raise_error(RuntimeError, /Mock Error/)
expect(subject).to_not receive(:check_running_pool_vms) expect(subject).to_not receive(:check_running_pool_vms)
subject._check_pool(pool_object, provider)
end end
it 'should return that no actions were taken' do it 'should return that no actions were taken' do