Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange(a)redhat.com>
All the migration code is done by the XenD subdriver which
can be assumed to always be present
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/xen/xen_driver.c | 32 +++++++++-----------------------
1 file changed, 9 insertions(+), 23 deletions(-)
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
index f11e5bf..cfdc940 100644
--- a/src/xen/xen_driver.c
+++ b/src/xen/xen_driver.c
@@ -1233,17 +1233,11 @@ xenUnifiedDomainMigratePrepare(virConnectPtr dconn,
const char *dname,
unsigned long resource)
{
- xenUnifiedPrivatePtr priv = dconn->privateData;
-
virCheckFlags(XEN_MIGRATION_FLAGS, -1);
- if (priv->opened[XEN_UNIFIED_XEND_OFFSET])
- return xenDaemonDomainMigratePrepare(dconn, cookie, cookielen,
- uri_in, uri_out,
- flags, dname, resource);
-
- virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
- return -1;
+ return xenDaemonDomainMigratePrepare(dconn, cookie, cookielen,
+ uri_in, uri_out,
+ flags, dname, resource);
}
static int
@@ -1255,16 +1249,10 @@ xenUnifiedDomainMigratePerform(virDomainPtr dom,
const char *dname,
unsigned long resource)
{
- xenUnifiedPrivatePtr priv = dom->conn->privateData;
-
virCheckFlags(XEN_MIGRATION_FLAGS, -1);
- if (priv->opened[XEN_UNIFIED_XEND_OFFSET])
- return xenDaemonDomainMigratePerform(dom, cookie, cookielen, uri,
- flags, dname, resource);
-
- virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
- return -1;
+ return xenDaemonDomainMigratePerform(dom, cookie, cookielen, uri,
+ flags, dname, resource);
}
static virDomainPtr
@@ -1281,24 +1269,22 @@ xenUnifiedDomainMigrateFinish(virConnectPtr dconn,
virCheckFlags(XEN_MIGRATION_FLAGS, NULL);
- dom = xenUnifiedDomainLookupByName(dconn, dname);
- if (! dom) {
+ if (!(dom = xenUnifiedDomainLookupByName(dconn, dname)))
return NULL;
- }
if (flags & VIR_MIGRATE_PERSIST_DEST) {
domain_xml = xenDaemonDomainGetXMLDesc(dom, 0, NULL);
Ah, my comment in the previous patch referred to the call to
xenDaemonDomainGetXMLDesc here. dom should be inactive at this point
right? In which case xenDaemonDomainGetXMLDesc will return NULL if
xendConfigVersion < 3_0_4. But again, not sure if the migration
functions are meant to be supported in that environment.
Patch looks good otherwise and weak ACK assuming the migration functions
are for xendConfigVersion >= 3_0_4.
Regards,
Jim
if (! domain_xml) {
virReportError(VIR_ERR_MIGRATE_PERSIST_FAILED,
"%s", _("failed to get XML representation of
migrated domain"));
- goto failure;
+ goto error;
}
dom_new = xenDaemonDomainDefineXML(dconn, domain_xml);
if (! dom_new) {
virReportError(VIR_ERR_MIGRATE_PERSIST_FAILED,
"%s", _("failed to define domain on
destination host"));
- goto failure;
+ goto error;
}
/* Free additional reference added by Define */
@@ -1310,7 +1296,7 @@ xenUnifiedDomainMigrateFinish(virConnectPtr dconn,
return dom;
-failure:
+error:
virDomainFree(dom);
VIR_FREE(domain_xml);