mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-27 02:18:41 -05:00
(MOB) Running tests pass
Good luck ready tester
This commit is contained in:
parent
b9d86c85ec
commit
481d5b215f
1 changed files with 87 additions and 121 deletions
|
|
@ -2665,6 +2665,7 @@ EOT
|
|||
end
|
||||
|
||||
describe '#check_running_pool_vms' do
|
||||
let(:pool_object) { config[:pools][0] }
|
||||
let(:pool_check_response) {
|
||||
{:checked_running_vms => 0}
|
||||
}
|
||||
|
|
@ -2709,9 +2710,9 @@ EOT
|
|||
end
|
||||
|
||||
it 'should return the number of checked running VMs' do
|
||||
result = subject._check_pool(pool_object,provider)
|
||||
subject.check_running_pool_vms(pool, provider, pool_check_response, inventory)
|
||||
|
||||
expect(result[:checked_running_vms]).to be(1)
|
||||
expect(pool_check_response[:checked_running_vms]).to be(1)
|
||||
end
|
||||
|
||||
it 'should use the VM lifetime in preference to defaults' do
|
||||
|
|
@ -2721,24 +2722,87 @@ EOT
|
|||
# The lifetime comes in as string
|
||||
expect(subject).to receive(:check_running_vm).with(vm,pool,"#{big_lifetime}",provider)
|
||||
|
||||
subject._check_pool(pool_object,provider)
|
||||
subject.check_running_pool_vms(pool, provider, pool_check_response, inventory)
|
||||
end
|
||||
|
||||
it 'should use the configuration default if the VM lifetime is not set' do
|
||||
config[:config]['vm_lifetime'] = 50
|
||||
expect(subject).to receive(:check_running_vm).with(vm,pool,50,provider)
|
||||
|
||||
subject._check_pool(pool_object,provider)
|
||||
subject.check_running_pool_vms(pool, provider, pool_check_response, inventory)
|
||||
end
|
||||
|
||||
it 'should use a lifetime of 12 if nothing is set' do
|
||||
expect(subject).to receive(:check_running_vm).with(vm,pool,12,provider)
|
||||
|
||||
subject._check_pool(pool_object,provider)
|
||||
subject.check_running_pool_vms(pool, provider, pool_check_response, inventory)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#check_ready_pool_vms' do
|
||||
let(:provider) { double('provider') }
|
||||
let(:ttl) { 0 }
|
||||
let(:pool_check_response) {
|
||||
{:checked_ready_vms => 0}
|
||||
}
|
||||
let(:inventory) {
|
||||
# mock response from create_inventory
|
||||
{}
|
||||
}
|
||||
|
||||
context 'Ready VM not in the inventory' do
|
||||
before(:each) do
|
||||
create_ready_vm(pool,vm,token)
|
||||
end
|
||||
|
||||
it 'should not call check_ready_vm' do
|
||||
expect(subject).to receive(:check_ready_vm).exactly(0).times
|
||||
|
||||
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
|
||||
end
|
||||
|
||||
it 'should move the VM to completed queue' do
|
||||
expect(subject).to receive(:move_vm_queue).with(pool,vm,'ready','completed',String).and_call_original
|
||||
|
||||
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
|
||||
end
|
||||
end
|
||||
|
||||
context 'Ready VM in the inventory' do
|
||||
before(:each) do
|
||||
allow(subject).to receive(:check_ready_vm)
|
||||
create_ready_vm(pool,vm,token)
|
||||
end
|
||||
|
||||
it 'should return the number of checked ready VMs' do
|
||||
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
|
||||
|
||||
expect(pool_check_response[:checked_ready_vms]).to be(1)
|
||||
end
|
||||
|
||||
it 'should log an error if one occurs' do
|
||||
expect(subject).to receive(:check_ready_vm).and_raise(RuntimeError,'MockError')
|
||||
expect(logger).to receive(:log).with('d', "[!] [#{pool}] _check_pool failed with an error while evaluating ready VMs: MockError")
|
||||
|
||||
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
|
||||
end
|
||||
|
||||
it 'should use the pool TTL if set' do
|
||||
big_lifetime = 2000
|
||||
|
||||
config[:pools][0]['ready_ttl'] = big_lifetime
|
||||
expect(subject).to receive(:check_ready_vm).with(vm,pool,big_lifetime,provider)
|
||||
|
||||
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
|
||||
end
|
||||
|
||||
it 'should use a pool TTL of zero if none set' do
|
||||
expect(subject).to receive(:check_ready_vm).with(vm,pool,0,provider)
|
||||
|
||||
subject.check_ready_pool_vms(pool, provider, pool_check_response, inventory, ttl)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#_check_pool' do
|
||||
|
|
@ -2871,126 +2935,28 @@ EOT
|
|||
end
|
||||
|
||||
# RUNNING
|
||||
# context 'Running VM not in the inventory' do
|
||||
# before(:each) do
|
||||
# expect(provider).to receive(:vms_in_pool).with(pool).and_return(new_vm_response)
|
||||
# expect(logger).to receive(:log).with('s', "[?] [#{pool}] '#{new_vm}' added to 'discovered' queue")
|
||||
# create_running_vm(pool,vm,token)
|
||||
# end
|
||||
context 'when checking running VMs' do
|
||||
let(:pool_check_response) {
|
||||
{
|
||||
discovered_vms: 0,
|
||||
checked_running_vms: 0,
|
||||
checked_ready_vms: 0,
|
||||
checked_pending_vms: 0,
|
||||
destroyed_vms: 0,
|
||||
migrated_vms: 0,
|
||||
cloned_vms: 0
|
||||
}
|
||||
}
|
||||
|
||||
# it 'should not call check_running_vm' do
|
||||
# expect(subject).to receive(:check_running_vm).exactly(0).times
|
||||
it 'should call #check_running_pool_vms' do
|
||||
allow(subject).to receive(:create_inventory).and_return({})
|
||||
expect(subject).to receive(:check_running_pool_vms).with(pool, provider, pool_check_response, {})
|
||||
|
||||
# subject._check_pool(pool_object,provider)
|
||||
# end
|
||||
|
||||
# it 'should move the VM to completed queue' do
|
||||
# expect(subject).to receive(:move_vm_queue).with(pool,vm,'running','completed',String).and_call_original
|
||||
|
||||
# subject._check_pool(pool_object,provider)
|
||||
# end
|
||||
# end
|
||||
|
||||
# context 'Running VM in the inventory' do
|
||||
# before(:each) do
|
||||
# expect(provider).to receive(:vms_in_pool).with(pool).and_return(vm_response)
|
||||
# allow(subject).to receive(:check_running_vm)
|
||||
# create_running_vm(pool,vm,token)
|
||||
# end
|
||||
|
||||
# it 'should log an error if one occurs' do
|
||||
# expect(subject).to receive(:check_running_vm).and_raise(RuntimeError,'MockError')
|
||||
# expect(logger).to receive(:log).with('d', "[!] [#{pool}] _check_pool with an error while evaluating running VMs: MockError")
|
||||
|
||||
# subject._check_pool(pool_object,provider)
|
||||
# end
|
||||
|
||||
# it 'should return the number of checked running VMs' do
|
||||
# result = subject._check_pool(pool_object,provider)
|
||||
|
||||
# expect(result[:checked_running_vms]).to be(1)
|
||||
# end
|
||||
|
||||
# it 'should use the VM lifetime in preference to defaults' do
|
||||
# big_lifetime = 2000
|
||||
|
||||
# redis.hset("vmpooler__vm__#{vm}", 'lifetime',big_lifetime)
|
||||
# # The lifetime comes in as string
|
||||
# expect(subject).to receive(:check_running_vm).with(vm,pool,"#{big_lifetime}",provider)
|
||||
|
||||
# subject._check_pool(pool_object,provider)
|
||||
# end
|
||||
|
||||
# it 'should use the configuration default if the VM lifetime is not set' do
|
||||
# config[:config]['vm_lifetime'] = 50
|
||||
# expect(subject).to receive(:check_running_vm).with(vm,pool,50,provider)
|
||||
|
||||
# subject._check_pool(pool_object,provider)
|
||||
# end
|
||||
|
||||
# it 'should use a lifetime of 12 if nothing is set' do
|
||||
# expect(subject).to receive(:check_running_vm).with(vm,pool,12,provider)
|
||||
|
||||
# subject._check_pool(pool_object,provider)
|
||||
# end
|
||||
# end
|
||||
subject._check_pool(pool_object,provider)
|
||||
end
|
||||
end
|
||||
|
||||
# READY
|
||||
context 'Ready VM not in the inventory' do
|
||||
before(:each) do
|
||||
expect(provider).to receive(:vms_in_pool).with(pool).and_return(new_vm_response)
|
||||
expect(logger).to receive(:log).with('s', "[?] [#{pool}] '#{new_vm}' added to 'discovered' queue")
|
||||
create_ready_vm(pool,vm,token)
|
||||
end
|
||||
|
||||
it 'should not call check_ready_vm' do
|
||||
expect(subject).to receive(:check_ready_vm).exactly(0).times
|
||||
|
||||
subject._check_pool(pool_object,provider)
|
||||
end
|
||||
|
||||
it 'should move the VM to completed queue' do
|
||||
expect(subject).to receive(:move_vm_queue).with(pool,vm,'ready','completed',String).and_call_original
|
||||
|
||||
subject._check_pool(pool_object,provider)
|
||||
end
|
||||
end
|
||||
|
||||
context 'Ready VM in the inventory' do
|
||||
before(:each) do
|
||||
expect(provider).to receive(:vms_in_pool).with(pool).and_return(vm_response)
|
||||
allow(subject).to receive(:check_ready_vm)
|
||||
create_ready_vm(pool,vm,token)
|
||||
end
|
||||
|
||||
it 'should return the number of checked ready VMs' do
|
||||
result = subject._check_pool(pool_object,provider)
|
||||
|
||||
expect(result[:checked_ready_vms]).to be(1)
|
||||
end
|
||||
|
||||
it 'should log an error if one occurs' do
|
||||
expect(subject).to receive(:check_ready_vm).and_raise(RuntimeError,'MockError')
|
||||
expect(logger).to receive(:log).with('d', "[!] [#{pool}] _check_pool failed with an error while evaluating ready VMs: MockError")
|
||||
|
||||
subject._check_pool(pool_object,provider)
|
||||
end
|
||||
|
||||
it 'should use the pool TTL if set' do
|
||||
big_lifetime = 2000
|
||||
|
||||
config[:pools][0]['ready_ttl'] = big_lifetime
|
||||
expect(subject).to receive(:check_ready_vm).with(vm,pool,big_lifetime,provider)
|
||||
|
||||
subject._check_pool(pool_object,provider)
|
||||
end
|
||||
|
||||
it 'should use a pool TTL of zero if none set' do
|
||||
expect(subject).to receive(:check_ready_vm).with(vm,pool,0,provider)
|
||||
|
||||
subject._check_pool(pool_object,provider)
|
||||
end
|
||||
end
|
||||
|
||||
# PENDING
|
||||
context 'Pending VM not in the inventory' do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue