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