# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1205453397 25200
# Node ID 8a689c81d44016468f58f10df8026f729c1cb2aa
# Parent 9905f7a33ed9ef02ff6ecfc0d1b5b335dcd16580
Remove the system from the source guest.
If the guest is still defined on the source after the migrate, remove the guest.
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r 9905f7a33ed9 -r 8a689c81d440 src/Virt_VSMigrationService.c
--- a/src/Virt_VSMigrationService.c Thu Mar 13 17:09:55 2008 -0700
+++ b/src/Virt_VSMigrationService.c Thu Mar 13 17:09:57 2008 -0700
@@ -685,6 +685,24 @@ static CMPIStatus handle_offline_migrate
return s;
}
+static CMPIStatus remove_guest(char *dom_name,
+ virDomainPtr dom,
+ virConnectPtr conn)
+{
+ CMPIStatus s = {CMPI_RC_OK, NULL};
+
+ if (!domain_exists(conn, dom_name))
+ goto out;
+
+ if (virDomainUndefine(dom))
+ cu_statusf(_BROKER, &s,
+ CMPI_RC_ERR_FAILED,
+ "Unable to remove guest from target system.");
+
+ out:
+ return s;
+}
+
static CMPIStatus migrate_vs(struct migration_job *job)
{
CMPIStatus s;
@@ -729,6 +747,10 @@ static CMPIStatus migrate_vs(struct migr
if (s.rc != CMPI_RC_OK)
goto out;
+ s = remove_guest(job->domain, dom, conn);
+ if (s.rc != CMPI_RC_OK)
+ CU_DEBUG("Undefine of guest on source system failed");
+
CU_DEBUG("Migration succeeded");
s = define_guest_on_target(job->conn, NULL, job, false);