[Kimchi-devel] [PATCH] Bugfix:#424 Edit Template, "Disk (GB)" is changing with storage pool
Aline Manera
alinefm at linux.vnet.ibm.com
Tue Sep 23 13:52:27 UTC 2014
On 09/23/2014 04:23 AM, Wen Wang wrote:
>
> On 09/19/2014 09:20 PM, Aline Manera wrote:
>>
>> 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
> I have tried your proposal, And there occurs one more problem just
> according to this change. Think about the scenario below:
> Current template is
>
> "Storage Pool: default
> Disk(GB): 15"
>
> And user change the "Disk(GB)" value to 30( without saving)
> then user choose the "Storage Pool" and decided to use "ISO", by
> choosing that, the value of "Disk(GB)" changed to 15 which is the
> value set for "default" and that value makes no sense to "ISO" so as
> the change of this value.
>
> So I recommend we just leave the user with the value that they edited
> before and it will have a default value either from the server stored
> or set by iSCSI & SCSI automatic settings.
Good point. So we should also save the inputed value
>>
>>>
>>>> $('input[name="disks"]',
>>>> templateEditForm).removeAttr('disabled');
>>>> }
>>>> });
>>>>
>>>>
>>>>
>>>>
>>>
>>
>
More information about the Kimchi-devel
mailing list