[Kimchi-devel] [PATCH 1/4] Download Remote Image UI: Add Common API to kimchi.api.js

Hongliang Wang hlwang at linux.vnet.ibm.com
Thu Sep 11 07:33:57 UTC 2014


On 09/11/2014 09:12 AM, Aline Manera wrote:
>
> On 09/10/2014 09:02 AM, Hongliang Wang wrote:
>> Added APIs to kimchi.api.js.
>>
>> Signed-off-by: Hongliang Wang <hlwang at linux.vnet.ibm.com>
>> ---
>>   ui/js/src/kimchi.api.js | 49 
>> +++++++++++++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 49 insertions(+)
>>
>> diff --git a/ui/js/src/kimchi.api.js b/ui/js/src/kimchi.api.js
>> index 5fc456d..393962b 100644
>> --- a/ui/js/src/kimchi.api.js
>> +++ b/ui/js/src/kimchi.api.js
>> @@ -1130,5 +1130,54 @@ var kimchi = {
>> kimchi.message.error(data.responseJSON.reason);
>>               }
>>           });
>> +    },
>> +
>> +    /**
>> +     * Add a volume to a given storage pool by URL.
>> +     */
>> +    downloadVolumeToSP: function(settings, suc, err) {
>
>> +        var url = settings['url'];
>> +        var name = settings['name'];
>
> Why don't you pass settings direct to data? Seems a duplicated work here.
There is another property "sp" in settings which is not needed for POST 
/.../storagevolumes API so a little more work was did here. I'll reduce 
lines in next patch by deleting "sp" property.
>
>> +        var sp = encodeURIComponent(settings['sp']);
>> +        kimchi.requestJSON({
>> +            url : kimchi.url + 'storagepools/' + sp + 
>> '/storagevolumes',
>> +            type : 'POST',
>> +            data : JSON.stringify({
>> +                name: name,
>> +                url: url
>> +            }),
>
>
>
>> +            contentType : 'application/json',
>> +            dataType : 'json',
>> +            success : suc,
>> +            error : err
>> +        });
>> +    },
>> +
>> +    makeTaskTrackFunc: function(task) {
>> +        return function(suc, err, progress) {
>> +            var onTaskResponse = function(result) {
>> +                var taskStatus = result['status'];
>> +                switch(taskStatus) {
>> +                case 'running':
>> +                    progress && progress(result);
>> +                    setTimeout(trackTask, 200);
>> +                    break;
>> +                case 'finished':
>> +                    suc(result);
>> +                    break;
>> +                case 'failed':
>> +                    err(result);
>> +                    break;
>> +                default:
>> +                    break;
>> +                }
>> +            };
>> +
>> +            var trackTask = function() {
>> +                kimchi.getTask(task, onTaskResponse, err);
>> +            };
>> +
>> +            trackTask();
>> +        };
>>       }
>>   };
>




More information about the Kimchi-devel mailing list