You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ko...@apache.org on 2013/03/21 06:22:17 UTC
[30/50] [abbrv] git commit: refs/heads/cisco-vnmc-api-integration -
fix bug vmware create volume from snapshot will missing data
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/13691048
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/13691048
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/13691048
Branch: refs/heads/cisco-vnmc-api-integration
Commit: 13691048fb622467271b75fc7b64298e3afe9912
Parents: ba69ce0
Author: hongtu_zang <ho...@tcloudcomputing.com>
Authored: Sat Mar 16 09:54:09 2013 +0800
Committer: Chip Childers <ch...@gmail.com>
Committed: Tue Mar 19 12:53:53 2013 -0400
----------------------------------------------------------------------
.../vmware/manager/VmwareStorageManagerImpl.java | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/13691048/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 e11dd53..1f11645 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
@@ -684,13 +684,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) {
@@ -731,7 +734,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,
@@ -739,8 +742,8 @@ 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()) {
Script command = new Script(false, "mkdir", _timeout, s_logger);