').addClass('title').html('')
);
var closeRegionSelector = function(args) {
@@ -72,7 +78,6 @@
};
var switchRegion = function(url) {
-
closeRegionSelector({
complete: function() {
$('#container').prepend($('').addClass('loading-overlay'));
diff --git a/utils/src/com/cloud/utils/xmlobject/XmlObject.java b/utils/src/com/cloud/utils/xmlobject/XmlObject.java
index a5b83a2d49b..80ac13df794 100644
--- a/utils/src/com/cloud/utils/xmlobject/XmlObject.java
+++ b/utils/src/com/cloud/utils/xmlobject/XmlObject.java
@@ -40,7 +40,10 @@ public class XmlObject {
this.tag = tag;
}
- public XmlObject putElement(String key, Object e) {
+ public XmlObject putElement(String key, Object e) {
+ if (e == null) {
+ throw new IllegalArgumentException(String.format("element[%s] can not be null", key));
+ }
Object old = elements.get(key);
if (old == null) {
System.out.println(String.format("no %s, add new", key));
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 e1399afa3c5..621c091481a 100755
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
@@ -1000,6 +1000,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 });
@@ -1033,13 +1034,25 @@ public class HypervisorHostHelper {
}
}
}
+ } 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();
}
+ if (bytesAlreadyWritten == totalBytes) {
leaseMo.updateLeaseProgress(100);
}
+ }
} finally {
+ if (!importSuccess) {
+ s_logger.error("Aborting the lease on " + vmName + " after import operation failed.");
+ leaseMo.abortLease();
+ } else {
leaseMo.completeLease();
}
}
+ }
}