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()) {
