mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 10:08:40 -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')
|
$redis.hget('vmpooler__vm__' + vm_name, 'template')
|
||||||
end
|
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)
|
def check_disk_queue(maxloop = 0, loop_delay = 5)
|
||||||
$logger.log('d', "[*] [disk_manager] starting worker thread")
|
$logger.log('d', "[*] [disk_manager] starting worker thread")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1018,6 +1018,93 @@ EOT
|
||||||
end
|
end
|
||||||
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
|
describe '#check_disk_queue' do
|
||||||
let(:threads) {[]}
|
let(:threads) {[]}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue