Updated Branches:
  refs/heads/master-6-17-stable 3357ee61c -> 166622f35


CLOUDSTACK-2384: Template created from snapshot error.

In DB, the backedUpSnapshotUuid format got changed.
This messed up the vmdk file path in template creation from snapshot


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

Branch: refs/heads/master-6-17-stable
Commit: 166622f356fa27b89a5d2f04b4dfdaa73c6d84f2
Parents: 3357ee6
Author: Fang Wang <[email protected]>
Authored: Thu Jun 27 15:31:28 2013 -0700
Committer: Edison Su <[email protected]>
Committed: Thu Jun 27 17:36:04 2013 -0700

----------------------------------------------------------------------
 .../vmware/manager/VmwareStorageManagerImpl.java        | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/166622f3/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 4ae0f30..7b01d06 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
@@ -687,7 +687,10 @@ public class VmwareStorageManagerImpl implements 
VmwareStorageManager {
         String result;
         Script command;
         String templateVMDKName = "";
-        String snapshotFullVMDKName = snapshotRoot + "/";
+        //String snapshotFullVMDKName = snapshotRoot + "/";
+        // the backedUpSnapshotUuid field currently has the format: uuid/uuid. 
so we need to extract the uuid out
+        String backupSSUuid = backedUpSnapshotUuid.substring(0, 
backedUpSnapshotUuid.indexOf('/'));
+        String snapshotFullVMDKName = snapshotRoot + "/" + backupSSUuid + "/";
 
         synchronized(installPath.intern()) {
             command = new Script(false, "mkdir", _timeout, s_logger);
@@ -742,12 +745,15 @@ public class VmwareStorageManagerImpl implements 
VmwareStorageManager {
                         throw new Exception(msg);
                      }
 
-                     File snapshotdir = new File(snapshotRoot);
+                     s_logger.info("vmdkfile parent dir: " + 
snapshotFullVMDKName);
+                     File snapshotdir = new File(snapshotFullVMDKName);
+                     // File snapshotdir = new File(snapshotRoot);
                      File[] ssfiles = snapshotdir.listFiles();
                      // List<String> filenames = new ArrayList<String>();
                      for (int i = 0; i < ssfiles.length; i++) {
                          String vmdkfile = ssfiles[i].getName();
-                         
if(vmdkfile.toLowerCase().startsWith(backedUpSnapshotUuid) && 
vmdkfile.toLowerCase().endsWith(".vmdk")) {
+                         s_logger.info("vmdk file name: " + vmdkfile);
+                         if(vmdkfile.toLowerCase().startsWith(backupSSUuid) && 
vmdkfile.toLowerCase().endsWith(".vmdk")) {
                               snapshotFullVMDKName += vmdkfile;
                               templateVMDKName += vmdkfile;
                               break;

Reply via email to