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();
+            }
                }
        }
 }

Reply via email to