(POOLER-47) Update rescue location for clone_vm

This commit shifts the rescue block for clone_vm to ensure it is reached when a failure occurs. Without this change the rescue block may be skipped and cause vmpooler__tasks__clone to not decr, which in turn causes clone operations to stop.
This commit is contained in:
kirby@puppetlabs.com 2016-12-02 05:03:52 -08:00
parent 1bbd623609
commit 133bf7eb12

View file

@ -187,7 +187,6 @@ module Vmpooler
# Clone a VM # Clone a VM
def clone_vm(template, folder, datastore, target, vsphere) def clone_vm(template, folder, datastore, target, vsphere)
Thread.new do Thread.new do
begin
vm = {} vm = {}
if template =~ /\// if template =~ /\//
@ -277,12 +276,11 @@ module Vmpooler
$redis.decr('vmpooler__tasks__clone') $redis.decr('vmpooler__tasks__clone')
$metrics.timing("clone.#{vm['template']}", finish) $metrics.timing("clone.#{vm['template']}", finish)
end
rescue => err rescue => err
$logger.log('s', "[!] [#{vm['template']}] '#{vm['hostname']}' failed while preparing to clone with an error: #{err}") $logger.log('s', "[!] [#{vm['template']}] '#{vm['hostname']}' failed while preparing to clone with an error: #{err}")
raise raise
end end
end
end
# Destroy a VM # Destroy a VM
def destroy_vm(vm, pool, vsphere) def destroy_vm(vm, pool, vsphere)