mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 18:08:42 -05:00
(MOB) refactored check_running_pool_vms method
Some test fixing came along with this
This commit is contained in:
parent
37e137962a
commit
5cfc4ed3bb
2 changed files with 26 additions and 35 deletions
|
|
@ -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|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue