You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2014/02/26 20:53:01 UTC

git commit: updated refs/heads/4.3-forward to b1ddb92

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 <mi...@citrix.com>
Authored: Wed Feb 26 11:51:24 2014 -0800
Committer: Min Chen <mi...@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) {