mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 01:58:41 -05:00
(POOLER-70) Add get_provider_for_pool for VM Provider
This commit adds a helper method which retrieves the associated Provider object for a pool by name
This commit is contained in:
parent
c09035cfcb
commit
e01b96c6d0
2 changed files with 98 additions and 0 deletions
|
|
@ -353,6 +353,17 @@ module Vmpooler
|
|||
$redis.hget('vmpooler__vm__' + vm_name, 'template')
|
||||
end
|
||||
|
||||
def get_provider_for_pool(pool_name)
|
||||
provider_name = nil
|
||||
$config[:pools].each do |pool|
|
||||
next unless pool['name'] == pool_name
|
||||
provider_name = pool['provider']
|
||||
end
|
||||
return nil if provider_name.nil?
|
||||
|
||||
$providers[provider_name]
|
||||
end
|
||||
|
||||
def check_disk_queue(maxloop = 0, loop_delay = 5)
|
||||
$logger.log('d', "[*] [disk_manager] starting worker thread")
|
||||
|
||||
|
|
|
|||
|
|
@ -1018,6 +1018,93 @@ EOT
|
|||
end
|
||||
end
|
||||
|
||||
describe '#get_provider_for_pool' do
|
||||
let(:provider_name) { 'mock_provider' }
|
||||
|
||||
before do
|
||||
expect(subject).not_to be_nil
|
||||
# Inject mock provider into global variable - Note this is a code smell
|
||||
$providers = { provider_name => provider }
|
||||
end
|
||||
|
||||
after(:each) do
|
||||
# Reset the global variable - Note this is a code smell
|
||||
$providers = nil
|
||||
end
|
||||
|
||||
context 'Given a pool name which does not exist' do
|
||||
let(:config) { YAML.load(<<-EOT
|
||||
---
|
||||
:config:
|
||||
:providers:
|
||||
:mock:
|
||||
:pools:
|
||||
- name: '#{pool}'
|
||||
size: 1
|
||||
EOT
|
||||
)}
|
||||
|
||||
it 'should return nil' do
|
||||
expect(subject.get_provider_for_pool('pool_does_not_exist')).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'Given a pool which does not have a provider' do
|
||||
let(:config) { YAML.load(<<-EOT
|
||||
---
|
||||
:config:
|
||||
:providers:
|
||||
:mock:
|
||||
:pools:
|
||||
- name: '#{pool}'
|
||||
size: 1
|
||||
EOT
|
||||
)}
|
||||
|
||||
it 'should return nil' do
|
||||
expect(subject.get_provider_for_pool(pool)).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'Given a pool which uses an invalid provider' do
|
||||
let(:config) { YAML.load(<<-EOT
|
||||
---
|
||||
:config:
|
||||
:providers:
|
||||
:mock:
|
||||
:pools:
|
||||
- name: '#{pool}'
|
||||
size: 1
|
||||
provider: 'does_not_exist'
|
||||
EOT
|
||||
)}
|
||||
|
||||
it 'should return nil' do
|
||||
expect(subject.get_provider_for_pool(pool)).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'Given a pool which uses a valid provider' do
|
||||
let(:config) { YAML.load(<<-EOT
|
||||
---
|
||||
:config:
|
||||
:providers:
|
||||
:mock:
|
||||
:pools:
|
||||
- name: '#{pool}'
|
||||
size: 1
|
||||
provider: #{provider_name}
|
||||
EOT
|
||||
)}
|
||||
|
||||
it 'should return a provider object' do
|
||||
result = subject.get_provider_for_pool(pool)
|
||||
expect(result).to_not be_nil
|
||||
expect(result.name).to eq(provider_name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#check_disk_queue' do
|
||||
let(:threads) {[]}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue