Updated Branches:
  refs/heads/4.1 3dddca694 -> c9c50e4ef

4.1 fix bug vmware create volume from snapshot will missing data


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

Branch: refs/heads/4.1
Commit: c9c50e4efb9ad6ddf9110f12e4501d3b366de642
Parents: 3dddca6
Author: hongtu_zang <[email protected]>
Authored: Sat Mar 16 09:29:30 2013 +0800
Committer: Chip Childers <[email protected]>
Committed: Tue Mar 19 12:50:05 2013 -0400

----------------------------------------------------------------------
 .../vmware/manager/VmwareStorageManagerImpl.java   |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c9c50e4e/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java
 
b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java
index 8650274..7acfd03 100644
--- 
a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java
+++ 
b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java
@@ -665,13 +665,16 @@ public class VmwareStorageManagerImpl implements 
VmwareStorageManager {
         String secondaryMountPoint = 
_mountService.getMountPoint(secStorageUrl);
         String srcOVAFileName = secondaryMountPoint + "/" +  secStorageDir + 
"/"  
             + backupName + "." + ImageFormat.OVA.getFileExtension();
-        
+        String snapshotDir = "";
+        if (backupName.contains("/")){
+            snapshotDir = backupName.split("/")[0];
+        }
         String srcFileName = getOVFFilePath(srcOVAFileName);
         if(srcFileName == null) {
             Script command = new Script("tar", 0, s_logger);
             command.add("--no-same-owner");
             command.add("-xf", srcOVAFileName);
-            command.setWorkDir(secondaryMountPoint + "/" +  secStorageDir);
+            command.setWorkDir(secondaryMountPoint + "/" +  secStorageDir + 
"/" + snapshotDir);
             s_logger.info("Executing command: " + command.toString());
             String result = command.execute();
             if(result != null) {
@@ -712,7 +715,7 @@ public class VmwareStorageManagerImpl implements 
VmwareStorageManager {
         String backupUuid = UUID.randomUUID().toString();
         exportVolumeToSecondaryStroage(vmMo, volumePath, secStorageUrl, 
             getSnapshotRelativeDirInSecStorage(accountId, volumeId), 
backupUuid, workerVmName);
-        return backupUuid;
+        return backupUuid + "/" + backupUuid;
     }
     
     private void exportVolumeToSecondaryStroage(VirtualMachineMO vmMo, String 
volumePath,  
@@ -720,7 +723,7 @@ public class VmwareStorageManagerImpl implements 
VmwareStorageManager {
         String workerVmName) throws Exception {
         
         String secondaryMountPoint = 
_mountService.getMountPoint(secStorageUrl);
-        String exportPath =  secondaryMountPoint + "/" + secStorageDir;
+        String exportPath =  secondaryMountPoint + "/" + secStorageDir + "/" + 
exportName;
         
         synchronized(exportPath.intern()) {
             if(!new File(exportPath).exists()) {

Reply via email to