Skip to content

Commit 8326dfb

Browse files
committed
CLOUDSTACK-4518: make folder sync resilience with possible runtime situation
1 parent 687e87f commit 8326dfb

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageLayoutHelper.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,17 +129,20 @@ public static String syncVolumeToVmDefaultFolder(DatacenterMO dcMo, String vmNam
129129
vmdkLinkedCloneModePair[1], dcMo.getMor(), true);
130130
}
131131

132-
s_logger.info("sync " + vmdkLinkedCloneModeLegacyPair[0] + "->" + vmdkLinkedCloneModePair[0]);
133-
ds.moveDatastoreFile(vmdkLinkedCloneModeLegacyPair[0], dcMo.getMor(), ds.getMor(),
134-
vmdkLinkedCloneModePair[0], dcMo.getMor(), true);
132+
if(ds.fileExists(vmdkLinkedCloneModeLegacyPair[0])) {
133+
s_logger.info("sync " + vmdkLinkedCloneModeLegacyPair[0] + "->" + vmdkLinkedCloneModePair[0]);
134+
ds.moveDatastoreFile(vmdkLinkedCloneModeLegacyPair[0], dcMo.getMor(), ds.getMor(),
135+
vmdkLinkedCloneModePair[0], dcMo.getMor(), true);
136+
}
135137

138+
// Note: we will always return a path
136139
return vmdkLinkedCloneModePair[0];
137140
}
138141

139142
public static void syncVolumeToRootFolder(DatacenterMO dcMo, DatastoreMO ds, String vmdkName) throws Exception {
140143
String fileDsFullPath = ds.searchFileInSubFolders(vmdkName + ".vmdk", false);
141144
if(fileDsFullPath == null)
142-
throw new Exception("Unable to find " + vmdkName + ".vmdk in datastore: " + ds.getName());
145+
return;
143146

144147
DatastoreFile srcDsFile = new DatastoreFile(fileDsFullPath);
145148
String companionFilePath = srcDsFile.getCompanionPath(vmdkName + "-flat.vmdk");

0 commit comments

Comments
 (0)