[Kimchi-devel] [WIP][PATCH 3/4] Storage volume upload: add model function of upload
Aline Manera
alinefm at linux.vnet.ibm.com
Thu Aug 21 19:00:58 UTC 2014
On 08/21/2014 11:43 AM, lvroyce0210 at gmail.com wrote:
> From: Royce Lv <lvroyce at linux.vnet.ibm.com>
>
> Add model function to upload file
>
> Signed-off-by: Royce Lv <lvroyce at linux.vnet.ibm.com>
> ---
> src/kimchi/model/storagevolumes.py | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/src/kimchi/model/storagevolumes.py b/src/kimchi/model/storagevolumes.py
> index a7823c2..0b9d96a 100644
> --- a/src/kimchi/model/storagevolumes.py
> +++ b/src/kimchi/model/storagevolumes.py
> @@ -54,6 +54,29 @@ class StorageVolumesModel(object):
> if create_func and p in params:
> return create_func(pool_name, params)
>
> + def _create_volume_with_file(self, pool_name, params):
> + pool = StoragePoolModel.get_storagepool(pool_name, self.conn)
I'd suggest to get the pool info right before using it.
> + dir_path = StoragePoolModel(conn=self.conn,
> + objstore=self.objstore).lookup(pool_name)['path']
> + upload_file = params['file']
> + file_name = params['resumableFilename']
> + size = 0
> + allData=''
> + while True:
> + data = upload_file.file.read(8192)
> + allData += data
> + if not data:
> + break
> + size += len(data)
> +
> + file_path = os.path.join(dir_path, file_name)
> + f = open(file_path, 'wb')
> + f.write(allData)
> + f.close()
This file write code can raise some exceptions, like if the disk is full
or something like that
It would be good to use try/except to handle those possible problems.
> + # Refresh to make sure volume can be found in following lookup
> + pool.refresh()
> + return file_name
> +
> def _create_volume_with_capacity(self, pool_name, params):
> vol_xml = """
> <volume>
More information about the Kimchi-devel
mailing list