Repository: cloudstack Updated Branches: refs/heads/4.3-forward 4c83f80c8 -> b1ddb92b7
CLOUDSTACK-6175:s3.singleupload.max.size option not applicable for backup snapshot on KVM. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b1ddb92b Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b1ddb92b Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b1ddb92b Branch: refs/heads/4.3-forward Commit: b1ddb92b7fa79a06361ada70d4318b8ad20e780b Parents: 4c83f80 Author: Min Chen <min.c...@citrix.com> Authored: Wed Feb 26 11:51:24 2014 -0800 Committer: Min Chen <min.c...@citrix.com> Committed: Wed Feb 26 11:51:24 2014 -0800 ---------------------------------------------------------------------- .../kvm/storage/KVMStorageProcessor.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b1ddb92b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java index cd57643..edb1872 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java @@ -18,6 +18,7 @@ */ package com.cloud.hypervisor.kvm.storage; +import static com.cloud.utils.S3Utils.mputFile; import static com.cloud.utils.S3Utils.putFile; import java.io.BufferedOutputStream; @@ -102,8 +103,8 @@ import com.cloud.utils.script.Script; public class KVMStorageProcessor implements StorageProcessor { private static final Logger s_logger = Logger.getLogger(KVMStorageProcessor.class); - private KVMStoragePoolManager storagePoolMgr; - private LibvirtComputingResource resource; + private final KVMStoragePoolManager storagePoolMgr; + private final LibvirtComputingResource resource; private StorageLayer storageLayer; private String _createTmplPath; private String _manageSnapshotPath; @@ -566,13 +567,20 @@ public class KVMStorageProcessor implements StorageProcessor { public Answer createTemplateFromSnapshot(CopyCommand cmd) { return null; //To change body of implemented methods use File | Settings | File Templates. } - protected String copyToS3(File srcFile, S3TO destStore, String destPath) { + + protected String copyToS3(File srcFile, S3TO destStore, String destPath) throws InterruptedException { final String bucket = destStore.getBucketName(); + long srcSize = srcFile.length(); String key = destPath + S3Utils.SEPARATOR + srcFile.getName(); - putFile(destStore, srcFile, bucket, key); + if (!destStore.getSingleUpload(srcSize)) { + mputFile(destStore, srcFile, bucket, key); + } else { + putFile(destStore, srcFile, bucket, key); + } return key; } + protected Answer copyToObjectStore(CopyCommand cmd) { DataTO srcData = cmd.getSrcTO(); DataTO destData = cmd.getDestTO(); @@ -603,6 +611,9 @@ public class KVMStorageProcessor implements StorageProcessor { SnapshotObjectTO newSnapshot = new SnapshotObjectTO(); newSnapshot.setPath(destPath); return new CopyCmdAnswer(newSnapshot); + } catch (Exception e) { + s_logger.error("failed to upload" + srcPath, e); + return new CopyCmdAnswer("failed to upload" + srcPath + e.toString()); } finally { try { if (srcFile != null) {