From 30695d7f93b6cccf8139d5f1e342d0ab8ebb5eec Mon Sep 17 00:00:00 2001 From: Min Chen Date: Mon, 3 Feb 2014 16:26:40 -0800 Subject: [PATCH] CLOUDSTACK-6019:CreateVolume from snapshot in NFS is throwing Warning "sync snapshot from cache to region wide store failed for image store test". --- .../resource/VmwareStorageSubsystemCommandHandler.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java index 39c353931d8..a5ebe2e39db 100644 --- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java +++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java @@ -92,6 +92,15 @@ public class VmwareStorageSubsystemCommandHandler extends StorageSubsystemComman } else if (srcData.getObjectType() == DataObjectType.TEMPLATE) { // sync template from NFS cache to S3 in NFS migration to S3 case storageManager.createOvaForTemplate((TemplateObjectTO)srcData); + } else if (srcData.getObjectType() == DataObjectType.SNAPSHOT && destData.getObjectType() == DataObjectType.SNAPSHOT) { + // sync snapshot from NFS cache to S3 in NFS migration to S3 case + String parentPath = storageResource.getRootDir(srcDataStore.getUrl()); + SnapshotObjectTO snap = (SnapshotObjectTO)srcData; + String path = snap.getPath(); + int index = path.lastIndexOf(File.separator); + String name = path.substring(index + 1); + String snapDir = path.substring(0, index); + storageManager.createOva(parentPath + File.separator + snapDir, name); } else if (srcData.getObjectType() == DataObjectType.SNAPSHOT && destData.getObjectType() == DataObjectType.TEMPLATE) { //create template from snapshot on src at first, then copy it to s3 TemplateObjectTO cacheTemplate = (TemplateObjectTO)destData;