On Thu, Feb 19, 2015 at 11:59:38AM -0700, Jim Fehlig wrote:
Marek Marczykowski-Górecki wrote:
> Signed-off-by: Marek Marczykowski-Górecki <marmarek(a)invisiblethingslab.com>
> ---
>
> There was a discussion about calling virDomainDefCheckABIStability. The use
> case I have for this is to start multiple domains from the same savefile.
Interesting use case...
If you're curious about details, it is used for DisposableVMs in Qubes
OS:
http://theinvisiblethings.blogspot.com/2010/06/disposable-vms.html
Basically to speedup domain startup (with some preloaded applications
etc). Domain state is discarded after its termination (disk image is
read-only).
> This require changing:
> - UUID
> - name
> - IP address
>
Did you mean mac address? I don't see where the
virtDomain*CheckABIStability() functions check for changes to IP addresses.
Of course, I mean MAC address (in addition to IP address).
> Those are exactly type of changes blocked by
virDomainDefCheckABIStability.
> Perhaps some "permissive" mode should be introduced to the
> virDomainDefCheckABIStability function?
>
I'd like to hear what others think about this proposal. Are UUID and
name really part of a domain's ABI?
At least by the implementation of virDomainDefCheckABIStability...
Comment says this is to not confuse domain during migration.
Regards,
Jim
> src/libxl/libxl_driver.c | 17 ++++++++++++-----
> 1 file changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
> index 005cc96..7539d33 100644
> --- a/src/libxl/libxl_driver.c
> +++ b/src/libxl/libxl_driver.c
> @@ -1456,11 +1456,6 @@ libxlDomainRestoreFlags(virConnectPtr conn, const char
*from,
> #endif
>
> virCheckFlags(VIR_DOMAIN_SAVE_PAUSED, -1);
> - if (dxml) {
> - virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
> - _("xml modification unsupported"));
> - return -1;
> - }
>
> fd = libxlDomainSaveImageOpen(driver, cfg, from, &def, &hdr);
> if (fd < 0)
> @@ -1469,6 +1464,18 @@ libxlDomainRestoreFlags(virConnectPtr conn, const char
*from,
> if (virDomainRestoreFlagsEnsureACL(conn, def) < 0)
> goto cleanup_unlock;
>
> + if (dxml) {
> + virDomainDefPtr def2 = NULL;
> +
> + if (!(def2 = virDomainDefParseString(dxml, cfg->caps,
driver->xmlopt,
> + 1 << VIR_DOMAIN_VIRT_XEN,
> + VIR_DOMAIN_XML_INACTIVE))) {
> + goto cleanup;
> + }
> + virDomainDefFree(def);
> + def = def2;
> + }
> +
> if (!(vm = virDomainObjListAdd(driver->domains, def,
> driver->xmlopt,
> VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
>
--
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?