You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ke...@apache.org on 2013/08/28 01:41:24 UTC

git commit: updated refs/heads/4.2-forward to 8326dfb

Updated Branches:
  refs/heads/4.2-forward 687e87faa -> 8326dfb76


CLOUDSTACK-4518: make folder sync resilience with possible runtime situation


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8326dfb7
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8326dfb7
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8326dfb7

Branch: refs/heads/4.2-forward
Commit: 8326dfb76f3072dab63243ef2cd62fa3e7b7c688
Parents: 687e87f
Author: Kelven Yang <ke...@gmail.com>
Authored: Tue Aug 27 16:28:16 2013 -0700
Committer: Kelven Yang <ke...@gmail.com>
Committed: Tue Aug 27 16:28:16 2013 -0700

----------------------------------------------------------------------
 .../storage/resource/VmwareStorageLayoutHelper.java      | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8326dfb7/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageLayoutHelper.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageLayoutHelper.java b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageLayoutHelper.java
index c61f15e..d60abad 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageLayoutHelper.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageLayoutHelper.java
@@ -129,17 +129,20 @@ public class VmwareStorageLayoutHelper {
                 vmdkLinkedCloneModePair[1], dcMo.getMor(), true);
 		}
 		
-		s_logger.info("sync " + vmdkLinkedCloneModeLegacyPair[0] + "->" + vmdkLinkedCloneModePair[0]);
-		ds.moveDatastoreFile(vmdkLinkedCloneModeLegacyPair[0], dcMo.getMor(), ds.getMor(), 
-            vmdkLinkedCloneModePair[0], dcMo.getMor(), true);
+		if(ds.fileExists(vmdkLinkedCloneModeLegacyPair[0])) {
+			s_logger.info("sync " + vmdkLinkedCloneModeLegacyPair[0] + "->" + vmdkLinkedCloneModePair[0]);
+			ds.moveDatastoreFile(vmdkLinkedCloneModeLegacyPair[0], dcMo.getMor(), ds.getMor(), 
+	            vmdkLinkedCloneModePair[0], dcMo.getMor(), true);
+		}
 		
+		// Note: we will always return a path
 		return vmdkLinkedCloneModePair[0];
     }
     
     public static void syncVolumeToRootFolder(DatacenterMO dcMo, DatastoreMO ds, String vmdkName) throws Exception {
     	String fileDsFullPath = ds.searchFileInSubFolders(vmdkName + ".vmdk", false);
     	if(fileDsFullPath == null)
-    		throw new Exception("Unable to find " + vmdkName + ".vmdk in datastore: " + ds.getName());
+    		return;
 
     	DatastoreFile srcDsFile = new DatastoreFile(fileDsFullPath);
     	String companionFilePath = srcDsFile.getCompanionPath(vmdkName + "-flat.vmdk");