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

Royce Lv lvroyce at linux.vnet.ibm.com
Wed Oct 22 06:51:44 UTC 2014


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)
>
> 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.
>
>
> 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