[Kimchi-devel] [PATCH] Bug 440 Fix
Aline Manera
alinefm at linux.vnet.ibm.com
Fri Oct 3 15:34:06 UTC 2014
On 09/23/2014 03:56 AM, Yu Xin Huo wrote:
> On 9/22/2014 10:57 PM, Aline Manera wrote:
>>
>> On 09/22/2014 04:14 AM, huoyuxin at linux.vnet.ibm.com wrote:
>>> From: Yu Xin Huo <huoyuxin at linux.vnet.ibm.com>
>>>
>>> 2 Issues:
>>> 1. In menu widget, it handle the passin params incorrectly.
>>> 2. Filter out storage pools without any available volume.
>>>
>>> Signed-off-by: Yu Xin Huo <huoyuxin at linux.vnet.ibm.com>
>>> ---
>>> ui/js/src/kimchi.guest_storage_add.main.js | 2 +-
>>> ui/js/widgets/select-menu.js | 6 +++---
>>> 2 files changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/ui/js/src/kimchi.guest_storage_add.main.js
>>> b/ui/js/src/kimchi.guest_storage_add.main.js
>>> index a8c5acb..6e01d3e 100644
>>> --- a/ui/js/src/kimchi.guest_storage_add.main.js
>>> +++ b/ui/js/src/kimchi.guest_storage_add.main.js
>>> @@ -61,7 +61,7 @@ kimchi.guest_storage_add_main = function() {
>>> var options = [];
>>> if (result && result.length) {
>>> $.each(result, function(index, storagePool) {
>>> - if ((storagePool.state=="active") &&
>>> (storagePool.type !== 'kimchi-iso')) {
>>> + if ((storagePool.state=="active") &&
>>> (storagePool.type !== 'kimchi-iso') && storagePool.nr_volumes) {
>>
>> It is not enough to determine if a pool has or not free volumes.
>> For each pool, you need to call:
>>
>> GET /storagepools/<pool>/storagevolumes?ref_count=0
>>
>> If the response is a list > 0, the pool should be listed as an
>> option, otherwise not.
>
> If sending a request for each pool, then how many requests will need
> to be sent?
> If there are many pools defined, this will greatly lose performance.
>
> So backend API need to be enhanced either of below:
> 1. Add an attribute in each pool to indicate whether there is free
> volumes when /storagepools.
> 2. Add a filter parameter to /storagepools to response pools with free
> volumes directly.
>
> I prefer the 2nd.
Agree.
Second option will have better performance.
>
>>
>>> options.push({
>>> label: storagePool.name,
>>> value: storagePool.name
>>> diff --git a/ui/js/widgets/select-menu.js
>>> b/ui/js/widgets/select-menu.js
>>> index ad53200..c4b0209 100644
>>> --- a/ui/js/widgets/select-menu.js
>>> +++ b/ui/js/widgets/select-menu.js
>>> @@ -36,8 +36,10 @@
>>> var selectedClass = 'active';
>>> var itemTag = 'li';
>>> var item;
>>> + that.listControl.find('li').remove();
>>> + that.label.text("");
>>> + that.target.val("");
>>> if (options.length > 0) {
>>> - that.listControl.find('li').remove();
>>> $.each(options, function(index, option) {
>>> item = $('<' + itemTag + '>' + option.label
>>> +'</' + itemTag + '>');
>>> item.data('value', option.value);
>>> @@ -58,8 +60,6 @@
>>> that.target.change();
>>> }
>>> });
>>> - } else {
>>> - kimchi.message.error.code('KCHAPI6006E');
>>> }
>>> },
>>>
>>
>
>
More information about the Kimchi-devel
mailing list