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 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list