[Libvirt-cim] [PATCH] Add polling for domain undefine in VSMigrationService

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Thu May 29 21:40:58 UTC 2008


# HG changeset patch
# User Kaitlin Rupert <karupert at us.ibm.com>
# Date 1212097721 25200
# Node ID 8c3b74f06d88a4a8b6aa7451e65b82e2f3c502a5
# Parent  05a5ba2fda5d03facdea4e0cdfdc26d4a47d80fd
Add polling for domain undefine in VSMigrationService.

Use the same timeout duration used for the domain shutdown.  This should be more than enough time for the guest to complete migration.

Signed-off-by: Kaitlin Rupert <karupert at us.ibm.com>

diff -r 05a5ba2fda5d -r 8c3b74f06d88 src/Virt_VSMigrationService.c
--- a/src/Virt_VSMigrationService.c	Wed May 28 14:04:50 2008 -0700
+++ b/src/Virt_VSMigrationService.c	Thu May 29 14:48:41 2008 -0700
@@ -977,8 +977,34 @@
 {
         CMPIStatus s = {CMPI_RC_OK, NULL};
         virDomainPtr newdom = NULL;
+        virDomainPtr dom;
+        int i;
+        int ret;
 
-        if (virDomainUndefine(ldom) == -1) {
+        for (i = 0; i < MIGRATE_SHUTDOWN_TIMEOUT; i++) {
+                if ((i % 30) == 0) {
+                        CU_DEBUG("Polling to undefine guest %s...", 
+                                 virDomainGetName(ldom));
+                }
+
+                dom = virDomainLookupByName(virDomainGetConnect(ldom),
+                                            virDomainGetName(ldom));
+                if (dom == NULL) {
+                        CU_DEBUG("Unable to re-lookup domain");
+                        ret = -1;
+                        break;
+                }
+
+                ret = virDomainUndefine(dom);
+                virDomainFree(dom);
+
+                if (ret == 0)
+                        break;
+
+                sleep(1);
+        }
+
+        if (ret != 0) {
                 CU_DEBUG("Undefine of local domain failed");
         }
 




More information about the Libvirt-cim mailing list