[virt-tools-list] [PATCH virt-install] virtinst: Add --transient flag.
Cole Robinson
crobinso at redhat.com
Tue Jun 7 14:07:35 UTC 2016
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.
Thanks,
Cole
More information about the virt-tools-list
mailing list