From 5e31e713657e2582857c66d121de2fe6c1f3df8c Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Mon, 16 Jan 2012 10:24:42 +0100 Subject: [PATCH] Clarify semantics of virDomainMigrate{,ToURI}2 Commit 5d784bd6d7b19314b0908aec6b46bfe377aeba42 was a nice attempt to clarify the semantics by requiring domain name from dxml to either match original name or dname. However, setting dxml domain name to dname doesn't really work since destination host needs to know the original domain name to be able to use it in migration cookies. This patch requires domain name in dxml to match the original domain name. The change should be safe and backward compatible since migration would fail just a bit later in the process. --- src/libvirt.c | 4 ++-- src/qemu/qemu_migration.c | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/libvirt.c b/src/libvirt.c index a540424837..7b8adf7f18 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -5188,8 +5188,8 @@ error: * if @dxml would cause any guest-visible changes. Pass NULL * if no changes are needed to the XML between source and destination. * @dxml cannot be used to rename the domain during migration (use - * @dname for that purpose). Domain name in @dxml must either match the - * original domain name or @dname if it was specified. + * @dname for that purpose). Domain name in @dxml must match the + * original domain name. * * Returns the new domain object if the migration was successful, * or NULL in case of error. Note that the new domain object diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 92d60081c5..8453a47072 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -1046,11 +1046,9 @@ char *qemuMigrationBegin(struct qemud_driver *driver, VIR_DOMAIN_XML_INACTIVE))) goto cleanup; - if (STRNEQ(def->name, vm->def->name) && - STRNEQ_NULLABLE(def->name, dname)) { + if (STRNEQ(def->name, vm->def->name)) { qemuReportError(VIR_ERR_INVALID_ARG, "%s", - _("target domain name doesn't match source name" - " nor destination name")); + _("target domain name doesn't match source name")); goto cleanup; } -- GitLab