Updated Branches: refs/heads/4.1 f4c62a859 -> f8e3f161f
CLOUDSTACK-1403 Storage and console-proxy related error Aborting lease over VM/template if uploading file fails. Earlier the lease was completed successfully even if upload fails due to IOException or ConnectionException while uploading file to HTTP URL. Signed-off-by: Sateesh Chodapuneedi <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/f8e3f161 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/f8e3f161 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/f8e3f161 Branch: refs/heads/4.1 Commit: f8e3f161f9aefd51fed1745d0cb02d2d1be25215 Parents: f4c62a8 Author: Sateesh Chodapuneedi <[email protected]> Authored: Thu Feb 28 20:33:47 2013 +0530 Committer: Sateesh Chodapuneedi <[email protected]> Committed: Thu Feb 28 20:33:47 2013 +0530 ---------------------------------------------------------------------- .../hypervisor/vmware/mo/HypervisorHostHelper.java | 19 ++++++++++++-- 1 files changed, 16 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f8e3f161/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java ---------------------------------------------------------------------- diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java index 50f9541..a232bd0 100755 --- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java +++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java @@ -868,6 +868,7 @@ public class HypervisorHostHelper { s_logger.error(msg); throw new Exception(msg); } + boolean importSuccess = true; final HttpNfcLeaseMO leaseMo = new HttpNfcLeaseMO(context, morLease); HttpNfcLeaseState state = leaseMo.waitState( new HttpNfcLeaseState[] { HttpNfcLeaseState.ready, HttpNfcLeaseState.error }); @@ -901,13 +902,25 @@ public class HypervisorHostHelper { } } } - } finally { + } catch (Exception e) { + s_logger.error("Failed to complete file upload task. " + e.getMessage()); + // Set flag to cleanup the stale template left due to failed import operation, if any + importSuccess = false; + throw e; + } finally { progressReporter.close(); } - leaseMo.updateLeaseProgress(100); + if (bytesAlreadyWritten == totalBytes) { + leaseMo.updateLeaseProgress(100); + } } } finally { - leaseMo.completeLease(); + if (!importSuccess) { + s_logger.error("Aborting the lease on " + vmName + " after import operation failed."); + leaseMo.abortLease(); + } else { + leaseMo.completeLease(); + } } } }
