mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 01:58:41 -05:00
Merge pull request #297 from mattkirby/pooler_130
(POOLER-130) Improve delta disk creation handling
This commit is contained in:
commit
0e86937245
3 changed files with 24 additions and 1 deletions
|
|
@ -12,6 +12,7 @@ If you're looking for changes from before this, refer to the project's
|
|||
git logs & PR history.
|
||||
|
||||
# [Unreleased](https://github.com/puppetlabs/vmpooler/compare/0.2.0...master)
|
||||
- Better handle delta disk creation errors (POOLER-130)
|
||||
|
||||
### Added
|
||||
- Re-write check\_pool in pool\_manager to improve readability
|
||||
|
|
|
|||
|
|
@ -721,7 +721,16 @@ module Vmpooler
|
|||
end
|
||||
|
||||
def prepare_template(pool, provider)
|
||||
provider.create_template_delta_disks(pool) if $config[:config]['create_template_delta_disks']
|
||||
if $config[:config]['create_template_delta_disks']
|
||||
unless $redis.sismember('vmpooler__template__deltas', pool['template'])
|
||||
begin
|
||||
provider.create_template_delta_disks(pool)
|
||||
$redis.sadd('vmpooler__template__deltas', pool['template'])
|
||||
rescue => err
|
||||
$logger.log('s', "[!] [#{pool['name']}] failed while preparing a template with an error. As a result vmpooler could not create the template delta disks. Either a template delta disk already exists, or the template delta disk creation failed. The error is: #{err}")
|
||||
end
|
||||
end
|
||||
end
|
||||
$redis.hset('vmpooler__template__prepared', pool['name'], pool['template'])
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -1942,6 +1942,19 @@ EOT
|
|||
subject.prepare_template(config[:pools][0], provider)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when template delta disk creation fails' do
|
||||
before(:each) do
|
||||
allow(redis).to receive(:hset)
|
||||
expect(provider).to receive(:create_template_delta_disks).and_raise("MockError")
|
||||
end
|
||||
|
||||
it 'should log a message when delta disk creation returns an error' do
|
||||
expect(logger).to receive(:log).with('s', "[!] [#{pool}] failed while preparing a template with an error. As a result vmpooler could not create the template delta disks. Either a template delta disk already exists, or the template delta disk creation failed. The error is: MockError")
|
||||
|
||||
subject.prepare_template(config[:pools][0], provider)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'evaluate_template' do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue