[Kimchi-devel] [PATCH] Guest disk hot plug UI

Aline Manera alinefm at linux.vnet.ibm.com
Wed Oct 22 12:04:47 UTC 2014


On 10/22/2014 04:51 AM, Royce Lv wrote:
> On 2014年10月22日 01:27, Aline Manera wrote:
>>
>> Disk hot plug is supported for virtio and SCSI bus and we use IDE bus 
>> for CDROM devices.
>> So with this patch set, the user can try to add a new CDROM but it 
>> will always fail as it is IDE bus.
> Yes, as I can recall I tested SCSI bus for cdrom before, but under 
> some distros, SCSI bus for cdrom seems have problem.
> (I will test again and update reason here)

Yeap. I remember that.
Maybe we could double check to see if there was some update on libvirt 
packages that had problems.

>>
>> We have 2 options to improve user experience in this case:
>>
>> 1) Do not allow CDROM hot plug, ie, remove "CDROM" option from combo 
>> box when VM is running.
>>
>> 2) Modify backend to allow user specifies a new CDROM when VM is 
>> running but it will be only available on next reboot.
> We have considered option 2, but with concern of the difference 
> between definition of xml and the running vm,
> especially when you edit the xml for several times(added several 
> delayed effective devices, and want to delete them afterwards),
> what views to show user is a problem, the running one or the defined one.
>
> For example:
> User has a vm running with a cdrom A, then he wants to add cdrom B
> Do we show users cdrom B before next reboot?
> 1. If we show, cdrom B exists in our definition but not in guest 
> OS--Unless backend distinguish what devices come from definition and 
> what are from running vm.
> If user want to delete cdrom B before next reboot, we need to know it 
> is deleted from definition to prevent error.
> 2. If we don't show, as virt manager did, user may have no chance to 
> delete B before next reboot.
> We also need to consider user add same cdrom twice behavior if we 
> don't show.
>
> so we finally chose to reject all device adding in running time when 
> it is IDE for now at backend.

IMO we could allow it takes effect after reboot and show it to user with 
a warning icon (and on mouse over we display "It will be added on next 
reboot")
With this warning icon, the user will not be able to edit/remove the 
device as it is does not exist in fact.

>>
>>
>> On 10/16/2014 09:07 AM, Wen Wang wrote:
>>> From: Wen Wang <wenwang at linux.vnet.ibm.com>
>>>
>>> Enable users add and detach disk when vm is running.
>>>
>>> Signed-off-by: Wen Wang <wenwang at linux.vnet.ibm.com>
>>> ---
>>> ui/js/src/kimchi.guest_edit_main.js | 29 ++++++++++++-----------------
>>> 1 files changed, 12 insertions(+), 17 deletions(-)
>>>
>>> diff --git a/ui/js/src/kimchi.guest_edit_main.js 
>>> b/ui/js/src/kimchi.guest_edit_main.js
>>> index 030e112..eb0254e 100644
>>> --- a/ui/js/src/kimchi.guest_edit_main.js
>>> +++ b/ui/js/src/kimchi.guest_edit_main.js
>>> @@ -57,17 +57,14 @@ kimchi.guest_edit_main = function() {
>>> text: false
>>> });
>>>
>>> - if(kimchi.thisVMState != "running") {
>>> - $('.detach', container).button({
>>> - icons: {
>>> - primary: 'ui-icon-trash'
>>> - },
>>> - text: false
>>> - });
>>> + $('.detach', container).button({
>>> + icons: {
>>> + primary: 'ui-icon-trash'
>>> + },
>>> + text: false
>>> + });
>>>
>>> - } else {
>>> - $('.detach', container).remove();
>>> - }
>>> + $('.view .detach', container).remove();
>>>
>>> $('.save', container).button({
>>> icons: {
>>> @@ -443,14 +440,8 @@ kimchi.guest_edit_main = function() {
>>> guest['icon'] = guest['icon'] || 'images/icon-vm.png';
>>> $('#form-guest-edit-general').fillWithObject(guest);
>>> kimchi.thisVMState = guest['state'];
>>> -
>>> refreshCDROMs();
>>> - if(kimchi.thisVMState === "running") {
>>> - $("#form-guest-edit-general input").prop("disabled", "disabled");
>>> - $("#guest-edit-attach-cdrom-button").remove();
>>> - $("#form-guest-edit-interface .header button").remove();
>>> - } else {
>>> - $('#guest-edit-attach-cdrom-button').button({
>>> + $('#guest-edit-attach-cdrom-button').button({
>>> icons: {
>>> primary: "ui-icon-plusthick"
>>> },
>>> @@ -459,6 +450,10 @@ kimchi.guest_edit_main = function() {
>>> event.preventDefault();
>>> kimchi.window.open("guest-storage-add.html");
>>> });
>>> + if(kimchi.thisVMState === "running") {
>>> + $("#form-guest-edit-general input").prop("disabled", "disabled");
>>> + $("#form-guest-edit-interface .header button").remove();
>>> + } else {
>>> $("#action-button-container").removeClass("hidden");
>>> }
>>>
>>
>> _______________________________________________
>> Kimchi-devel mailing list
>> Kimchi-devel at ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>>
>




More information about the Kimchi-devel mailing list