Merge pull request #297 from mattkirby/pooler_130

(POOLER-130) Improve delta disk creation handling
This commit is contained in:
mchllweeks 2018-08-30 17:22:35 -07:00 committed by GitHub
commit 0e86937245
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 1 deletions

View file

@ -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

View file

@ -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

View file

@ -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