CLOUDSTACK-6019:CreateVolume from snapshot in NFS is throwing Warning "sync snapshot from cache to region wide store failed for image store test". (cherry picked from commit b11c13d4a120a6361231ee415082576dac6fe385)
Signed-off-by: Animesh Chaturvedi <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0d72e2cc Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0d72e2cc Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0d72e2cc Branch: refs/heads/4.3 Commit: 0d72e2ccf51035b7b1ac9bba0a9a3cee407ac61e Parents: 41e516b Author: Min Chen <[email protected]> Authored: Mon Feb 3 16:26:40 2014 -0800 Committer: Animesh Chaturvedi <[email protected]> Committed: Fri Feb 7 13:14:55 2014 -0800 ---------------------------------------------------------------------- .../resource/VmwareStorageSubsystemCommandHandler.java | 9 +++++++++ 1 file changed, 9 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d72e2cc/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java ---------------------------------------------------------------------- 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 d1b8be8..5eccc3c 100644 --- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java +++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java @@ -95,6 +95,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;
