[Kimchi-devel] [PATCH] [Kimchi] Issue #1017: Fix upload file to logical storage pool.

pvital at linux.vnet.ibm.com pvital at linux.vnet.ibm.com
Wed Sep 28 17:33:11 UTC 2016


From: Paulo Vital <pvital at linux.vnet.ibm.com>

Set correct value to volume allocation and chunk size to be transfered, as well,
as condition to stop the upload of files.

Signed-off-by: Paulo Vital <pvital at linux.vnet.ibm.com>
---
 model/storagevolumes.py                         | 9 ++++++---
 ui/js/src/kimchi.storagepool_add_volume_main.js | 4 ++--
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/model/storagevolumes.py b/model/storagevolumes.py
index 0c710b2..b2915e1 100644
--- a/model/storagevolumes.py
+++ b/model/storagevolumes.py
@@ -141,7 +141,7 @@ class StorageVolumesModel(object):
           </target>
         </volume>
         """
-        params.setdefault('allocation', 0)
+        params.setdefault('allocation', params['capacity'])
         params.setdefault('format', 'qcow2')
 
         name = params['name']
@@ -166,7 +166,9 @@ class StorageVolumesModel(object):
 
         if params.get('upload', False):
             upload_volumes[vol_path] = {'lock': threading.Lock(),
-                                        'offset': 0, 'cb': cb}
+                                        'offset': 0, 'cb': cb,
+                                        'expected_vol_size': params['capacity']
+                                       }
             cb('ready for upload')
         else:
             cb('OK', True)
@@ -534,7 +536,8 @@ class StorageVolumeModel(object):
             cb('%s/%s' % (offset + chunk_size, vol_capacity))
 
             vol_data['offset'] += chunk_size
-            if vol_data['offset'] == vol_capacity:
+            if (vol_data['offset'] == vol_capacity) or \
+                (vol_data['offset'] == vol_data['expected_vol_size']):
                 del upload_volumes[vol_path]
                 cb('OK', True)
 
diff --git a/ui/js/src/kimchi.storagepool_add_volume_main.js b/ui/js/src/kimchi.storagepool_add_volume_main.js
index ebace9c..e5a0a19 100644
--- a/ui/js/src/kimchi.storagepool_add_volume_main.js
+++ b/ui/js/src/kimchi.storagepool_add_volume_main.js
@@ -80,7 +80,7 @@ kimchi.sp_add_volume_main = function() {
     };
 
     var uploadFile = function() {
-        var chunkSize = 8 * 1024 * 1024; // 8MB
+        var chunkSize = 2 * 1024 * 1024; // 2MB
         var uploaded = 0;
 
         var blobFile = $(localFileBox)[0].files[0];
@@ -106,7 +106,7 @@ kimchi.sp_add_volume_main = function() {
                 formData: fd
             }, function(result) {
                 if (uploaded < blobFile.size){
-                                    setTimeout(doUpload, 500);
+                    setTimeout(doUpload, 500);
                 }
             }, onError);
 
-- 
2.7.4




More information about the Kimchi-devel mailing list