From a78d65137d1be128b4c37771a4fb565206d40839 Mon Sep 17 00:00:00 2001 From: "kirby@puppetlabs.com" Date: Tue, 19 Jun 2018 11:27:47 -0700 Subject: [PATCH] Pass pool_check_response to create_inventory Ensure that pool_check_response is passed in to create_inventory. Start base for running pool vms. --- lib/vmpooler/pool_manager.rb | 19 +++++++++++++++++-- spec/unit/pool_manager_spec.rb | 28 +++++++--------------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/lib/vmpooler/pool_manager.rb b/lib/vmpooler/pool_manager.rb index f4c8d6e..9dd2962 100644 --- a/lib/vmpooler/pool_manager.rb +++ b/lib/vmpooler/pool_manager.rb @@ -555,7 +555,7 @@ module Vmpooler end end - def create_inventory(pool, provider) + def create_inventory(pool, provider, pool_check_response) inventory = {} begin provider.vms_in_pool(pool['name']).each do |vm| @@ -581,6 +581,10 @@ module Vmpooler inventory end + def check_running_pool_vms(pool, provider, pool_check_response) + # do stuff here + end + def _check_pool(pool, provider) pool_check_response = { discovered_vms: 0, @@ -591,9 +595,20 @@ module Vmpooler migrated_vms: 0, cloned_vms: 0 } - inventory = create_inventory(pool, provider) + + begin + inventory = create_inventory(pool, provider, pool_check_response) + rescue => err + return(pool_check_response) + end # RUNNING + 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 diff --git a/spec/unit/pool_manager_spec.rb b/spec/unit/pool_manager_spec.rb index 9f6bbaf..21ce1ad 100644 --- a/spec/unit/pool_manager_spec.rb +++ b/spec/unit/pool_manager_spec.rb @@ -2231,29 +2231,15 @@ EOT end it 'should not perform any other actions if an error occurs' do - # Add VMs into redis - create_running_vm(pool_name, 'vm1') - create_ready_vm(pool_name, 'vm2') - create_completed_vm('vm3', pool_name) - create_discovered_vm('vm4', pool_name) - create_migrating_vm('vm5', pool_name) + allow(subject).to receive(:create_inventory).and_raise( + RuntimeError,'Mock Error' + ) - expect(subject).to receive(:move_vm_queue).exactly(0).times - expect(subject).to receive(:check_running_vm).exactly(0).times - expect(subject).to receive(:check_pending_vm).exactly(0).times - expect(subject).to receive(:destroy_vm).exactly(0).times - expect(redis).to receive(:srem).exactly(0).times - expect(redis).to receive(:del).exactly(0).times - expect(redis).to receive(:hdel).exactly(0).times - expect(redis).to receive(:smove).exactly(0).times - expect(subject).to receive(:migrate_vm).exactly(0).times - expect(redis).to receive(:set).exactly(0).times - expect(redis).to receive(:incr).exactly(0).times - expect(subject).to receive(:clone_vm).exactly(0).times - expect(redis).to receive(:decr).exactly(0).times + expect { + subject._check_pool(pool_object, provider) + }.to raise_error(RuntimeError, /Mock Error/) - expect(provider).to receive(:vms_in_pool).and_raise(RuntimeError,'Mock Error') - subject._check_pool(pool_object,provider) + expect(subject).to_not receive(:check_running_pool_vms) end it 'should return that no actions were taken' do