[virt-tools-list] [virt-manager] Reset Guest.domain to None on domain creation error

Cole Robinson crobinso at redhat.com
Thu Apr 13 18:23:55 UTC 2017


On 04/13/2017 07:04 AM, Xiaodai Wang wrote:
> 
> 
> 
> 
> ----- Original Message -----
>> From: "Christophe Fergeau" <cfergeau at redhat.com>
>> To: virt-tools-list at redhat.com
>> Sent: Thursday, April 13, 2017 5:18:46 PM
>> Subject: [virt-tools-list] [virt-manager] Reset Guest.domain to None on	domain creation error
>>
>> When an error occurs when the VM creation wizard tries to start the VM,
>> it's then not possible to press again the "Finish" button to try again
>> to start it, as this errors out with:
>>
>> Traceback (most recent call last):
>>   File "/home/teuf/redhat/virt/virt-manager/virtManager/asyncjob.py", line
>>   88, in cb_wrapper
>>     callback(asyncjob, *args, **kwargs)
>>   File "/home/teuf/redhat/virt/virt-manager/virtManager/create.py", line
>>   2341, in _do_async_install
>>     guest.start_install(meter=meter)
>>   File "/home/teuf/redhat/virt/virt-manager/virtinst/guest.py", line 457, in
>>   start_install
>>     raise RuntimeError(_("Domain has already been started!"))
>> RuntimeError: Domain has already been started!
>>
>> This is caused by code introduced in commit fc6778 which does not reset
>> self.domain to None when an exception is caught.
>>
>> Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>
>> ---
>>  virtinst/guest.py | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/virtinst/guest.py b/virtinst/guest.py
>> index c8c3d14..3997519 100644
>> --- a/virtinst/guest.py
>> +++ b/virtinst/guest.py
>> @@ -408,6 +408,7 @@ class Guest(XMLBuilder):
>>                      exc_info = sys.exc_info()
>>                      try:
>>                          self.domain.undefine()
>> +                        self.domain = None
> 
> 
> This will still have other problems. Since the guest has already been created, if you begin installation again,
> some conflict like "The Mac address 'xxx' is in use by another virtual machine" will occur.

This isn't correct, the case Christophe is talking about leaves the guest
'undefined' afterwards, so there won't be any MAC collision

- Cole




More information about the virt-tools-list mailing list