[Kimchi-devel] [WIP PATCH] Storage DL/UL
Crístian Viana
vianac at linux.vnet.ibm.com
Tue Sep 9 01:39:39 UTC 2014
Hi! I tested this patch and here's my overall feedback:
- When the button "OK" is clicked and there is some error (e.g. the URL
field is empty, the URL text doesn't start with a correct
protocol), the button gets disabled and it never gets enabled again
unless the user closes and reopens the dialog.
- When I click on the button "OK" to upload a file, the dialog doesn't
close and nothing is shown. This is not the same behaviour when
downloading a file: the dialog is closed immediately as soon as the
submit button is clicked.
- When a download finishes, the progress box doesn't update the message
"Downloading...". That message should disappear and the storage volume
box should look like the other existing volumes in that pool.
- The correct text when uploading a file should be "Upload a file"
(instead of "...an file").
- IMO the submit button's label should be a verb (e.g. "Add") instead of
"OK".
- IMO the menu item "Add Volume" should be the first element on the menu.
The feedback related to the code is below:
> - {'fc_host': libvirt.VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST,
> + {#'fc_host': libvirt.VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST,
If you're not using that code anymore, remove it instead of commenting
it. Git keeps track of the code history.
> +.volume-progress .progress-status {
> +}
> +
What's this for? It's an empty declaration.
> + var onTaskResponse = function(result) {
> + var taskStatus = result['status'];
> + switch(taskStatus) {
> + case 'running':
> + onProgress(result);
> + setTimeout(function() {
> + trackTask(result['id']);
> + }, 1500);
> + break;
> + case 'finished':
> + taskID = -1;
> + var volumeName = result['target_url'].split('/').pop();
> + var volumeBox = $('#volume' + kimchi.selectedSP + ' [data-volume-name="' + volumeName + '"]');
> + $('.progress-status', volumeBox).text(i18n['KCHPOOL6015M']);
> + break;
> + case 'failed':
> + taskID = -1;
> + onError(result);
> + break;
> + default:
> + break;
> + }
> + };
> +
> + var trackTask = function(task) {
> + kimchi.getTask(task, onTaskResponse, function(resp) {});
> + };
Does this tracking approach work for multiple simultaneous
downloads/uploads?
> +
> + var uploadFile = function() {
> + var blobFile = $('#volume-input-file')[0].files[0];
> + var fileName = blobFile.name;
> + var fd = new FormData();
> + fd.append('name', fileName);
> + fd.append('file', blobFile);
> + kimchi.uploadVolumeToSP({
> + sp: kimchi.selectedSP,
> + formData: fd
> + }, function(resp) {
> + });
Why isn't an error handler used here as well, just like the download
function call?
I tested your patches on top of my [still] local branch with the patch
"storagevolume: Use default value for param 'name' when appropriate"
which I sent today for review on this mailing list. Without it, the
download and upload functions don't work because the parameter 'name' is
not passed correctly to the backend. That's why I sent this patch today.
More information about the Kimchi-devel
mailing list