[Kimchi-devel] [PATCH] Bugfix:#424 Edit Template, "Disk (GB)" is changing with storage pool

Aline Manera alinefm at linux.vnet.ibm.com
Fri Sep 19 13:20:05 UTC 2014


On 09/19/2014 06:43 AM, Wen Wang wrote:
>
> On 09/19/2014 10:43 AM, Aline Manera wrote:
>>
>> On 09/18/2014 04:33 AM, Wen Wang wrote:
>>> From: Wen Wang <wenwang at linux.vnet.ibm.com>
>>>
>>> This patch fix the bug that value of "Disk(GB)" input box is changing
>>> with the item of "Storage Pool" in "Templates" --> "Actions" --> "Edit"
>>> -->"Edit Templates" dialogue. This might be comfusing to user when
>>> changing the "Storage Pool", "Disk(GB)" is changed with it without even
>>> notice. This might confuse the users and is not necessary. Solved by
>>> removing the change.
>>>
>>> Signed-off-by: Wen Wang <wenwang at linux.vnet.ibm.com>
>>> ---
>>>   ui/js/src/kimchi.template_edit_main.js |   25 
>>> -------------------------
>>>   1 files changed, 0 insertions(+), 25 deletions(-)
>>>
>>> diff --git a/ui/js/src/kimchi.template_edit_main.js 
>>> b/ui/js/src/kimchi.template_edit_main.js
>>> index cb43091..61d23b4 100644
>>> --- a/ui/js/src/kimchi.template_edit_main.js
>>> +++ b/ui/js/src/kimchi.template_edit_main.js
>>> @@ -117,31 +117,6 @@ kimchi.template_edit_main = function() {
>>>           });
>>>       });
>>
>>
>>> - $('#template-edit-storagePool').change(function() {
>>> -        storagepool = $(this).val();
>>> -        var storageArray = storagepool.split("/");
>>> -        if (storageArray.length > 3) {
>>> -            volumeName = storageArray.pop();
>>> -            poolName = storageArray.pop();
>>> -            kimchi.getStoragePoolVolume(poolName, volumeName, 
>>> function(result) {
>>> -                $('input[name="disks"]', 
>>> templateEditForm).val(result.capacity / Math.pow(1024,3));
>>> -                $('input[name="disks"]', 
>>> templateEditForm).attr('disabled','disabled');
>>> -                return false;
>>> -            }, function (err) {
>>> - kimchi.message.error(err.responseJSON.reason);
>>> -            });
>>> -        } else {
>>> -            if (origPool == storagepool) {
>>> -                // Previous disk size value
>>> -                $('input[name="disks"]', 
>>> templateEditForm).val(origDisks[0].size);
>>> -            } else {
>>> -                // Default disk size value
>>> -                $('input[name="disks"]', templateEditForm).val(10);
>>> -            }
>>> -            $('input[name="disks"]', 
>>> templateEditForm).removeAttr('disabled');
>>> -        }
>>> -    });
>>> -
>>>       $('#tmpl-edit-button-save').on('click', function() {
>>>           var editableFields = [ 'name', 'cpus', 'memory', 
>>> 'storagepool', 'disks', 'graphics'];
>>>           var data = {};
>>
>> We can't remove this code.
>> It is used when a iSCSI or SCSI storage pool is selected. In this 
>> case, the disk size comes from the volumes selected and can not be 
>> changed.
>>
>> iSCSI and SCSI pools are what we said as read-only pools which means 
>> we can't create new volumes in it as the volumes are pre-configured 
>> by system.
>> So when user selects one of these pools, he/she needs also to point 
>> the volume because that we display <pool>/<volumes> in these cases.
>>
>> What we can do is always display the previous disk size when changing 
>> from pools that are not iSCSI or SCSI.
>> To do that we need to change the "else" statement like below:
>>
>>
>>          } else {
>> -            if (origPool == storagepool) {
>> -                // Previous disk size value
>> -                $('input[name="disks"]', 
>> templateEditForm).val(origDisks[0].size);
>> -            } else {
>> -                // Default disk size value
>> -                $('input[name="disks"]', templateEditForm).val(10);
>> -            }
>
>> +            // Previous disk size value
>> +            $('input[name="disks"]', 
>> templateEditForm).val(origDisks[0].size);
>
> I don't think these two line is necessary for this. I mean if we 
> detect no iSCSI nor SCSI device, The only thing we need to do is to 
> enable the input box. Having it changed without any notificaton is not 
> that good user experience. This input box has value when it initiated 
> and if changing to iSCSI or SCSI device, we just need to enable the 
> input box, if changing back, we disable the input box again and 
> refresh the value.

If we don't update the disk size value when a no iSCSI nor SCSI device 
is selected, the input box will contain the previous value which can be 
not valid.
Example.

1. Select a dir pool
2. Disk size is set to 10Gb
3. Select a iSCSI volume
4. Disk size is set to 4GB
5. Select back the dir pool

6.a Disk size is still set to 4GB (*without* those 2 lines)
6.b Disk size turns back to 4GB (*with* the 2 lines)

 From my view, the correct behavior is 6.b

>
>>              $('input[name="disks"]', 
>> templateEditForm).removeAttr('disabled');
>>          }
>>      });
>>
>>
>>
>>
>




More information about the Kimchi-devel mailing list