[virt-tools-list] [PATCH virt-install] virtinst: Add --transient flag.

Cole Robinson crobinso at redhat.com
Fri Jun 17 16:25:39 UTC 2016


On 06/07/2016 10:07 AM, Cole Robinson wrote:
> On 06/02/2016 06:54 AM, Pavel Hrdina wrote:
>> On Thu, Jun 02, 2016 at 11:27:33AM +0100, Daniel P. Berrange wrote:
>>> On Thu, Jun 02, 2016 at 12:20:32PM +0200, Pavel Hrdina wrote:
>>>> On Thu, Jun 02, 2016 at 11:02:27AM +0100, Richard W.M. Jones wrote:
>>>>> On Thu, Jun 02, 2016 at 11:00:16AM +0200, Pavel Hrdina wrote:
>>>>>> We should forbid to use --transient with all other types of install
>>>>>> methods because it doesn't make any sense and it doesn't work.
>>>>>> Unfortunately we need to add a check "if options.transient and
>>>>>> (options.pxe or options.cdrom or ....), we cannot simply check for
>>>>>> --import or --boot because --boot can be combined with any other
>>>>>> install method.
>>>>>
>>>>> I'm not sure I understand.  Surely a --pxe install (for example) could
>>>>> involve a boot, and so --transient could be appropriate?
>>>>>
>>>>> What other options are in the list elided above?
>>>>
>>>> The thing is that virt-install has 2 phases while installing and each phase has
>>>> its own XML.  The first phase is the install phase where install XML is used.
>>>> After the installation is completed virt-install destroys the guest, replace the
>>>> domain XML with boot XML and starts it again.
>>>>
>>>> If you set that the domain is transient, the domain disappears after the first
>>>> phase is completed.  Which leads to two different solutions:
>>>
>>>> 1. allow --transient only with --import or --boot but not with other install
>>>> options, because they redefine the domain XML
>>>>
>>>> 2. update the code so also all other install option would be able to destroy the
>>>> guest and start it again only as transient.  Currently it doesn't work.  If you
>>>> use --noautoconsole or kill the virt-install during first phase there is no
>>>> process that will start the guest again and if you let the virt-install to start
>>>> the guest again it will fail with error message that the domain cannot be found.
>>>
>>> IMHO it is valid to want to install a guest, but *not* start it after
>>> installation is complete. IOW, --transient is semantically valid even
>>> with --install IMHO - it just means you would not start it after intsall
>>> completes.
>>
>> Sure it's valid to want to install a guest but not start it, however with
>> --transient it would mean that the guest will disappear, which is a valid
>> use-case, but it would require to implement it in the installation process,
>> that's the second solution.
>>
>> But the patch as it is now isn't complete, it needs to handle the install
>> methods correctly, because right now using --transient and --location for
>> example will ends with this error:
>>
>> ERROR    Domain not found: no domain with matching uuid '9b7de69d-5838-44d6-8497-0121c4f35259' (tmp)
>> Domain installation does not appear to have been successful.
>> If it was, you can restart your domain by running:
>>   virsh --connect qemu:///system start tmp
>>   otherwise, please restart your installation.
>>
>> and adding --noautoconsole will start the installation but after the
>> installation is completed and the guest is rebooted it will disappear.  The
>> installation XML contains:
>>
>>   ...
>>   <on_poweroff>destroy</on_poweroff>
>>   <on_reboot>destroy</on_reboot>
>>   <on_crash>destroy</on_crash>
>>   ...
>>
> 
> Yeah that's not ideal... maybe we can just make it transient on the last step
> of the install, or adjust virt-install VM restart to handle the transient
> aspect. I've had a todo item to clean up some things in this area that I will
> look at in prep for the release I'm planning for the end of the week/by
> monday. When I work it out I'll apply this patch with the necessary tweaks.
> 

I've pushed Rich's patch upstream now, with adjustments

Thanks,
Cole




More information about the virt-tools-list mailing list