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.
|
git logs & PR history.
|
||||||
|
|
||||||
# [Unreleased](https://github.com/puppetlabs/vmpooler/compare/0.2.0...master)
|
# [Unreleased](https://github.com/puppetlabs/vmpooler/compare/0.2.0...master)
|
||||||
|
- Better handle delta disk creation errors (POOLER-130)
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Re-write check\_pool in pool\_manager to improve readability
|
- Re-write check\_pool in pool\_manager to improve readability
|
||||||
|
|
|
||||||
|
|
@ -721,7 +721,16 @@ module Vmpooler
|
||||||
end
|
end
|
||||||
|
|
||||||
def prepare_template(pool, provider)
|
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'])
|
$redis.hset('vmpooler__template__prepared', pool['name'], pool['template'])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1942,6 +1942,19 @@ EOT
|
||||||
subject.prepare_template(config[:pools][0], provider)
|
subject.prepare_template(config[:pools][0], provider)
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
||||||
describe 'evaluate_template' do
|
describe 'evaluate_template' do
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue