
Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange@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@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);