[libvirt] [PATCH] qemu: Do not require hostuuid in migration cookie

Jiri Denemark jdenemar at redhat.com
Fri Oct 19 14:31:44 UTC 2012


Having hostuuid in migration cookie is a nice bonus since it provides an
easy way of detecting migration to the same host. However, requiring it
breaks backward compatibility with older libvirt releases.
---
 src/qemu/qemu_migration.c | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index a2402ce..487182e 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -576,22 +576,23 @@ qemuMigrationCookieXMLParse(qemuMigrationCookiePtr mig,
     }
 
     if (!(tmp = virXPathString("string(./hostuuid[1])", ctxt))) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "%s", _("missing hostuuid element in migration data"));
-        goto error;
-    }
-    if (virUUIDParse(tmp, mig->remoteHostuuid) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "%s", _("malformed hostuuid element in migration data"));
-        goto error;
-    }
-    if (memcmp(mig->remoteHostuuid, mig->localHostuuid, VIR_UUID_BUFLEN) == 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Attempt to migrate guest to the same host %s"),
-                       tmp);
-        goto error;
+        VIR_WARN("Missing hostuuid element in migration data; cannot "
+                 "detect migration to the same host");
+    } else {
+        if (virUUIDParse(tmp, mig->remoteHostuuid) < 0) {
+            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                           _("malformed hostuuid element in migration data"));
+            goto error;
+        }
+        if (memcmp(mig->remoteHostuuid, mig->localHostuuid,
+                   VIR_UUID_BUFLEN) == 0) {
+            virReportError(VIR_ERR_INTERNAL_ERROR,
+                           _("Attempt to migrate guest to the same host %s"),
+                           tmp);
+            goto error;
+        }
+        VIR_FREE(tmp);
     }
-    VIR_FREE(tmp);
 
     /* Check to ensure all mandatory features from XML are also
      * present in 'flags' */
-- 
1.7.12.4




More information about the libvir-list mailing list