From c09035cfcb423aaf995e248b0b7f534a44e18960 Mon Sep 17 00:00:00 2001 From: Glenn Sarti Date: Fri, 31 Mar 2017 14:07:08 -0700 Subject: [PATCH] (POOLER-70) Add get_pool_name_for_vm for VM Provider Previously there was no simple way to calculate which pool a VM was a member of. This commit adds a helper method which queries redis for the pool name for a given VM. --- lib/vmpooler/pool_manager.rb | 5 +++++ spec/unit/pool_manager_spec.rb | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/lib/vmpooler/pool_manager.rb b/lib/vmpooler/pool_manager.rb index 0c788ea..a190d2d 100644 --- a/lib/vmpooler/pool_manager.rb +++ b/lib/vmpooler/pool_manager.rb @@ -348,6 +348,11 @@ module Vmpooler result end + def get_pool_name_for_vm(vm_name) + # the 'template' is a bad name. Should really be 'poolname' + $redis.hget('vmpooler__vm__' + vm_name, 'template') + end + def check_disk_queue(maxloop = 0, loop_delay = 5) $logger.log('d', "[*] [disk_manager] starting worker thread") diff --git a/spec/unit/pool_manager_spec.rb b/spec/unit/pool_manager_spec.rb index 25da65d..df0780b 100644 --- a/spec/unit/pool_manager_spec.rb +++ b/spec/unit/pool_manager_spec.rb @@ -1000,6 +1000,24 @@ EOT end end + describe '#get_pool_name_for_vm' do + context 'Given a valid VM' do + before(:each) do + create_running_vm(pool, vm, token) + end + + it 'should return the pool name' do + expect(subject.get_pool_name_for_vm(vm)).to eq(pool) + end + end + + context 'Given an invalid VM' do + it 'should return nil' do + expect(subject.get_pool_name_for_vm('does_not_exist')).to be_nil + end + end + end + describe '#check_disk_queue' do let(:threads) {[]}