From ffb7954f88dbe6e06166f08f2b0016768f9ac251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Mon, 12 Feb 2018 17:11:41 +0000 Subject: [PATCH] qemu: rename migration APIs to include Src or Dst in their name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is very difficult while reading the migration code trying to understand whether a particular function is being called on the src side or the dst side, or either. Putting "Src" or "Dst" in the method names will make this much more obvious. "Any" is used in a few helpers which can be called from both sides. Reviewed-by: John Ferlan Signed-off-by: Daniel P. BerrangĂ© --- src/qemu/qemu_driver.c | 194 +++--- src/qemu/qemu_migration.c | 1378 +++++++++++++++++++------------------ src/qemu/qemu_migration.h | 264 +++---- src/qemu/qemu_process.c | 20 +- tests/qemuxml2argvtest.c | 4 +- 5 files changed, 940 insertions(+), 920 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index efac4ed442..416567512d 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -754,7 +754,7 @@ qemuStateInitialize(bool privileged, if (!(qemu_driver->sharedDevices = virHashCreate(30, qemuSharedDeviceEntryFree))) goto error; - if (qemuMigrationErrorInit(qemu_driver) < 0) + if (qemuMigrationDstErrorInit(qemu_driver) < 0) goto error; if (privileged) { @@ -3282,7 +3282,7 @@ qemuDomainSaveMemory(virQEMUDriverPtr driver, goto cleanup; /* Perform the migration */ - if (qemuMigrationToFile(driver, vm, fd, compressedpath, asyncJob) < 0) + if (qemuMigrationSrcToFile(driver, vm, fd, compressedpath, asyncJob) < 0) goto cleanup; /* Touch up file header to mark image complete. */ @@ -3338,7 +3338,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, if (!(caps = virQEMUDriverGetCapabilities(driver, false))) goto cleanup; - if (!qemuMigrationIsAllowed(driver, vm, false, 0)) + if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0)) goto cleanup; if (qemuDomainObjBeginAsyncJob(driver, vm, QEMU_ASYNC_JOB_SAVE, @@ -3893,11 +3893,11 @@ doCoreDump(virQEMUDriverPtr driver, goto cleanup; } - if (!qemuMigrationIsAllowed(driver, vm, false, 0)) + if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0)) goto cleanup; - ret = qemuMigrationToFile(driver, vm, fd, compressedpath, - QEMU_ASYNC_JOB_DUMP); + ret = qemuMigrationSrcToFile(driver, vm, fd, compressedpath, + QEMU_ASYNC_JOB_DUMP); } if (ret < 0) @@ -4815,8 +4815,8 @@ processMonitorEOFEvent(virQEMUDriverPtr driver, if (priv->job.asyncJob == QEMU_ASYNC_JOB_MIGRATION_IN) { stopFlags |= VIR_QEMU_PROCESS_STOP_MIGRATED; - qemuMigrationErrorSave(driver, vm->def->name, - qemuMonitorLastError(priv->mon)); + qemuMigrationDstErrorSave(driver, vm->def->name, + qemuMonitorLastError(priv->mon)); } event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED, @@ -12109,15 +12109,15 @@ qemuDomainMigratePrepareTunnel(virConnectPtr dconn, goto cleanup; } - if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname))) + if (!(def = qemuMigrationAnyPrepareDef(driver, dom_xml, dname, &origname))) goto cleanup; if (virDomainMigratePrepareTunnelEnsureACL(dconn, def) < 0) goto cleanup; - ret = qemuMigrationPrepareTunnel(driver, - NULL, 0, NULL, NULL, /* No cookies in v2 */ - st, &def, origname, flags); + ret = qemuMigrationDstPrepareTunnel(driver, + NULL, 0, NULL, NULL, /* No cookies in v2 */ + st, &def, origname, flags); cleanup: VIR_FREE(origname); @@ -12158,7 +12158,7 @@ qemuDomainMigratePrepare2(virConnectPtr dconn, goto cleanup; } - if (!(compression = qemuMigrationCompressionParse(NULL, 0, flags))) + if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags))) goto cleanup; if (virLockManagerPluginUsesState(driver->lockManager)) { @@ -12168,7 +12168,7 @@ qemuDomainMigratePrepare2(virConnectPtr dconn, goto cleanup; } - if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname))) + if (!(def = qemuMigrationAnyPrepareDef(driver, dom_xml, dname, &origname))) goto cleanup; if (virDomainMigratePrepare2EnsureACL(dconn, def) < 0) @@ -12178,11 +12178,11 @@ qemuDomainMigratePrepare2(virConnectPtr dconn, * length was not sufficiently large, causing failures * migrating between old & new libvirtd */ - ret = qemuMigrationPrepareDirect(driver, - NULL, 0, NULL, NULL, /* No cookies */ - uri_in, uri_out, - &def, origname, NULL, 0, NULL, 0, - compression, flags); + ret = qemuMigrationDstPrepareDirect(driver, + NULL, 0, NULL, NULL, /* No cookies */ + uri_in, uri_out, + &def, origname, NULL, 0, NULL, 0, + compression, flags); cleanup: VIR_FREE(compression); @@ -12218,7 +12218,7 @@ qemuDomainMigratePerform(virDomainPtr dom, goto cleanup; } - if (!(compression = qemuMigrationCompressionParse(NULL, 0, flags))) + if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags))) goto cleanup; if (!(vm = qemuDomObjFromDomain(dom))) @@ -12240,11 +12240,11 @@ qemuDomainMigratePerform(virDomainPtr dom, * * Consume any cookie we were able to decode though */ - ret = qemuMigrationPerform(driver, dom->conn, vm, NULL, - NULL, dconnuri, uri, NULL, NULL, 0, NULL, 0, - compression, &migParams, cookie, cookielen, - NULL, NULL, /* No output cookies in v2 */ - flags, dname, resource, false); + ret = qemuMigrationSrcPerform(driver, dom->conn, vm, NULL, + NULL, dconnuri, uri, NULL, NULL, 0, NULL, 0, + compression, &migParams, cookie, cookielen, + NULL, NULL, /* No output cookies in v2 */ + flags, dname, resource, false); cleanup: qemuMigrationParamsClear(&migParams); @@ -12273,7 +12273,7 @@ qemuDomainMigrateFinish2(virConnectPtr dconn, if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, _("no domain with matching name '%s'"), dname); - qemuMigrationErrorReport(driver, dname); + qemuMigrationDstErrorReport(driver, dname); goto cleanup; } @@ -12286,9 +12286,9 @@ qemuDomainMigrateFinish2(virConnectPtr dconn, * length was not sufficiently large, causing failures * migrating between old & new libvirtd */ - dom = qemuMigrationFinish(driver, dconn, vm, - NULL, 0, NULL, NULL, /* No cookies */ - flags, retcode, false); + dom = qemuMigrationDstFinish(driver, dconn, vm, + NULL, 0, NULL, NULL, /* No cookies */ + flags, retcode, false); cleanup: return dom; @@ -12320,8 +12320,8 @@ qemuDomainMigrateBegin3(virDomainPtr domain, return NULL; } - return qemuMigrationBegin(domain->conn, vm, xmlin, dname, - cookieout, cookieoutlen, 0, NULL, flags); + return qemuMigrationSrcBegin(domain->conn, vm, xmlin, dname, + cookieout, cookieoutlen, 0, NULL, flags); } static char * @@ -12366,9 +12366,9 @@ qemuDomainMigrateBegin3Params(virDomainPtr domain, goto cleanup; } - ret = qemuMigrationBegin(domain->conn, vm, xmlin, dname, - cookieout, cookieoutlen, - nmigrate_disks, migrate_disks, flags); + ret = qemuMigrationSrcBegin(domain->conn, vm, xmlin, dname, + cookieout, cookieoutlen, + nmigrate_disks, migrate_disks, flags); cleanup: VIR_FREE(migrate_disks); @@ -12407,21 +12407,21 @@ qemuDomainMigratePrepare3(virConnectPtr dconn, goto cleanup; } - if (!(compression = qemuMigrationCompressionParse(NULL, 0, flags))) + if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags))) goto cleanup; - if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname))) + if (!(def = qemuMigrationAnyPrepareDef(driver, dom_xml, dname, &origname))) goto cleanup; if (virDomainMigratePrepare3EnsureACL(dconn, def) < 0) goto cleanup; - ret = qemuMigrationPrepareDirect(driver, - cookiein, cookieinlen, - cookieout, cookieoutlen, - uri_in, uri_out, - &def, origname, NULL, 0, NULL, 0, - compression, flags); + ret = qemuMigrationDstPrepareDirect(driver, + cookiein, cookieinlen, + cookieout, cookieoutlen, + uri_in, uri_out, + &def, origname, NULL, 0, NULL, 0, + compression, flags); cleanup: VIR_FREE(compression); @@ -12483,7 +12483,7 @@ qemuDomainMigratePrepare3Params(virConnectPtr dconn, if (nmigrate_disks < 0) goto cleanup; - if (!(compression = qemuMigrationCompressionParse(params, nparams, flags))) + if (!(compression = qemuMigrationAnyCompressionParse(params, nparams, flags))) goto cleanup; if (flags & VIR_MIGRATE_TUNNELLED) { @@ -12496,19 +12496,19 @@ qemuDomainMigratePrepare3Params(virConnectPtr dconn, goto cleanup; } - if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname))) + if (!(def = qemuMigrationAnyPrepareDef(driver, dom_xml, dname, &origname))) goto cleanup; if (virDomainMigratePrepare3ParamsEnsureACL(dconn, def) < 0) goto cleanup; - ret = qemuMigrationPrepareDirect(driver, - cookiein, cookieinlen, - cookieout, cookieoutlen, - uri_in, uri_out, - &def, origname, listenAddress, - nmigrate_disks, migrate_disks, nbdPort, - compression, flags); + ret = qemuMigrationDstPrepareDirect(driver, + cookiein, cookieinlen, + cookieout, cookieoutlen, + uri_in, uri_out, + &def, origname, listenAddress, + nmigrate_disks, migrate_disks, nbdPort, + compression, flags); cleanup: VIR_FREE(compression); @@ -12545,16 +12545,16 @@ qemuDomainMigratePrepareTunnel3(virConnectPtr dconn, goto cleanup; } - if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname))) + if (!(def = qemuMigrationAnyPrepareDef(driver, dom_xml, dname, &origname))) goto cleanup; if (virDomainMigratePrepareTunnel3EnsureACL(dconn, def) < 0) goto cleanup; - ret = qemuMigrationPrepareTunnel(driver, - cookiein, cookieinlen, - cookieout, cookieoutlen, - st, &def, origname, flags); + ret = qemuMigrationDstPrepareTunnel(driver, + cookiein, cookieinlen, + cookieout, cookieoutlen, + st, &def, origname, flags); cleanup: VIR_FREE(origname); @@ -12598,16 +12598,16 @@ qemuDomainMigratePrepareTunnel3Params(virConnectPtr dconn, goto cleanup; } - if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname))) + if (!(def = qemuMigrationAnyPrepareDef(driver, dom_xml, dname, &origname))) goto cleanup; if (virDomainMigratePrepareTunnel3ParamsEnsureACL(dconn, def) < 0) goto cleanup; - ret = qemuMigrationPrepareTunnel(driver, - cookiein, cookieinlen, - cookieout, cookieoutlen, - st, &def, origname, flags); + ret = qemuMigrationDstPrepareTunnel(driver, + cookiein, cookieinlen, + cookieout, cookieoutlen, + st, &def, origname, flags); cleanup: VIR_FREE(origname); @@ -12637,7 +12637,7 @@ qemuDomainMigratePerform3(virDomainPtr dom, virCheckFlags(QEMU_MIGRATION_FLAGS, -1); - if (!(compression = qemuMigrationCompressionParse(NULL, 0, flags))) + if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags))) return -1; if (!(vm = qemuDomObjFromDomain(dom))) @@ -12648,12 +12648,12 @@ qemuDomainMigratePerform3(virDomainPtr dom, goto cleanup; } - ret = qemuMigrationPerform(driver, dom->conn, vm, xmlin, NULL, - dconnuri, uri, NULL, NULL, 0, NULL, 0, - compression, &migParams, - cookiein, cookieinlen, - cookieout, cookieoutlen, - flags, dname, resource, true); + ret = qemuMigrationSrcPerform(driver, dom->conn, vm, xmlin, NULL, + dconnuri, uri, NULL, NULL, 0, NULL, 0, + compression, &migParams, + cookiein, cookieinlen, + cookieout, cookieoutlen, + flags, dname, resource, true); cleanup: qemuMigrationParamsClear(&migParams); @@ -12728,7 +12728,7 @@ qemuDomainMigratePerform3Params(virDomainPtr dom, if (!(migParams = qemuMigrationParams(params, nparams, flags))) goto cleanup; - if (!(compression = qemuMigrationCompressionParse(params, nparams, flags))) + if (!(compression = qemuMigrationAnyCompressionParse(params, nparams, flags))) goto cleanup; if (!(vm = qemuDomObjFromDomain(dom))) @@ -12739,12 +12739,12 @@ qemuDomainMigratePerform3Params(virDomainPtr dom, goto cleanup; } - ret = qemuMigrationPerform(driver, dom->conn, vm, dom_xml, persist_xml, - dconnuri, uri, graphicsuri, listenAddress, - nmigrate_disks, migrate_disks, nbdPort, - compression, migParams, - cookiein, cookieinlen, cookieout, cookieoutlen, - flags, dname, bandwidth, true); + ret = qemuMigrationSrcPerform(driver, dom->conn, vm, dom_xml, persist_xml, + dconnuri, uri, graphicsuri, listenAddress, + nmigrate_disks, migrate_disks, nbdPort, + compression, migParams, + cookiein, cookieinlen, cookieout, cookieoutlen, + flags, dname, bandwidth, true); cleanup: VIR_FREE(compression); qemuMigrationParamsFree(&migParams); @@ -12779,7 +12779,7 @@ qemuDomainMigrateFinish3(virConnectPtr dconn, if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, _("no domain with matching name '%s'"), dname); - qemuMigrationErrorReport(driver, dname); + qemuMigrationDstErrorReport(driver, dname); return NULL; } @@ -12788,10 +12788,10 @@ qemuDomainMigrateFinish3(virConnectPtr dconn, return NULL; } - return qemuMigrationFinish(driver, dconn, vm, - cookiein, cookieinlen, - cookieout, cookieoutlen, - flags, cancelled, true); + return qemuMigrationDstFinish(driver, dconn, vm, + cookiein, cookieinlen, + cookieout, cookieoutlen, + flags, cancelled, true); } static virDomainPtr @@ -12827,7 +12827,7 @@ qemuDomainMigrateFinish3Params(virConnectPtr dconn, if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, _("no domain with matching name '%s'"), dname); - qemuMigrationErrorReport(driver, dname); + qemuMigrationDstErrorReport(driver, dname); return NULL; } @@ -12836,10 +12836,10 @@ qemuDomainMigrateFinish3Params(virConnectPtr dconn, return NULL; } - return qemuMigrationFinish(driver, dconn, vm, - cookiein, cookieinlen, - cookieout, cookieoutlen, - flags, cancelled, true); + return qemuMigrationDstFinish(driver, dconn, vm, + cookiein, cookieinlen, + cookieout, cookieoutlen, + flags, cancelled, true); } @@ -12862,8 +12862,8 @@ qemuDomainMigrateConfirm3(virDomainPtr domain, return -1; } - return qemuMigrationConfirm(domain->conn->privateData, vm, cookiein, cookieinlen, - flags, cancelled); + return qemuMigrationSrcConfirm(domain->conn->privateData, vm, cookiein, cookieinlen, + flags, cancelled); } static int @@ -12890,8 +12890,8 @@ qemuDomainMigrateConfirm3Params(virDomainPtr domain, return -1; } - return qemuMigrationConfirm(domain->conn->privateData, vm, cookiein, cookieinlen, - flags, cancelled); + return qemuMigrationSrcConfirm(domain->conn->privateData, vm, cookiein, cookieinlen, + flags, cancelled); } @@ -13180,14 +13180,14 @@ qemuDomainGetJobInfoMigrationStats(virQEMUDriverPtr driver, jobInfo->status == QEMU_DOMAIN_JOB_STATUS_POSTCOPY) { if (events && jobInfo->status != QEMU_DOMAIN_JOB_STATUS_ACTIVE && - qemuMigrationFetchStats(driver, vm, QEMU_ASYNC_JOB_NONE, - jobInfo, NULL) < 0) + qemuMigrationAnyFetchStats(driver, vm, QEMU_ASYNC_JOB_NONE, + jobInfo, NULL) < 0) return -1; if (jobInfo->status == QEMU_DOMAIN_JOB_STATUS_ACTIVE && jobInfo->statsType == QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION && - qemuMigrationFetchMirrorStats(driver, vm, QEMU_ASYNC_JOB_NONE, - jobInfo) < 0) + qemuMigrationSrcFetchMirrorStats(driver, vm, QEMU_ASYNC_JOB_NONE, + jobInfo) < 0) return -1; if (qemuDomainJobInfoUpdateTime(jobInfo) < 0) @@ -13582,7 +13582,7 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr dom, priv = vm->privateData; - if (!qemuMigrationCapsGet(vm, QEMU_MONITOR_MIGRATION_CAPS_XBZRLE)) { + if (!qemuMigrationAnyCapsGet(vm, QEMU_MONITOR_MIGRATION_CAPS_XBZRLE)) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("Compressed migration is not supported by " "QEMU binary")); @@ -13633,7 +13633,7 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr dom, priv = vm->privateData; - if (!qemuMigrationCapsGet(vm, QEMU_MONITOR_MIGRATION_CAPS_XBZRLE)) { + if (!qemuMigrationAnyCapsGet(vm, QEMU_MONITOR_MIGRATION_CAPS_XBZRLE)) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("Compressed migration is not supported by " "QEMU binary")); @@ -13985,7 +13985,7 @@ qemuDomainSnapshotCreateActiveInternal(virQEMUDriverPtr driver, bool resume = false; int ret = -1; - if (!qemuMigrationIsAllowed(driver, vm, false, 0)) + if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0)) goto cleanup; if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) { @@ -14918,7 +14918,7 @@ qemuDomainSnapshotCreateActiveExternal(virQEMUDriverPtr driver, /* do the memory snapshot if necessary */ if (memory) { /* check if migration is possible */ - if (!qemuMigrationIsAllowed(driver, vm, false, 0)) + if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0)) goto cleanup; /* allow the migration job to be cancelled or the domain to be paused */ diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 29247d6a39..99d58325cb 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -115,7 +115,7 @@ qemuMigrationJobFinish(virQEMUDriverPtr driver, virDomainObjPtr obj) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); -/* qemuMigrationCheckTLSCreds +/* qemuMigrationParamsCheckTLSCreds * @driver: pointer to qemu driver * @vm: domain object * @asyncJob: migration job to join @@ -129,9 +129,9 @@ qemuMigrationJobFinish(virQEMUDriverPtr driver, * private domain structure. Returns -1 on failure. */ static int -qemuMigrationCheckTLSCreds(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) +qemuMigrationParamsCheckTLSCreds(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob) { int ret = -1; qemuDomainObjPrivatePtr priv = vm->privateData; @@ -158,7 +158,7 @@ qemuMigrationCheckTLSCreds(virQEMUDriverPtr driver, } -/* qemuMigrationCheckSetupTLS +/* qemuMigrationParamsCheckSetupTLS * @driver: pointer to qemu driver * @vm: domain object * @cfg: configuration pointer @@ -174,10 +174,10 @@ qemuMigrationCheckTLSCreds(virQEMUDriverPtr driver, * Returns 0 on success, -1 on error/failure */ static int -qemuMigrationCheckSetupTLS(virQEMUDriverPtr driver, - virQEMUDriverConfigPtr cfg, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) +qemuMigrationParamsCheckSetupTLS(virQEMUDriverPtr driver, + virQEMUDriverConfigPtr cfg, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv = vm->privateData; @@ -187,7 +187,7 @@ qemuMigrationCheckSetupTLS(virQEMUDriverPtr driver, return -1; } - if (qemuMigrationCheckTLSCreds(driver, vm, asyncJob) < 0) + if (qemuMigrationParamsCheckTLSCreds(driver, vm, asyncJob) < 0) return -1; if (!priv->migTLSAlias) { @@ -208,7 +208,7 @@ qemuMigrationCheckSetupTLS(virQEMUDriverPtr driver, } -/* qemuMigrationAddTLSObjects +/* qemuMigrationParamsAddTLSObjects * @driver: pointer to qemu driver * @vm: domain object * @cfg: configuration pointer @@ -223,14 +223,14 @@ qemuMigrationCheckSetupTLS(virQEMUDriverPtr driver, * Returns 0 on success, -1 on failure */ static int -qemuMigrationAddTLSObjects(virQEMUDriverPtr driver, - virDomainObjPtr vm, - virQEMUDriverConfigPtr cfg, - bool tlsListen, - qemuDomainAsyncJob asyncJob, - char **tlsAlias, - char **secAlias, - qemuMonitorMigrationParamsPtr migParams) +qemuMigrationParamsAddTLSObjects(virQEMUDriverPtr driver, + virDomainObjPtr vm, + virQEMUDriverConfigPtr cfg, + bool tlsListen, + qemuDomainAsyncJob asyncJob, + char **tlsAlias, + char **secAlias, + qemuMonitorMigrationParamsPtr migParams) { qemuDomainObjPrivatePtr priv = vm->privateData; virJSONValuePtr tlsProps = NULL; @@ -266,7 +266,7 @@ qemuMigrationAddTLSObjects(virQEMUDriverPtr driver, static void -qemuMigrationStoreDomainState(virDomainObjPtr vm) +qemuMigrationSrcStoreDomainState(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv = vm->privateData; priv->preMigrationState = virDomainObjGetState(vm, NULL); @@ -277,7 +277,7 @@ qemuMigrationStoreDomainState(virDomainObjPtr vm) /* Returns true if the domain was resumed, false otherwise */ static bool -qemuMigrationRestoreDomainState(virQEMUDriverPtr driver, virDomainObjPtr vm) +qemuMigrationSrcRestoreDomainState(virQEMUDriverPtr driver, virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv = vm->privateData; int reason; @@ -320,9 +320,9 @@ qemuMigrationRestoreDomainState(virQEMUDriverPtr driver, virDomainObjPtr vm) static int -qemuMigrationPrecreateDisk(virConnectPtr conn, - virDomainDiskDefPtr disk, - unsigned long long capacity) +qemuMigrationDstPrecreateDisk(virConnectPtr conn, + virDomainDiskDefPtr disk, + unsigned long long capacity) { int ret = -1; virStoragePoolPtr pool = NULL; @@ -425,8 +425,8 @@ qemuMigrationPrecreateDisk(virConnectPtr conn, } static bool -qemuMigrateDisk(virDomainDiskDef const *disk, - size_t nmigrate_disks, const char **migrate_disks) +qemuMigrationAnyCopyDisk(virDomainDiskDef const *disk, + size_t nmigrate_disks, const char **migrate_disks) { size_t i; @@ -447,11 +447,11 @@ qemuMigrateDisk(virDomainDiskDef const *disk, static int -qemuMigrationPrecreateStorage(virDomainObjPtr vm, - qemuMigrationCookieNBDPtr nbd, - size_t nmigrate_disks, - const char **migrate_disks, - bool incremental) +qemuMigrationDstPrecreateStorage(virDomainObjPtr vm, + qemuMigrationCookieNBDPtr nbd, + size_t nmigrate_disks, + const char **migrate_disks, + bool incremental) { int ret = -1; size_t i = 0; @@ -481,7 +481,7 @@ qemuMigrationPrecreateStorage(virDomainObjPtr vm, diskSrcPath = virDomainDiskGetSource(disk); /* Skip disks we don't want to migrate and already existing disks. */ - if (!qemuMigrateDisk(disk, nmigrate_disks, migrate_disks) || + if (!qemuMigrationAnyCopyDisk(disk, nmigrate_disks, migrate_disks) || (diskSrcPath && virFileExists(diskSrcPath))) { continue; } @@ -495,7 +495,7 @@ qemuMigrationPrecreateStorage(virDomainObjPtr vm, VIR_DEBUG("Proceeding with disk source %s", NULLSTR(diskSrcPath)); - if (qemuMigrationPrecreateDisk(conn, disk, nbd->disks[i].capacity) < 0) + if (qemuMigrationDstPrecreateDisk(conn, disk, nbd->disks[i].capacity) < 0) goto cleanup; } @@ -507,7 +507,7 @@ qemuMigrationPrecreateStorage(virDomainObjPtr vm, /** - * qemuMigrationStartNBDServer: + * qemuMigrationDstStartNBDServer: * @driver: qemu driver * @vm: domain * @@ -519,12 +519,12 @@ qemuMigrationPrecreateStorage(virDomainObjPtr vm, * Returns 0 on success, -1 otherwise. */ static int -qemuMigrationStartNBDServer(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *listenAddr, - size_t nmigrate_disks, - const char **migrate_disks, - int nbdPort) +qemuMigrationDstStartNBDServer(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *listenAddr, + size_t nmigrate_disks, + const char **migrate_disks, + int nbdPort) { int ret = -1; qemuDomainObjPrivatePtr priv = vm->privateData; @@ -542,7 +542,7 @@ qemuMigrationStartNBDServer(virQEMUDriverPtr driver, virDomainDiskDefPtr disk = vm->def->disks[i]; /* check whether disk should be migrated */ - if (!qemuMigrateDisk(disk, nmigrate_disks, migrate_disks)) + if (!qemuMigrationAnyCopyDisk(disk, nmigrate_disks, migrate_disks)) continue; if (disk->src->readonly || virStorageSourceIsEmpty(disk->src)) { @@ -592,9 +592,9 @@ qemuMigrationStartNBDServer(virQEMUDriverPtr driver, static int -qemuMigrationStopNBDServer(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuMigrationCookiePtr mig) +qemuMigrationDstStopNBDServer(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuMigrationCookiePtr mig) { qemuDomainObjPrivatePtr priv = vm->privateData; @@ -617,12 +617,12 @@ qemuMigrationStopNBDServer(virQEMUDriverPtr driver, /** - * qemuMigrationDriveMirrorReady: + * qemuMigrationSrcDriveMirrorReady: * @driver: qemu driver * @vm: domain * * Check the status of all drive-mirrors started by - * qemuMigrationDriveMirror. Any pending block job events + * qemuMigrationSrcDriveMirror. Any pending block job events * for the mirrored disks will be processed. * * Returns 1 if all mirrors are "ready", @@ -630,9 +630,9 @@ qemuMigrationStopNBDServer(virQEMUDriverPtr driver, * -1 on error. */ static int -qemuMigrationDriveMirrorReady(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) +qemuMigrationSrcDriveMirrorReady(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob) { size_t i; size_t notReady = 0; @@ -774,11 +774,11 @@ qemuMigrationDriveMirrorCancelled(virQEMUDriverPtr driver, * -1 on error or when job failed and failNoJob is true. */ static int -qemuMigrationCancelOneDriveMirror(virQEMUDriverPtr driver, - virDomainObjPtr vm, - virDomainDiskDefPtr disk, - bool failNoJob, - qemuDomainAsyncJob asyncJob) +qemuMigrationSrcCancelOneDriveMirror(virQEMUDriverPtr driver, + virDomainObjPtr vm, + virDomainDiskDefPtr disk, + bool failNoJob, + qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv = vm->privateData; char *diskAlias = NULL; @@ -829,7 +829,7 @@ qemuMigrationCancelOneDriveMirror(virQEMUDriverPtr driver, /** - * qemuMigrationCancelDriveMirror: + * qemuMigrationSrcCancelDriveMirror: * @driver: qemu driver * @vm: domain * @check: if true report an error when some of the mirrors fails @@ -841,11 +841,11 @@ qemuMigrationCancelOneDriveMirror(virQEMUDriverPtr driver, * Returns 0 on success, -1 otherwise. */ static int -qemuMigrationCancelDriveMirror(virQEMUDriverPtr driver, - virDomainObjPtr vm, - bool check, - qemuDomainAsyncJob asyncJob, - virConnectPtr dconn) +qemuMigrationSrcCancelDriveMirror(virQEMUDriverPtr driver, + virDomainObjPtr vm, + bool check, + qemuDomainAsyncJob asyncJob, + virConnectPtr dconn) { virErrorPtr err = NULL; int ret = -1; @@ -862,8 +862,8 @@ qemuMigrationCancelDriveMirror(virQEMUDriverPtr driver, if (!diskPriv->migrating) continue; - rv = qemuMigrationCancelOneDriveMirror(driver, vm, disk, - check, asyncJob); + rv = qemuMigrationSrcCancelOneDriveMirror(driver, vm, disk, + check, asyncJob); if (rv != 0) { if (rv < 0) { if (!err) @@ -922,22 +922,22 @@ qemuMigrationCancelDriveMirror(virQEMUDriverPtr driver, * simultaneously to both source and destination. On success, * update @migrate_flags so we don't tell 'migrate' command * to do the very same operation. On failure, the caller is - * expected to call qemuMigrationCancelDriveMirror to stop all + * expected to call qemuMigrationSrcCancelDriveMirror to stop all * running mirrors. * * Returns 0 on success (@migrate_flags updated), * -1 otherwise. */ static int -qemuMigrationDriveMirror(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuMigrationCookiePtr mig, - const char *host, - unsigned long speed, - unsigned int *migrate_flags, - size_t nmigrate_disks, - const char **migrate_disks, - virConnectPtr dconn) +qemuMigrationSrcDriveMirror(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuMigrationCookiePtr mig, + const char *host, + unsigned long speed, + unsigned int *migrate_flags, + size_t nmigrate_disks, + const char **migrate_disks, + virConnectPtr dconn) { qemuDomainObjPrivatePtr priv = vm->privateData; int ret = -1; @@ -982,7 +982,7 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver, int mon_ret; /* check whether disk should be migrated */ - if (!qemuMigrateDisk(disk, nmigrate_disks, migrate_disks)) + if (!qemuMigrationAnyCopyDisk(disk, nmigrate_disks, migrate_disks)) continue; if (!(diskAlias = qemuAliasFromDisk(disk)) || @@ -1013,8 +1013,8 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver, } } - while ((rv = qemuMigrationDriveMirrorReady(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_OUT)) != 1) { + while ((rv = qemuMigrationSrcDriveMirrorReady(driver, vm, + QEMU_ASYNC_JOB_MIGRATION_OUT)) != 1) { if (rv < 0) goto cleanup; @@ -1036,8 +1036,8 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver, goto cleanup; } - qemuMigrationFetchMirrorStats(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, - priv->job.current); + qemuMigrationSrcFetchMirrorStats(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + priv->job.current); /* Okay, all disks are ready. Modify migrate_flags */ *migrate_flags &= ~(QEMU_MONITOR_MIGRATE_NON_SHARED_DISK | @@ -1054,14 +1054,14 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver, /** - * qemuMigrationIsAllowedHostdev: + * qemuMigrationSrcIsAllowedHostdev: * @def: domain definition * * Checks that @def does not contain any host devices unsupported accross * migrations. Returns true if the vm is allowed to migrate. */ static bool -qemuMigrationIsAllowedHostdev(const virDomainDef *def) +qemuMigrationSrcIsAllowedHostdev(const virDomainDef *def) { size_t i; @@ -1082,7 +1082,7 @@ qemuMigrationIsAllowedHostdev(const virDomainDef *def) /** - * qemuMigrationIsAllowed: + * qemuMigrationSrcIsAllowed: * @driver: qemu driver struct * @vm: domain object * @remote: migration is remote @@ -1096,10 +1096,10 @@ qemuMigrationIsAllowedHostdev(const virDomainDef *def) * false otherwise. */ bool -qemuMigrationIsAllowed(virQEMUDriverPtr driver, - virDomainObjPtr vm, - bool remote, - unsigned int flags) +qemuMigrationSrcIsAllowed(virQEMUDriverPtr driver, + virDomainObjPtr vm, + bool remote, + unsigned int flags) { int nsnapshots; int pauseReason; @@ -1145,7 +1145,7 @@ qemuMigrationIsAllowed(virQEMUDriverPtr driver, return false; } - if (!qemuMigrationIsAllowedHostdev(vm->def)) + if (!qemuMigrationSrcIsAllowedHostdev(vm->def)) return false; if (vm->def->cpu) { @@ -1200,10 +1200,10 @@ qemuMigrationIsAllowed(virQEMUDriverPtr driver, } static bool -qemuMigrationIsSafe(virDomainDefPtr def, - size_t nmigrate_disks, - const char **migrate_disks, - unsigned int flags) +qemuMigrationSrcIsSafe(virDomainDefPtr def, + size_t nmigrate_disks, + const char **migrate_disks, + unsigned int flags) { bool storagemigration = flags & (VIR_MIGRATE_NON_SHARED_DISK | @@ -1226,7 +1226,7 @@ qemuMigrationIsSafe(virDomainDefPtr def, /* disks which are migrated by qemu are safe too */ if (storagemigration && - qemuMigrateDisk(disk, nmigrate_disks, migrate_disks)) + qemuMigrationAnyCopyDisk(disk, nmigrate_disks, migrate_disks)) continue; if (virDomainDiskGetType(disk) == VIR_STORAGE_TYPE_FILE) { @@ -1252,12 +1252,12 @@ qemuMigrationIsSafe(virDomainDefPtr def, return true; } -/** qemuMigrationSetOffline +/** qemuMigrationSrcSetOffline * Pause domain for non-live migration. */ int -qemuMigrationSetOffline(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuMigrationSrcSetOffline(virQEMUDriverPtr driver, + virDomainObjPtr vm) { int ret; VIR_DEBUG("driver=%p vm=%p", driver, vm); @@ -1277,8 +1277,8 @@ qemuMigrationSetOffline(virQEMUDriverPtr driver, void -qemuMigrationPostcopyFailed(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuMigrationAnyPostcopyFailed(virQEMUDriverPtr driver, + virDomainObjPtr vm) { virDomainState state; int reason; @@ -1318,7 +1318,7 @@ qemuMigrationPostcopyFailed(virQEMUDriverPtr driver, static int -qemuMigrationSetOption(virQEMUDriverPtr driver, +qemuMigrationOptionSet(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuMonitorMigrationCaps capability, bool state, @@ -1327,7 +1327,7 @@ qemuMigrationSetOption(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv = vm->privateData; int ret; - if (!qemuMigrationCapsGet(vm, capability)) { + if (!qemuMigrationAnyCapsGet(vm, capability)) { if (!state) { /* Unsupported but we want it off anyway */ return 0; @@ -1360,14 +1360,14 @@ qemuMigrationSetOption(virQEMUDriverPtr driver, static int -qemuMigrationSetPostCopy(virQEMUDriverPtr driver, - virDomainObjPtr vm, - bool state, - qemuDomainAsyncJob job) +qemuMigrationOptionSetPostCopy(virQEMUDriverPtr driver, + virDomainObjPtr vm, + bool state, + qemuDomainAsyncJob job) { qemuDomainObjPrivatePtr priv = vm->privateData; - if (qemuMigrationSetOption(driver, vm, + if (qemuMigrationOptionSet(driver, vm, QEMU_MONITOR_MIGRATION_CAPS_POSTCOPY, state, job) < 0) return -1; @@ -1378,7 +1378,7 @@ qemuMigrationSetPostCopy(virQEMUDriverPtr driver, static int -qemuMigrationWaitForSpice(virDomainObjPtr vm) +qemuMigrationSrcWaitForSpice(virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv = vm->privateData; @@ -1437,11 +1437,11 @@ qemuMigrationUpdateJobType(qemuDomainJobInfoPtr jobInfo) int -qemuMigrationFetchStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, - qemuDomainJobInfoPtr jobInfo, - char **error) +qemuMigrationAnyFetchStats(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob, + qemuDomainJobInfoPtr jobInfo, + char **error) { qemuDomainObjPrivatePtr priv = vm->privateData; qemuMonitorMigrationStats stats; @@ -1480,7 +1480,7 @@ qemuMigrationJobName(virDomainObjPtr vm) static int -qemuMigrationCheckJobStatus(virQEMUDriverPtr driver, +qemuMigrationJobCheckStatus(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { @@ -1492,7 +1492,7 @@ qemuMigrationCheckJobStatus(virQEMUDriverPtr driver, if (!events || jobInfo->stats.mig.status == QEMU_MONITOR_MIGRATION_STATUS_ERROR) { - if (qemuMigrationFetchStats(driver, vm, asyncJob, jobInfo, &error) < 0) + if (qemuMigrationAnyFetchStats(driver, vm, asyncJob, jobInfo, &error) < 0) return -1; } @@ -1534,6 +1534,7 @@ qemuMigrationCheckJobStatus(virQEMUDriverPtr driver, enum qemuMigrationCompletedFlags { QEMU_MIGRATION_COMPLETED_ABORT_ON_ERROR = (1 << 0), + /* This flag should only be set when run on src host */ QEMU_MIGRATION_COMPLETED_CHECK_STORAGE = (1 << 1), QEMU_MIGRATION_COMPLETED_POSTCOPY = (1 << 2), QEMU_MIGRATION_COMPLETED_PRE_SWITCHOVER = (1 << 3), @@ -1547,21 +1548,22 @@ enum qemuMigrationCompletedFlags { * -2 something else failed, we need to cancel migration. */ static int -qemuMigrationCompleted(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, - virConnectPtr dconn, - unsigned int flags) +qemuMigrationAnyCompleted(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob, + virConnectPtr dconn, + unsigned int flags) { qemuDomainObjPrivatePtr priv = vm->privateData; qemuDomainJobInfoPtr jobInfo = priv->job.current; int pauseReason; - if (qemuMigrationCheckJobStatus(driver, vm, asyncJob) < 0) + if (qemuMigrationJobCheckStatus(driver, vm, asyncJob) < 0) goto error; + /* This flag should only be set when run on src host */ if (flags & QEMU_MIGRATION_COMPLETED_CHECK_STORAGE && - qemuMigrationDriveMirrorReady(driver, vm, asyncJob) < 0) + qemuMigrationSrcDriveMirrorReady(driver, vm, asyncJob) < 0) goto error; if (flags & QEMU_MIGRATION_COMPLETED_ABORT_ON_ERROR && @@ -1637,11 +1639,11 @@ qemuMigrationCompleted(virQEMUDriverPtr driver, * QEMU reports failed migration. */ static int -qemuMigrationWaitForCompletion(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, - virConnectPtr dconn, - unsigned int flags) +qemuMigrationSrcWaitForCompletion(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob, + virConnectPtr dconn, + unsigned int flags) { qemuDomainObjPrivatePtr priv = vm->privateData; qemuDomainJobInfoPtr jobInfo = priv->job.current; @@ -1650,8 +1652,8 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver, jobInfo->status = QEMU_DOMAIN_JOB_STATUS_MIGRATING; - while ((rv = qemuMigrationCompleted(driver, vm, asyncJob, - dconn, flags)) != 1) { + while ((rv = qemuMigrationAnyCompleted(driver, vm, asyncJob, + dconn, flags)) != 1) { if (rv < 0) return rv; @@ -1671,7 +1673,7 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver, } if (events) - ignore_value(qemuMigrationFetchStats(driver, vm, asyncJob, jobInfo, NULL)); + ignore_value(qemuMigrationAnyFetchStats(driver, vm, asyncJob, jobInfo, NULL)); qemuDomainJobInfoUpdateTime(jobInfo); qemuDomainJobInfoUpdateDowntime(jobInfo); @@ -1690,10 +1692,10 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver, static int -qemuMigrationWaitForDestCompletion(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, - bool postcopy) +qemuMigrationDstWaitForCompletion(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob, + bool postcopy) { qemuDomainObjPrivatePtr priv = vm->privateData; unsigned int flags = 0; @@ -1707,8 +1709,8 @@ qemuMigrationWaitForDestCompletion(virQEMUDriverPtr driver, if (postcopy) flags = QEMU_MIGRATION_COMPLETED_POSTCOPY; - while ((rv = qemuMigrationCompleted(driver, vm, asyncJob, - NULL, flags)) != 1) { + while ((rv = qemuMigrationAnyCompleted(driver, vm, asyncJob, + NULL, flags)) != 1) { if (rv < 0 || virDomainObjWait(vm) < 0) return -1; } @@ -1718,10 +1720,10 @@ qemuMigrationWaitForDestCompletion(virQEMUDriverPtr driver, static int -qemuDomainMigrateGraphicsRelocate(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuMigrationCookiePtr cookie, - const char *graphicsuri) +qemuMigrationSrcGraphicsRelocate(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuMigrationCookiePtr cookie, + const char *graphicsuri) { qemuDomainObjPrivatePtr priv = vm->privateData; int ret = -1; @@ -1817,9 +1819,9 @@ qemuDomainMigrateGraphicsRelocate(virQEMUDriverPtr driver, static int -qemuDomainMigrateOPDRelocate(virQEMUDriverPtr driver ATTRIBUTE_UNUSED, - virDomainObjPtr vm, - qemuMigrationCookiePtr cookie) +qemuMigrationDstOPDRelocate(virQEMUDriverPtr driver ATTRIBUTE_UNUSED, + virDomainObjPtr vm, + qemuMigrationCookiePtr cookie) { virDomainNetDefPtr netptr; int ret = -1; @@ -1854,8 +1856,8 @@ qemuDomainMigrateOPDRelocate(virQEMUDriverPtr driver ATTRIBUTE_UNUSED, int -qemuMigrationCheckIncoming(virQEMUCapsPtr qemuCaps, - const char *migrateFrom) +qemuMigrationDstCheckProtocol(virQEMUCapsPtr qemuCaps, + const char *migrateFrom) { if (STRPREFIX(migrateFrom, "rdma")) { if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MIGRATE_RDMA)) { @@ -1879,8 +1881,8 @@ qemuMigrationCheckIncoming(virQEMUCapsPtr qemuCaps, char * -qemuMigrationIncomingURI(const char *migrateFrom, - int migrateFd) +qemuMigrationDstGetURI(const char *migrateFrom, + int migrateFd) { char *uri = NULL; @@ -1894,10 +1896,10 @@ qemuMigrationIncomingURI(const char *migrateFrom, int -qemuMigrationRunIncoming(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *uri, - qemuDomainAsyncJob asyncJob) +qemuMigrationDstRun(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *uri, + qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv = vm->privateData; int ret = -1; @@ -1914,12 +1916,12 @@ qemuMigrationRunIncoming(virQEMUDriverPtr driver, goto cleanup; if (asyncJob == QEMU_ASYNC_JOB_MIGRATION_IN) { - /* qemuMigrationWaitForDestCompletion is called from the Finish phase */ + /* qemuMigrationDstWaitForCompletion is called from the Finish phase */ ret = 0; goto cleanup; } - if (qemuMigrationWaitForDestCompletion(driver, vm, asyncJob, false) < 0) + if (qemuMigrationDstWaitForCompletion(driver, vm, asyncJob, false) < 0) goto cleanup; ret = 0; @@ -1936,9 +1938,9 @@ qemuMigrationRunIncoming(virQEMUDriverPtr driver, * qemuDomainMigratePerform3 and qemuDomainMigrateConfirm3. */ static virDomainObjPtr -qemuMigrationCleanup(virDomainObjPtr vm, - virConnectPtr conn, - void *opaque) +qemuMigrationSrcCleanup(virDomainObjPtr vm, + virConnectPtr conn, + void *opaque) { virQEMUDriverPtr driver = opaque; qemuDomainObjPrivatePtr priv = vm->privateData; @@ -1994,15 +1996,15 @@ qemuMigrationCleanup(virDomainObjPtr vm, /* The caller is supposed to lock the vm and start a migration job. */ static char * -qemuMigrationBeginPhase(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *xmlin, - const char *dname, - char **cookieout, - int *cookieoutlen, - size_t nmigrate_disks, - const char **migrate_disks, - unsigned long flags) +qemuMigrationSrcBeginPhase(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *xmlin, + const char *dname, + char **cookieout, + int *cookieoutlen, + size_t nmigrate_disks, + const char **migrate_disks, + unsigned long flags) { char *rv = NULL; qemuMigrationCookiePtr mig = NULL; @@ -2028,11 +2030,11 @@ qemuMigrationBeginPhase(virQEMUDriverPtr driver, if (priv->job.asyncJob == QEMU_ASYNC_JOB_MIGRATION_OUT) qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_BEGIN3); - if (!qemuMigrationIsAllowed(driver, vm, true, flags)) + if (!qemuMigrationSrcIsAllowed(driver, vm, true, flags)) goto cleanup; if (!(flags & (VIR_MIGRATE_UNSAFE | VIR_MIGRATE_OFFLINE)) && - !qemuMigrationIsSafe(vm->def, nmigrate_disks, migrate_disks, flags)) + !qemuMigrationSrcIsSafe(vm->def, nmigrate_disks, migrate_disks, flags)) goto cleanup; if (flags & VIR_MIGRATE_POSTCOPY && @@ -2164,15 +2166,15 @@ qemuMigrationBeginPhase(virQEMUDriverPtr driver, } char * -qemuMigrationBegin(virConnectPtr conn, - virDomainObjPtr vm, - const char *xmlin, - const char *dname, - char **cookieout, - int *cookieoutlen, - size_t nmigrate_disks, - const char **migrate_disks, - unsigned long flags) +qemuMigrationSrcBegin(virConnectPtr conn, + virDomainObjPtr vm, + const char *xmlin, + const char *dname, + char **cookieout, + int *cookieoutlen, + size_t nmigrate_disks, + const char **migrate_disks, + unsigned long flags) { virQEMUDriverPtr driver = conn->privateData; virQEMUDriverConfigPtr cfg = NULL; @@ -2189,7 +2191,7 @@ qemuMigrationBegin(virConnectPtr conn, asyncJob = QEMU_ASYNC_JOB_NONE; } - qemuMigrationStoreDomainState(vm); + qemuMigrationSrcStoreDomainState(vm); if (!virDomainObjIsActive(vm) && !(flags & VIR_MIGRATE_OFFLINE)) { virReportError(VIR_ERR_OPERATION_INVALID, @@ -2204,14 +2206,14 @@ qemuMigrationBegin(virConnectPtr conn, qemuProcessRefreshDisks(driver, vm, asyncJob) < 0) goto endjob; - if (!(xml = qemuMigrationBeginPhase(driver, vm, xmlin, dname, - cookieout, cookieoutlen, - nmigrate_disks, migrate_disks, flags))) + if (!(xml = qemuMigrationSrcBeginPhase(driver, vm, xmlin, dname, + cookieout, cookieoutlen, + nmigrate_disks, migrate_disks, flags))) goto endjob; if (flags & VIR_MIGRATE_TLS) { cfg = virQEMUDriverGetConfig(driver); - if (qemuMigrationCheckSetupTLS(driver, cfg, vm, asyncJob) < 0) + if (qemuMigrationParamsCheckSetupTLS(driver, cfg, vm, asyncJob) < 0) goto endjob; } @@ -2221,7 +2223,7 @@ qemuMigrationBegin(virConnectPtr conn, * place. */ if (virCloseCallbacksSet(driver->closeCallbacks, vm, conn, - qemuMigrationCleanup) < 0) { + qemuMigrationSrcCleanup) < 0) { VIR_FREE(xml); goto endjob; } @@ -2248,8 +2250,8 @@ qemuMigrationBegin(virConnectPtr conn, */ static void -qemuMigrationPrepareCleanup(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuMigrationDstPrepareCleanup(virQEMUDriverPtr driver, + virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv = vm->privateData; @@ -2268,12 +2270,12 @@ qemuMigrationPrepareCleanup(virQEMUDriverPtr driver, } static qemuProcessIncomingDefPtr -qemuMigrationPrepareIncoming(virDomainObjPtr vm, - bool tunnel, - const char *protocol, - const char *listenAddress, - unsigned short port, - int fd) +qemuMigrationDstPrepare(virDomainObjPtr vm, + bool tunnel, + const char *protocol, + const char *listenAddress, + unsigned short port, + int fd) { qemuDomainObjPrivatePtr priv = vm->privateData; qemuProcessIncomingDefPtr inc = NULL; @@ -2348,26 +2350,26 @@ qemuMigrationPrepareIncoming(virDomainObjPtr vm, } static int -qemuMigrationSetCompression(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob job, - qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams) +qemuMigrationParamsSetCompression(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob job, + qemuMigrationCompressionPtr compression, + qemuMonitorMigrationParamsPtr migParams) { int ret = -1; qemuDomainObjPrivatePtr priv = vm->privateData; - if (qemuMigrationSetOption(driver, vm, + if (qemuMigrationOptionSet(driver, vm, QEMU_MONITOR_MIGRATION_CAPS_XBZRLE, compression->methods & - (1ULL << QEMU_MIGRATION_COMPRESS_XBZRLE), + (1ULL << QEMU_MIGRATION_COMPRESS_XBZRLE), job) < 0) return -1; - if (qemuMigrationSetOption(driver, vm, + if (qemuMigrationOptionSet(driver, vm, QEMU_MONITOR_MIGRATION_CAPS_COMPRESS, compression->methods & - (1ULL << QEMU_MIGRATION_COMPRESS_MT), + (1ULL << QEMU_MIGRATION_COMPRESS_MT), job) < 0) return -1; @@ -2420,7 +2422,7 @@ qemuMigrationParamsFree(qemuMonitorMigrationParamsPtr *migParams) } -/* qemuMigrationSetEmptyTLSParams +/* qemuMigrationParamsSetEmptyTLS * @driver: pointer to qemu driver * @vm: domain object * @asyncJob: migration job to join @@ -2433,14 +2435,14 @@ qemuMigrationParamsFree(qemuMonitorMigrationParamsPtr *migParams) * Returns 0 on success, -1 on failure */ static int -qemuMigrationSetEmptyTLSParams(virQEMUDriverPtr driver, +qemuMigrationParamsSetEmptyTLS(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuDomainAsyncJob asyncJob, qemuMonitorMigrationParamsPtr migParams) { qemuDomainObjPrivatePtr priv = vm->privateData; - if (qemuMigrationCheckTLSCreds(driver, vm, asyncJob) < 0) + if (qemuMigrationParamsCheckTLSCreds(driver, vm, asyncJob) < 0) return -1; if (!priv->migTLSAlias) @@ -2501,7 +2503,7 @@ qemuMigrationParams(virTypedParameterPtr params, static int -qemuMigrationSetParams(virQEMUDriverPtr driver, +qemuMigrationParamsSet(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuDomainAsyncJob job, qemuMonitorMigrationParamsPtr migParams) @@ -2525,7 +2527,7 @@ qemuMigrationSetParams(virQEMUDriverPtr driver, } -/* qemuMigrationResetTLS +/* qemuMigrationParamsResetTLS * @driver: pointer to qemu driver * @vm: domain object * @asyncJob: migration job to join @@ -2536,9 +2538,9 @@ qemuMigrationSetParams(virQEMUDriverPtr driver, * Returns 0 on success, -1 on failure */ static int -qemuMigrationResetTLS(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob) +qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv = vm->privateData; char *tlsAlias = NULL; @@ -2546,7 +2548,7 @@ qemuMigrationResetTLS(virQEMUDriverPtr driver, qemuMonitorMigrationParams migParams = { 0 }; int ret = -1; - if (qemuMigrationCheckTLSCreds(driver, vm, asyncJob) < 0) + if (qemuMigrationParamsCheckTLSCreds(driver, vm, asyncJob) < 0) return -1; /* If the tls-creds doesn't exist or if they're set to "" then there's @@ -2565,7 +2567,7 @@ qemuMigrationResetTLS(virQEMUDriverPtr driver, if (VIR_STRDUP(migParams.tlsCreds, "") < 0 || VIR_STRDUP(migParams.tlsHostname, "") < 0 || - qemuMigrationSetParams(driver, vm, asyncJob, &migParams) < 0) + qemuMigrationParamsSet(driver, vm, asyncJob, &migParams) < 0) goto cleanup; ret = 0; @@ -2580,23 +2582,23 @@ qemuMigrationResetTLS(virQEMUDriverPtr driver, static int -qemuMigrationPrepareAny(virQEMUDriverPtr driver, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - virDomainDefPtr *def, - const char *origname, - virStreamPtr st, - const char *protocol, - unsigned short port, - bool autoPort, - const char *listenAddress, - size_t nmigrate_disks, - const char **migrate_disks, - int nbdPort, - qemuMigrationCompressionPtr compression, - unsigned long flags) +qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + virDomainDefPtr *def, + const char *origname, + virStreamPtr st, + const char *protocol, + unsigned short port, + bool autoPort, + const char *listenAddress, + size_t nmigrate_disks, + const char **migrate_disks, + int nbdPort, + qemuMigrationCompressionPtr compression, + unsigned long flags) { virDomainObjPtr vm = NULL; virObjectEventPtr event = NULL; @@ -2664,7 +2666,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, if (!(caps = virQEMUDriverGetCapabilities(driver, false))) goto cleanup; - if (!qemuMigrationIsAllowedHostdev(*def)) + if (!qemuMigrationSrcIsAllowedHostdev(*def)) goto cleanup; /* Let migration hook filter domain XML */ @@ -2748,9 +2750,9 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, goto cleanup; } - if (qemuMigrationPrecreateStorage(vm, mig->nbd, - nmigrate_disks, migrate_disks, - !!(flags & VIR_MIGRATE_NON_SHARED_INC)) < 0) + if (qemuMigrationDstPrecreateStorage(vm, mig->nbd, + nmigrate_disks, migrate_disks, + !!(flags & VIR_MIGRATE_NON_SHARED_INC)) < 0) goto cleanup; if (qemuMigrationJobStart(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN) < 0) @@ -2779,9 +2781,9 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, priv->allowReboot = mig->allowReboot; - if (!(incoming = qemuMigrationPrepareIncoming(vm, tunnel, protocol, - listenAddress, port, - dataFD[0]))) + if (!(incoming = qemuMigrationDstPrepare(vm, tunnel, protocol, + listenAddress, port, + dataFD[0]))) goto stopjob; if (qemuProcessPrepareDomain(driver, vm, startFlags) < 0) @@ -2810,21 +2812,21 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, dataFD[1] = -1; /* 'st' owns the FD now & will close it */ } - if (qemuMigrationSetCompression(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, - compression, &migParams) < 0) + if (qemuMigrationParamsSetCompression(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, + compression, &migParams) < 0) goto stopjob; /* Migrations using TLS need to add the "tls-creds-x509" object and * set the migration TLS parameters */ if (flags & VIR_MIGRATE_TLS) { cfg = virQEMUDriverGetConfig(driver); - if (qemuMigrationCheckSetupTLS(driver, cfg, vm, - QEMU_ASYNC_JOB_MIGRATION_IN) < 0) + if (qemuMigrationParamsCheckSetupTLS(driver, cfg, vm, + QEMU_ASYNC_JOB_MIGRATION_IN) < 0) goto stopjob; - if (qemuMigrationAddTLSObjects(driver, vm, cfg, true, - QEMU_ASYNC_JOB_MIGRATION_IN, - &tlsAlias, &secAlias, &migParams) < 0) + if (qemuMigrationParamsAddTLSObjects(driver, vm, cfg, true, + QEMU_ASYNC_JOB_MIGRATION_IN, + &tlsAlias, &secAlias, &migParams) < 0) goto stopjob; /* Force reset of 'tls-hostname', it's a source only parameter */ @@ -2832,7 +2834,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, goto stopjob; } else { - if (qemuMigrationSetEmptyTLSParams(driver, vm, + if (qemuMigrationParamsSetEmptyTLS(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, &migParams) < 0) goto stopjob; @@ -2843,27 +2845,27 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, goto stopjob; } - if (qemuMigrationSetOption(driver, vm, + if (qemuMigrationOptionSet(driver, vm, QEMU_MONITOR_MIGRATION_CAPS_RDMA_PIN_ALL, flags & VIR_MIGRATE_RDMA_PIN_ALL, QEMU_ASYNC_JOB_MIGRATION_IN) < 0) goto stopjob; - if (qemuMigrationSetPostCopy(driver, vm, - flags & VIR_MIGRATE_POSTCOPY, - QEMU_ASYNC_JOB_MIGRATION_IN) < 0) + if (qemuMigrationOptionSetPostCopy(driver, vm, + flags & VIR_MIGRATE_POSTCOPY, + QEMU_ASYNC_JOB_MIGRATION_IN) < 0) goto stopjob; - if (qemuMigrationSetParams(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, + if (qemuMigrationParamsSet(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, &migParams) < 0) goto stopjob; if (mig->nbd && flags & (VIR_MIGRATE_NON_SHARED_DISK | VIR_MIGRATE_NON_SHARED_INC) && virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NBD_SERVER)) { - if (qemuMigrationStartNBDServer(driver, vm, incoming->address, - nmigrate_disks, migrate_disks, - nbdPort) < 0) { + if (qemuMigrationDstStartNBDServer(driver, vm, incoming->address, + nmigrate_disks, migrate_disks, + nbdPort) < 0) { goto stopjob; } cookieFlags |= QEMU_MIGRATION_COOKIE_NBD; @@ -2879,8 +2881,8 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, } if (incoming->deferredURI && - qemuMigrationRunIncoming(driver, vm, incoming->deferredURI, - QEMU_ASYNC_JOB_MIGRATION_IN) < 0) + qemuMigrationDstRun(driver, vm, incoming->deferredURI, + QEMU_ASYNC_JOB_MIGRATION_IN) < 0) goto stopjob; if (qemuProcessFinishStartup(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, @@ -2897,7 +2899,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, VIR_WARN("Unable to encode migration cookie"); } - if (qemuDomainCleanupAdd(vm, qemuMigrationPrepareCleanup) < 0) + if (qemuDomainCleanupAdd(vm, qemuMigrationDstPrepareCleanup) < 0) goto stopjob; if (!(flags & VIR_MIGRATE_OFFLINE)) { @@ -2952,7 +2954,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, return ret; stopjob: - qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN); + qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN); if (stopProcess) { unsigned int stopFlags = VIR_QEMU_PROCESS_STOP_MIGRATED; @@ -2973,15 +2975,15 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, * sets up the corresponding virStream to handle the incoming data. */ int -qemuMigrationPrepareTunnel(virQEMUDriverPtr driver, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - virStreamPtr st, - virDomainDefPtr *def, - const char *origname, - unsigned long flags) +qemuMigrationDstPrepareTunnel(virQEMUDriverPtr driver, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + virStreamPtr st, + virDomainDefPtr *def, + const char *origname, + unsigned long flags) { qemuMigrationCompressionPtr compression = NULL; int ret; @@ -2998,20 +3000,20 @@ qemuMigrationPrepareTunnel(virQEMUDriverPtr driver, return -1; } - if (!(compression = qemuMigrationCompressionParse(NULL, 0, flags))) + if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags))) return -1; - ret = qemuMigrationPrepareAny(driver, cookiein, cookieinlen, - cookieout, cookieoutlen, def, origname, - st, NULL, 0, false, NULL, 0, NULL, 0, - compression, flags); + ret = qemuMigrationDstPrepareAny(driver, cookiein, cookieinlen, + cookieout, cookieoutlen, def, origname, + st, NULL, 0, false, NULL, 0, NULL, 0, + compression, flags); VIR_FREE(compression); return ret; } static virURIPtr -qemuMigrationParseURI(const char *uri, bool *wellFormed) +qemuMigrationAnyParseURI(const char *uri, bool *wellFormed) { char *tmp = NULL; virURIPtr parsed; @@ -3034,21 +3036,21 @@ qemuMigrationParseURI(const char *uri, bool *wellFormed) int -qemuMigrationPrepareDirect(virQEMUDriverPtr driver, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - const char *uri_in, - char **uri_out, - virDomainDefPtr *def, - const char *origname, - const char *listenAddress, - size_t nmigrate_disks, - const char **migrate_disks, - int nbdPort, - qemuMigrationCompressionPtr compression, - unsigned long flags) +qemuMigrationDstPrepareDirect(virQEMUDriverPtr driver, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + const char *uri_in, + char **uri_out, + virDomainDefPtr *def, + const char *origname, + const char *listenAddress, + size_t nmigrate_disks, + const char **migrate_disks, + int nbdPort, + qemuMigrationCompressionPtr compression, + unsigned long flags) { unsigned short port = 0; bool autoPort = true; @@ -3120,7 +3122,7 @@ qemuMigrationPrepareDirect(virQEMUDriverPtr driver, } else { bool well_formed_uri; - if (!(uri = qemuMigrationParseURI(uri_in, &well_formed_uri))) + if (!(uri = qemuMigrationAnyParseURI(uri_in, &well_formed_uri))) goto cleanup; if (uri->scheme == NULL) { @@ -3166,12 +3168,12 @@ qemuMigrationPrepareDirect(virQEMUDriverPtr driver, if (*uri_out) VIR_DEBUG("Generated uri_out=%s", *uri_out); - ret = qemuMigrationPrepareAny(driver, cookiein, cookieinlen, - cookieout, cookieoutlen, def, origname, - NULL, uri ? uri->scheme : "tcp", - port, autoPort, listenAddress, - nmigrate_disks, migrate_disks, nbdPort, - compression, flags); + ret = qemuMigrationDstPrepareAny(driver, cookiein, cookieinlen, + cookieout, cookieoutlen, def, origname, + NULL, uri ? uri->scheme : "tcp", + port, autoPort, listenAddress, + nmigrate_disks, migrate_disks, nbdPort, + compression, flags); cleanup: virURIFree(uri); VIR_FREE(hostname); @@ -3186,10 +3188,10 @@ qemuMigrationPrepareDirect(virQEMUDriverPtr driver, virDomainDefPtr -qemuMigrationPrepareDef(virQEMUDriverPtr driver, - const char *dom_xml, - const char *dname, - char **origname) +qemuMigrationAnyPrepareDef(virQEMUDriverPtr driver, + const char *dom_xml, + const char *dname, + char **origname) { virCapsPtr caps = NULL; virDomainDefPtr def; @@ -3228,12 +3230,12 @@ qemuMigrationPrepareDef(virQEMUDriverPtr driver, static int -qemuMigrationConfirmPhase(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *cookiein, - int cookieinlen, - unsigned int flags, - int retcode) +qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *cookiein, + int cookieinlen, + unsigned int flags, + int retcode) { qemuMigrationCookiePtr mig; virObjectEventPtr event; @@ -3273,8 +3275,8 @@ qemuMigrationConfirmPhase(virQEMUDriverPtr driver, */ if (virDomainObjGetState(vm, &reason) == VIR_DOMAIN_PAUSED && reason == VIR_DOMAIN_PAUSED_POSTCOPY && - qemuMigrationFetchStats(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, - jobInfo, NULL) < 0) + qemuMigrationAnyFetchStats(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + jobInfo, NULL) < 0) VIR_WARN("Could not refresh migration statistics"); qemuDomainJobInfoUpdateTime(jobInfo); @@ -3293,7 +3295,7 @@ qemuMigrationConfirmPhase(virQEMUDriverPtr driver, if (retcode == 0) { /* If guest uses SPICE and supports seamless migration we have to hold * up domain shutdown until SPICE server transfers its data */ - qemuMigrationWaitForSpice(vm); + qemuMigrationSrcWaitForSpice(vm); qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_MIGRATED, QEMU_ASYNC_JOB_MIGRATION_OUT, @@ -3310,23 +3312,23 @@ qemuMigrationConfirmPhase(virQEMUDriverPtr driver, int reason; /* cancel any outstanding NBD jobs */ - qemuMigrationCancelDriveMirror(driver, vm, false, - QEMU_ASYNC_JOB_MIGRATION_OUT, NULL); + qemuMigrationSrcCancelDriveMirror(driver, vm, false, + QEMU_ASYNC_JOB_MIGRATION_OUT, NULL); virSetError(orig_err); virFreeError(orig_err); if (virDomainObjGetState(vm, &reason) == VIR_DOMAIN_PAUSED && reason == VIR_DOMAIN_PAUSED_POSTCOPY) { - qemuMigrationPostcopyFailed(driver, vm); - } else if (qemuMigrationRestoreDomainState(driver, vm)) { + qemuMigrationAnyPostcopyFailed(driver, vm); + } else if (qemuMigrationSrcRestoreDomainState(driver, vm)) { event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_RESUMED, VIR_DOMAIN_EVENT_RESUMED_MIGRATED); qemuDomainEventQueue(driver, event); } - qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT); + qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT); if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) VIR_WARN("Failed to save status on vm %s", vm->def->name); @@ -3342,12 +3344,12 @@ qemuMigrationConfirmPhase(virQEMUDriverPtr driver, } int -qemuMigrationConfirm(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *cookiein, - int cookieinlen, - unsigned int flags, - int cancelled) +qemuMigrationSrcConfirm(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *cookiein, + int cookieinlen, + unsigned int flags, + int cancelled) { qemuMigrationJobPhase phase; virQEMUDriverConfigPtr cfg = NULL; @@ -3365,11 +3367,11 @@ qemuMigrationConfirm(virQEMUDriverPtr driver, qemuMigrationJobStartPhase(driver, vm, phase); virCloseCallbacksUnset(driver->closeCallbacks, vm, - qemuMigrationCleanup); + qemuMigrationSrcCleanup); - ret = qemuMigrationConfirmPhase(driver, vm, - cookiein, cookieinlen, - flags, cancelled); + ret = qemuMigrationSrcConfirmPhase(driver, vm, + cookiein, cookieinlen, + flags, cancelled); qemuMigrationJobFinish(driver, vm); if (!virDomainObjIsActive(vm)) { @@ -3434,7 +3436,7 @@ struct _qemuMigrationIOThread { int wakeupSendFD; }; -static void qemuMigrationIOFunc(void *arg) +static void qemuMigrationSrcIOFunc(void *arg) { qemuMigrationIOThreadPtr data = arg; char *buffer = NULL; @@ -3544,8 +3546,8 @@ static void qemuMigrationIOFunc(void *arg) static qemuMigrationIOThreadPtr -qemuMigrationStartTunnel(virStreamPtr st, - int sock) +qemuMigrationSrcStartTunnel(virStreamPtr st, + int sock) { qemuMigrationIOThreadPtr io = NULL; int wakeupFD[2] = { -1, -1 }; @@ -3565,7 +3567,7 @@ qemuMigrationStartTunnel(virStreamPtr st, io->wakeupSendFD = wakeupFD[1]; if (virThreadCreate(&io->thread, true, - qemuMigrationIOFunc, + qemuMigrationSrcIOFunc, io) < 0) { virReportSystemError(errno, "%s", _("Unable to create migration thread")); @@ -3582,7 +3584,7 @@ qemuMigrationStartTunnel(virStreamPtr st, } static int -qemuMigrationStopTunnel(qemuMigrationIOThreadPtr io, bool error) +qemuMigrationSrcStopTunnel(qemuMigrationIOThreadPtr io, bool error) { int rv = -1; char stop = error ? 1 : 0; @@ -3616,9 +3618,9 @@ qemuMigrationStopTunnel(qemuMigrationIOThreadPtr io, bool error) } static int -qemuMigrationConnect(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuMigrationSpecPtr spec) +qemuMigrationSrcConnect(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuMigrationSpecPtr spec) { virNetSocketPtr sock; const char *host; @@ -3662,10 +3664,10 @@ qemuMigrationConnect(virQEMUDriverPtr driver, static int -qemuMigrationContinue(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuMonitorMigrationStatus status, - qemuDomainAsyncJob asyncJob) +qemuMigrationSrcContinue(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuMonitorMigrationStatus status, + qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv = vm->privateData; int ret; @@ -3683,22 +3685,22 @@ qemuMigrationContinue(virQEMUDriverPtr driver, static int -qemuMigrationRun(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *persist_xml, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - unsigned long flags, - unsigned long resource, - qemuMigrationSpecPtr spec, - virConnectPtr dconn, - const char *graphicsuri, - size_t nmigrate_disks, - const char **migrate_disks, - qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams) +qemuMigrationSrcRun(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *persist_xml, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + unsigned long flags, + unsigned long resource, + qemuMigrationSpecPtr spec, + virConnectPtr dconn, + const char *graphicsuri, + size_t nmigrate_disks, + const char **migrate_disks, + qemuMigrationCompressionPtr compression, + qemuMonitorMigrationParamsPtr migParams) { int ret = -1; unsigned int migrate_flags = QEMU_MONITOR_MIGRATE_BACKGROUND; @@ -3753,8 +3755,8 @@ qemuMigrationRun(virQEMUDriverPtr driver, if (flags & VIR_MIGRATE_PERSIST_DEST) { if (persist_xml) { - if (!(persistDef = qemuMigrationPrepareDef(driver, persist_xml, - NULL, NULL))) + if (!(persistDef = qemuMigrationAnyPrepareDef(driver, persist_xml, + NULL, NULL))) goto error; } else { virDomainDefPtr def = vm->newDef ? vm->newDef : vm->def; @@ -3770,7 +3772,7 @@ qemuMigrationRun(virQEMUDriverPtr driver, if (!mig) goto error; - if (qemuDomainMigrateGraphicsRelocate(driver, vm, mig, graphicsuri) < 0) + if (qemuMigrationSrcGraphicsRelocate(driver, vm, mig, graphicsuri) < 0) VIR_WARN("unable to provide data for graphics client relocation"); if (flags & VIR_MIGRATE_TLS) { @@ -3778,9 +3780,9 @@ qemuMigrationRun(virQEMUDriverPtr driver, /* Begin/CheckSetupTLS already set up migTLSAlias, the following * assumes that and adds the TLS objects to the domain. */ - if (qemuMigrationAddTLSObjects(driver, vm, cfg, false, - QEMU_ASYNC_JOB_MIGRATION_OUT, - &tlsAlias, &secAlias, migParams) < 0) + if (qemuMigrationParamsAddTLSObjects(driver, vm, cfg, false, + QEMU_ASYNC_JOB_MIGRATION_OUT, + &tlsAlias, &secAlias, migParams) < 0) goto error; /* We need to add tls-hostname whenever QEMU itself does not @@ -3795,7 +3797,7 @@ qemuMigrationRun(virQEMUDriverPtr driver, goto error; } } else { - if (qemuMigrationSetEmptyTLSParams(driver, vm, + if (qemuMigrationParamsSetEmptyTLS(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, migParams) < 0) goto error; @@ -3805,13 +3807,13 @@ qemuMigrationRun(virQEMUDriverPtr driver, QEMU_MONITOR_MIGRATE_NON_SHARED_INC)) { if (mig->nbd) { /* This will update migrate_flags on success */ - if (qemuMigrationDriveMirror(driver, vm, mig, - spec->dest.host.name, - migrate_speed, - &migrate_flags, - nmigrate_disks, - migrate_disks, - dconn) < 0) { + if (qemuMigrationSrcDriveMirror(driver, vm, mig, + spec->dest.host.name, + migrate_speed, + &migrate_flags, + nmigrate_disks, + migrate_disks, + dconn) < 0) { goto error; } } else { @@ -3825,38 +3827,38 @@ qemuMigrationRun(virQEMUDriverPtr driver, /* Before EnterMonitor, since qemuMigrationSetOffline already does that */ if (!(flags & VIR_MIGRATE_LIVE) && virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) { - if (qemuMigrationSetOffline(driver, vm) < 0) + if (qemuMigrationSrcSetOffline(driver, vm) < 0) goto error; } - if (qemuMigrationSetCompression(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, - compression, migParams) < 0) + if (qemuMigrationParamsSetCompression(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + compression, migParams) < 0) goto error; - if (qemuMigrationSetOption(driver, vm, + if (qemuMigrationOptionSet(driver, vm, QEMU_MONITOR_MIGRATION_CAPS_AUTO_CONVERGE, flags & VIR_MIGRATE_AUTO_CONVERGE, QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) goto error; - if (qemuMigrationSetOption(driver, vm, + if (qemuMigrationOptionSet(driver, vm, QEMU_MONITOR_MIGRATION_CAPS_RDMA_PIN_ALL, flags & VIR_MIGRATE_RDMA_PIN_ALL, QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) goto error; - if (qemuMigrationSetPostCopy(driver, vm, - flags & VIR_MIGRATE_POSTCOPY, - QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) + if (qemuMigrationOptionSetPostCopy(driver, vm, + flags & VIR_MIGRATE_POSTCOPY, + QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) goto error; - if (qemuMigrationCapsGet(vm, QEMU_MONITOR_MIGRATION_CAPS_PAUSE_BEFORE_SWITCHOVER) && - qemuMigrationSetOption(driver, vm, + if (qemuMigrationAnyCapsGet(vm, QEMU_MONITOR_MIGRATION_CAPS_PAUSE_BEFORE_SWITCHOVER) && + qemuMigrationOptionSet(driver, vm, QEMU_MONITOR_MIGRATION_CAPS_PAUSE_BEFORE_SWITCHOVER, true, QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) goto error; - if (qemuMigrationSetParams(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, + if (qemuMigrationParamsSet(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, migParams) < 0) goto error; @@ -3880,7 +3882,7 @@ qemuMigrationRun(virQEMUDriverPtr driver, /* connect to the destination qemu if needed */ if (spec->destType == MIGRATION_DEST_CONNECT_HOST && - qemuMigrationConnect(driver, vm, spec) < 0) { + qemuMigrationSrcConnect(driver, vm, spec) < 0) { goto exit_monitor; } @@ -3926,7 +3928,7 @@ qemuMigrationRun(virQEMUDriverPtr driver, cancel = true; if (spec->fwdType != MIGRATION_FWD_DIRECT) { - if (!(iothread = qemuMigrationStartTunnel(spec->fwd.stream, fd))) + if (!(iothread = qemuMigrationSrcStartTunnel(spec->fwd.stream, fd))) goto error; /* If we've created a tunnel, then the 'fd' will be closed in the * qemuMigrationIOFunc as data->sock. @@ -3942,9 +3944,9 @@ qemuMigrationRun(virQEMUDriverPtr driver, if (flags & VIR_MIGRATE_POSTCOPY) waitFlags |= QEMU_MIGRATION_COMPLETED_POSTCOPY; - rc = qemuMigrationWaitForCompletion(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_OUT, - dconn, waitFlags); + rc = qemuMigrationSrcWaitForCompletion(driver, vm, + QEMU_ASYNC_JOB_MIGRATION_OUT, + dconn, waitFlags); if (rc == -2) { goto error; } else if (rc == -1) { @@ -3966,14 +3968,14 @@ qemuMigrationRun(virQEMUDriverPtr driver, goto error; } } else if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING && - qemuMigrationSetOffline(driver, vm) < 0) { + qemuMigrationSrcSetOffline(driver, vm) < 0) { goto error; } if (mig && mig->nbd && - qemuMigrationCancelDriveMirror(driver, vm, true, - QEMU_ASYNC_JOB_MIGRATION_OUT, - dconn) < 0) + qemuMigrationSrcCancelDriveMirror(driver, vm, true, + QEMU_ASYNC_JOB_MIGRATION_OUT, + dconn) < 0) goto error; /* When migration was paused before serializing device state we need to @@ -3981,16 +3983,16 @@ qemuMigrationRun(virQEMUDriverPtr driver, * end of the migration. */ if (priv->job.current->status == QEMU_DOMAIN_JOB_STATUS_PAUSED) { - if (qemuMigrationContinue(driver, vm, - QEMU_MONITOR_MIGRATION_STATUS_PRE_SWITCHOVER, - QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) + if (qemuMigrationSrcContinue(driver, vm, + QEMU_MONITOR_MIGRATION_STATUS_PRE_SWITCHOVER, + QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) goto error; waitFlags ^= QEMU_MIGRATION_COMPLETED_PRE_SWITCHOVER; - rc = qemuMigrationWaitForCompletion(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_OUT, - dconn, waitFlags); + rc = qemuMigrationSrcWaitForCompletion(driver, vm, + QEMU_ASYNC_JOB_MIGRATION_OUT, + dconn, waitFlags); if (rc == -2) { goto error; } else if (rc == -1) { @@ -4004,7 +4006,7 @@ qemuMigrationRun(virQEMUDriverPtr driver, qemuMigrationIOThreadPtr io; VIR_STEAL_PTR(io, iothread); - if (qemuMigrationStopTunnel(io, false) < 0) + if (qemuMigrationSrcStopTunnel(io, false) < 0) goto error; } @@ -4058,12 +4060,12 @@ qemuMigrationRun(virQEMUDriverPtr driver, /* cancel any outstanding NBD jobs */ if (mig && mig->nbd) - qemuMigrationCancelDriveMirror(driver, vm, false, - QEMU_ASYNC_JOB_MIGRATION_OUT, - dconn); + qemuMigrationSrcCancelDriveMirror(driver, vm, false, + QEMU_ASYNC_JOB_MIGRATION_OUT, + dconn); if (iothread) - qemuMigrationStopTunnel(iothread, true); + qemuMigrationSrcStopTunnel(iothread, true); if (priv->job.current->status != QEMU_DOMAIN_JOB_STATUS_CANCELED) priv->job.current->status = QEMU_DOMAIN_JOB_STATUS_FAILED; @@ -4078,22 +4080,23 @@ qemuMigrationRun(virQEMUDriverPtr driver, /* Perform migration using QEMU's native migrate support, * not encrypted obviously */ -static int doNativeMigrate(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *persist_xml, - const char *uri, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - unsigned long flags, - unsigned long resource, - virConnectPtr dconn, - const char *graphicsuri, - size_t nmigrate_disks, - const char **migrate_disks, - qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams) +static int +qemuMigrationSrcPerformNative(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *persist_xml, + const char *uri, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + unsigned long flags, + unsigned long resource, + virConnectPtr dconn, + const char *graphicsuri, + size_t nmigrate_disks, + const char **migrate_disks, + qemuMigrationCompressionPtr compression, + qemuMonitorMigrationParamsPtr migParams) { qemuDomainObjPrivatePtr priv = vm->privateData; virURIPtr uribits = NULL; @@ -4107,7 +4110,7 @@ static int doNativeMigrate(virQEMUDriverPtr driver, cookieout, cookieoutlen, flags, resource, NULLSTR(graphicsuri), nmigrate_disks, migrate_disks); - if (!(uribits = qemuMigrationParseURI(uri, NULL))) + if (!(uribits = qemuMigrationAnyParseURI(uri, NULL))) return -1; if (uribits->scheme == NULL) { @@ -4141,10 +4144,10 @@ static int doNativeMigrate(virQEMUDriverPtr driver, spec.dest.host.port = uribits->port; spec.fwdType = MIGRATION_FWD_DIRECT; - ret = qemuMigrationRun(driver, vm, persist_xml, cookiein, cookieinlen, cookieout, - cookieoutlen, flags, resource, &spec, dconn, - graphicsuri, nmigrate_disks, migrate_disks, - compression, migParams); + ret = qemuMigrationSrcRun(driver, vm, persist_xml, cookiein, cookieinlen, cookieout, + cookieoutlen, flags, resource, &spec, dconn, + graphicsuri, nmigrate_disks, migrate_disks, + compression, migParams); if (spec.destType == MIGRATION_DEST_FD) VIR_FORCE_CLOSE(spec.dest.fd.qemu); @@ -4156,22 +4159,23 @@ static int doNativeMigrate(virQEMUDriverPtr driver, } -static int doTunnelMigrate(virQEMUDriverPtr driver, - virDomainObjPtr vm, - virStreamPtr st, - const char *persist_xml, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - unsigned long flags, - unsigned long resource, - virConnectPtr dconn, - const char *graphicsuri, - size_t nmigrate_disks, - const char **migrate_disks, - qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams) +static int +qemuMigrationSrcPerformTunnel(virQEMUDriverPtr driver, + virDomainObjPtr vm, + virStreamPtr st, + const char *persist_xml, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + unsigned long flags, + unsigned long resource, + virConnectPtr dconn, + const char *graphicsuri, + size_t nmigrate_disks, + const char **migrate_disks, + qemuMigrationCompressionPtr compression, + qemuMonitorMigrationParamsPtr migParams) { int ret = -1; qemuMigrationSpec spec; @@ -4205,10 +4209,10 @@ static int doTunnelMigrate(virQEMUDriverPtr driver, goto cleanup; } - ret = qemuMigrationRun(driver, vm, persist_xml, cookiein, cookieinlen, - cookieout, cookieoutlen, flags, resource, &spec, - dconn, graphicsuri, nmigrate_disks, migrate_disks, - compression, migParams); + ret = qemuMigrationSrcRun(driver, vm, persist_xml, cookiein, cookieinlen, + cookieout, cookieoutlen, flags, resource, &spec, + dconn, graphicsuri, nmigrate_disks, migrate_disks, + compression, migParams); cleanup: VIR_FORCE_CLOSE(spec.dest.fd.qemu); @@ -4223,14 +4227,15 @@ static int doTunnelMigrate(virQEMUDriverPtr driver, * from libvirt.c, but running in source libvirtd context, * instead of client app context & also adding in tunnel * handling */ -static int doPeer2PeerMigrate2(virQEMUDriverPtr driver, - virConnectPtr sconn, - virConnectPtr dconn, - virDomainObjPtr vm, - const char *dconnuri, - unsigned long flags, - const char *dname, - unsigned long resource) +static int +qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr driver, + virConnectPtr sconn, + virConnectPtr dconn, + virDomainObjPtr vm, + const char *dconnuri, + unsigned long flags, + const char *dname, + unsigned long resource) { virDomainPtr ddomain = NULL; char *uri_out = NULL; @@ -4264,7 +4269,7 @@ static int doPeer2PeerMigrate2(virQEMUDriverPtr driver, destflags = flags & ~(VIR_MIGRATE_ABORT_ON_ERROR | VIR_MIGRATE_AUTO_CONVERGE); - if (!(compression = qemuMigrationCompressionParse(NULL, 0, flags))) + if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags))) goto cleanup; VIR_DEBUG("Prepare2 %p", dconn); @@ -4316,16 +4321,16 @@ static int doPeer2PeerMigrate2(virQEMUDriverPtr driver, VIR_DEBUG("Perform %p", sconn); qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM2); if (flags & VIR_MIGRATE_TUNNELLED) - ret = doTunnelMigrate(driver, vm, st, NULL, - NULL, 0, NULL, NULL, - flags, resource, dconn, - NULL, 0, NULL, compression, &migParams); + ret = qemuMigrationSrcPerformTunnel(driver, vm, st, NULL, + NULL, 0, NULL, NULL, + flags, resource, dconn, + NULL, 0, NULL, compression, &migParams); else - ret = doNativeMigrate(driver, vm, NULL, uri_out, - cookie, cookielen, - NULL, NULL, /* No out cookie with v2 migration */ - flags, resource, dconn, NULL, 0, NULL, - compression, &migParams); + ret = qemuMigrationSrcPerformNative(driver, vm, NULL, uri_out, + cookie, cookielen, + NULL, NULL, /* No out cookie with v2 migration */ + flags, resource, dconn, NULL, 0, NULL, + compression, &migParams); /* Perform failed. Make sure Finish doesn't overwrite the error */ if (ret < 0) @@ -4379,25 +4384,25 @@ static int doPeer2PeerMigrate2(virQEMUDriverPtr driver, * instead of client app context & also adding in tunnel * handling */ static int -doPeer2PeerMigrate3(virQEMUDriverPtr driver, - virConnectPtr sconn, - virConnectPtr dconn, - const char *dconnuri, - virDomainObjPtr vm, - const char *xmlin, - const char *persist_xml, - const char *dname, - const char *uri, - const char *graphicsuri, - const char *listenAddress, - size_t nmigrate_disks, - const char **migrate_disks, - int nbdPort, - qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, - unsigned long long bandwidth, - bool useParams, - unsigned long flags) +qemuMigrationSrcPerformPeer2Peer3(virQEMUDriverPtr driver, + virConnectPtr sconn, + virConnectPtr dconn, + const char *dconnuri, + virDomainObjPtr vm, + const char *xmlin, + const char *persist_xml, + const char *dname, + const char *uri, + const char *graphicsuri, + const char *listenAddress, + size_t nmigrate_disks, + const char **migrate_disks, + int nbdPort, + qemuMigrationCompressionPtr compression, + qemuMonitorMigrationParamsPtr migParams, + unsigned long long bandwidth, + bool useParams, + unsigned long flags) { virDomainPtr ddomain = NULL; char *uri_out = NULL; @@ -4430,9 +4435,9 @@ doPeer2PeerMigrate3(virQEMUDriverPtr driver, * bit here, because we are already running inside the context of * a single job. */ - dom_xml = qemuMigrationBeginPhase(driver, vm, xmlin, dname, - &cookieout, &cookieoutlen, - nmigrate_disks, migrate_disks, flags); + dom_xml = qemuMigrationSrcBeginPhase(driver, vm, xmlin, dname, + &cookieout, &cookieoutlen, + nmigrate_disks, migrate_disks, flags); if (!dom_xml) goto cleanup; @@ -4478,8 +4483,8 @@ doPeer2PeerMigrate3(virQEMUDriverPtr driver, nbdPort) < 0) goto cleanup; - if (qemuMigrationCompressionDump(compression, ¶ms, &nparams, - &maxparams, &flags) < 0) + if (qemuMigrationAnyCompressionDump(compression, ¶ms, &nparams, + &maxparams, &flags) < 0) goto cleanup; } @@ -4562,19 +4567,19 @@ doPeer2PeerMigrate3(virQEMUDriverPtr driver, cookieout = NULL; cookieoutlen = 0; if (flags & VIR_MIGRATE_TUNNELLED) { - ret = doTunnelMigrate(driver, vm, st, persist_xml, - cookiein, cookieinlen, - &cookieout, &cookieoutlen, - flags, bandwidth, dconn, graphicsuri, - nmigrate_disks, migrate_disks, compression, - migParams); + ret = qemuMigrationSrcPerformTunnel(driver, vm, st, persist_xml, + cookiein, cookieinlen, + &cookieout, &cookieoutlen, + flags, bandwidth, dconn, graphicsuri, + nmigrate_disks, migrate_disks, compression, + migParams); } else { - ret = doNativeMigrate(driver, vm, persist_xml, uri, - cookiein, cookieinlen, - &cookieout, &cookieoutlen, - flags, bandwidth, dconn, graphicsuri, - nmigrate_disks, migrate_disks, compression, - migParams); + ret = qemuMigrationSrcPerformNative(driver, vm, persist_xml, uri, + cookiein, cookieinlen, + &cookieout, &cookieoutlen, + flags, bandwidth, dconn, graphicsuri, + nmigrate_disks, migrate_disks, compression, + migParams); } /* Perform failed. Make sure Finish doesn't overwrite the error */ @@ -4682,9 +4687,9 @@ doPeer2PeerMigrate3(virQEMUDriverPtr driver, cookieinlen = cookieoutlen; cookieout = NULL; cookieoutlen = 0; - ret = qemuMigrationConfirmPhase(driver, vm, - cookiein, cookieinlen, - flags, cancelled); + ret = qemuMigrationSrcConfirmPhase(driver, vm, + cookiein, cookieinlen, + flags, cancelled); /* If Confirm3 returns -1, there's nothing more we can * do, but fortunately worst case is that there is a * domain left in 'paused' state on source. @@ -4716,9 +4721,9 @@ doPeer2PeerMigrate3(virQEMUDriverPtr driver, static void -qemuMigrationConnectionClosed(virConnectPtr conn, - int reason, - void *opaque) +qemuMigrationSrcConnectionClosed(virConnectPtr conn, + int reason, + void *opaque) { virDomainObjPtr vm = opaque; @@ -4739,24 +4744,25 @@ static virConnectAuth virConnectAuthConfig = { }; -static int doPeer2PeerMigrate(virQEMUDriverPtr driver, - virConnectPtr sconn, - virDomainObjPtr vm, - const char *xmlin, - const char *persist_xml, - const char *dconnuri, - const char *uri, - const char *graphicsuri, - const char *listenAddress, - size_t nmigrate_disks, - const char **migrate_disks, - int nbdPort, - qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, - unsigned long flags, - const char *dname, - unsigned long resource, - bool *v3proto) +static int +qemuMigrationSrcPerformPeer2Peer(virQEMUDriverPtr driver, + virConnectPtr sconn, + virDomainObjPtr vm, + const char *xmlin, + const char *persist_xml, + const char *dconnuri, + const char *uri, + const char *graphicsuri, + const char *listenAddress, + size_t nmigrate_disks, + const char **migrate_disks, + int nbdPort, + qemuMigrationCompressionPtr compression, + qemuMonitorMigrationParamsPtr migParams, + unsigned long flags, + const char *dname, + unsigned long resource, + bool *v3proto) { int ret = -1; virConnectPtr dconn = NULL; @@ -4815,7 +4821,7 @@ static int doPeer2PeerMigrate(virQEMUDriverPtr driver, cfg->keepAliveCount) < 0) goto cleanup; - if (virConnectRegisterCloseCallback(dconn, qemuMigrationConnectionClosed, + if (virConnectRegisterCloseCallback(dconn, qemuMigrationSrcConnectionClosed, vm, NULL) < 0) { goto cleanup; } @@ -4873,20 +4879,20 @@ static int doPeer2PeerMigrate(virQEMUDriverPtr driver, flags &= ~VIR_MIGRATE_CHANGE_PROTECTION; if (*v3proto) { - ret = doPeer2PeerMigrate3(driver, sconn, dconn, dconnuri, vm, xmlin, - persist_xml, dname, uri, graphicsuri, - listenAddress, nmigrate_disks, migrate_disks, - nbdPort, compression, migParams, resource, - useParams, flags); + ret = qemuMigrationSrcPerformPeer2Peer3(driver, sconn, dconn, dconnuri, vm, xmlin, + persist_xml, dname, uri, graphicsuri, + listenAddress, nmigrate_disks, migrate_disks, + nbdPort, compression, migParams, resource, + useParams, flags); } else { - ret = doPeer2PeerMigrate2(driver, sconn, dconn, vm, - dconnuri, flags, dname, resource); + ret = qemuMigrationSrcPerformPeer2Peer2(driver, sconn, dconn, vm, + dconnuri, flags, dname, resource); } cleanup: orig_err = virSaveLastError(); qemuDomainObjEnterRemote(vm); - virConnectUnregisterCloseCallback(dconn, qemuMigrationConnectionClosed); + virConnectUnregisterCloseCallback(dconn, qemuMigrationSrcConnectionClosed); virObjectUnref(dconn); qemuDomainObjExitRemote(vm); if (orig_err) { @@ -4904,28 +4910,28 @@ static int doPeer2PeerMigrate(virQEMUDriverPtr driver, * perform phase of v2 non-peer2peer migration. */ static int -qemuMigrationPerformJob(virQEMUDriverPtr driver, - virConnectPtr conn, - virDomainObjPtr vm, - const char *xmlin, - const char *persist_xml, - const char *dconnuri, - const char *uri, - const char *graphicsuri, - const char *listenAddress, - size_t nmigrate_disks, - const char **migrate_disks, - int nbdPort, - qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - unsigned long flags, - const char *dname, - unsigned long resource, - bool v3proto) +qemuMigrationSrcPerformJob(virQEMUDriverPtr driver, + virConnectPtr conn, + virDomainObjPtr vm, + const char *xmlin, + const char *persist_xml, + const char *dconnuri, + const char *uri, + const char *graphicsuri, + const char *listenAddress, + size_t nmigrate_disks, + const char **migrate_disks, + int nbdPort, + qemuMigrationCompressionPtr compression, + qemuMonitorMigrationParamsPtr migParams, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + unsigned long flags, + const char *dname, + unsigned long resource, + bool v3proto) { virObjectEventPtr event = NULL; int ret = -1; @@ -4941,27 +4947,27 @@ qemuMigrationPerformJob(virQEMUDriverPtr driver, goto endjob; } - if (!qemuMigrationIsAllowed(driver, vm, true, flags)) + if (!qemuMigrationSrcIsAllowed(driver, vm, true, flags)) goto endjob; if (!(flags & (VIR_MIGRATE_UNSAFE | VIR_MIGRATE_OFFLINE)) && - !qemuMigrationIsSafe(vm->def, nmigrate_disks, migrate_disks, flags)) + !qemuMigrationSrcIsSafe(vm->def, nmigrate_disks, migrate_disks, flags)) goto endjob; - qemuMigrationStoreDomainState(vm); + qemuMigrationSrcStoreDomainState(vm); if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) { - ret = doPeer2PeerMigrate(driver, conn, vm, xmlin, persist_xml, - dconnuri, uri, graphicsuri, listenAddress, - nmigrate_disks, migrate_disks, nbdPort, - compression, migParams, flags, dname, resource, - &v3proto); + ret = qemuMigrationSrcPerformPeer2Peer(driver, conn, vm, xmlin, persist_xml, + dconnuri, uri, graphicsuri, listenAddress, + nmigrate_disks, migrate_disks, nbdPort, + compression, migParams, flags, dname, resource, + &v3proto); } else { qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM2); - ret = doNativeMigrate(driver, vm, persist_xml, uri, cookiein, cookieinlen, - cookieout, cookieoutlen, - flags, resource, NULL, NULL, 0, NULL, - compression, migParams); + ret = qemuMigrationSrcPerformNative(driver, vm, persist_xml, uri, cookiein, cookieinlen, + cookieout, cookieoutlen, + flags, resource, NULL, NULL, 0, NULL, + compression, migParams); } if (ret < 0) goto endjob; @@ -4988,9 +4994,9 @@ qemuMigrationPerformJob(virQEMUDriverPtr driver, * here */ if (!v3proto && ret < 0) - qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT); + qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT); - if (qemuMigrationRestoreDomainState(driver, vm)) { + if (qemuMigrationSrcRestoreDomainState(driver, vm)) { event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_RESUMED, VIR_DOMAIN_EVENT_RESUMED_MIGRATED); @@ -5021,22 +5027,22 @@ qemuMigrationPerformJob(virQEMUDriverPtr driver, * This implements perform phase of v3 migration protocol. */ static int -qemuMigrationPerformPhase(virQEMUDriverPtr driver, - virConnectPtr conn, - virDomainObjPtr vm, - const char *persist_xml, - const char *uri, - const char *graphicsuri, - size_t nmigrate_disks, - const char **migrate_disks, - qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - unsigned long flags, - unsigned long resource) +qemuMigrationSrcPerformPhase(virQEMUDriverPtr driver, + virConnectPtr conn, + virDomainObjPtr vm, + const char *persist_xml, + const char *uri, + const char *graphicsuri, + size_t nmigrate_disks, + const char **migrate_disks, + qemuMigrationCompressionPtr compression, + qemuMonitorMigrationParamsPtr migParams, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + unsigned long flags, + unsigned long resource) { virObjectEventPtr event = NULL; int ret = -1; @@ -5051,15 +5057,15 @@ qemuMigrationPerformPhase(virQEMUDriverPtr driver, qemuMigrationJobStartPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM3); virCloseCallbacksUnset(driver->closeCallbacks, vm, - qemuMigrationCleanup); + qemuMigrationSrcCleanup); - ret = doNativeMigrate(driver, vm, persist_xml, uri, cookiein, cookieinlen, - cookieout, cookieoutlen, - flags, resource, NULL, graphicsuri, - nmigrate_disks, migrate_disks, compression, migParams); + ret = qemuMigrationSrcPerformNative(driver, vm, persist_xml, uri, cookiein, cookieinlen, + cookieout, cookieoutlen, + flags, resource, NULL, graphicsuri, + nmigrate_disks, migrate_disks, compression, migParams); if (ret < 0) { - if (qemuMigrationRestoreDomainState(driver, vm)) { + if (qemuMigrationSrcRestoreDomainState(driver, vm)) { event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_RESUMED, VIR_DOMAIN_EVENT_RESUMED_MIGRATED); @@ -5070,12 +5076,12 @@ qemuMigrationPerformPhase(virQEMUDriverPtr driver, qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM3_DONE); if (virCloseCallbacksSet(driver->closeCallbacks, vm, conn, - qemuMigrationCleanup) < 0) + qemuMigrationSrcCleanup) < 0) goto endjob; endjob: if (ret < 0) { - qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT); + qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT); qemuMigrationJobFinish(driver, vm); } else { qemuMigrationJobContinue(vm); @@ -5091,28 +5097,28 @@ qemuMigrationPerformPhase(virQEMUDriverPtr driver, } int -qemuMigrationPerform(virQEMUDriverPtr driver, - virConnectPtr conn, - virDomainObjPtr vm, - const char *xmlin, - const char *persist_xml, - const char *dconnuri, - const char *uri, - const char *graphicsuri, - const char *listenAddress, - size_t nmigrate_disks, - const char **migrate_disks, - int nbdPort, - qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - unsigned long flags, - const char *dname, - unsigned long resource, - bool v3proto) +qemuMigrationSrcPerform(virQEMUDriverPtr driver, + virConnectPtr conn, + virDomainObjPtr vm, + const char *xmlin, + const char *persist_xml, + const char *dconnuri, + const char *uri, + const char *graphicsuri, + const char *listenAddress, + size_t nmigrate_disks, + const char **migrate_disks, + int nbdPort, + qemuMigrationCompressionPtr compression, + qemuMonitorMigrationParamsPtr migParams, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + unsigned long flags, + const char *dname, + unsigned long resource, + bool v3proto) { VIR_DEBUG("driver=%p, conn=%p, vm=%p, xmlin=%s, dconnuri=%s, " "uri=%s, graphicsuri=%s, listenAddress=%s, " @@ -5132,13 +5138,13 @@ qemuMigrationPerform(virQEMUDriverPtr driver, return -1; } - return qemuMigrationPerformJob(driver, conn, vm, xmlin, persist_xml, dconnuri, uri, - graphicsuri, listenAddress, - nmigrate_disks, migrate_disks, nbdPort, - compression, migParams, - cookiein, cookieinlen, - cookieout, cookieoutlen, - flags, dname, resource, v3proto); + return qemuMigrationSrcPerformJob(driver, conn, vm, xmlin, persist_xml, dconnuri, uri, + graphicsuri, listenAddress, + nmigrate_disks, migrate_disks, nbdPort, + compression, migParams, + cookiein, cookieinlen, + cookieout, cookieoutlen, + flags, dname, resource, v3proto); } else { if (dconnuri) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -5147,27 +5153,27 @@ qemuMigrationPerform(virQEMUDriverPtr driver, } if (v3proto) { - return qemuMigrationPerformPhase(driver, conn, vm, persist_xml, uri, - graphicsuri, - nmigrate_disks, migrate_disks, - compression, migParams, - cookiein, cookieinlen, - cookieout, cookieoutlen, - flags, resource); + return qemuMigrationSrcPerformPhase(driver, conn, vm, persist_xml, uri, + graphicsuri, + nmigrate_disks, migrate_disks, + compression, migParams, + cookiein, cookieinlen, + cookieout, cookieoutlen, + flags, resource); } else { - return qemuMigrationPerformJob(driver, conn, vm, xmlin, persist_xml, NULL, - uri, graphicsuri, listenAddress, - nmigrate_disks, migrate_disks, nbdPort, - compression, migParams, - cookiein, cookieinlen, - cookieout, cookieoutlen, flags, - dname, resource, v3proto); + return qemuMigrationSrcPerformJob(driver, conn, vm, xmlin, persist_xml, NULL, + uri, graphicsuri, listenAddress, + nmigrate_disks, migrate_disks, nbdPort, + compression, migParams, + cookiein, cookieinlen, + cookieout, cookieoutlen, flags, + dname, resource, v3proto); } } } static int -qemuMigrationVPAssociatePortProfiles(virDomainDefPtr def) +qemuMigrationDstVPAssociatePortProfiles(virDomainDefPtr def) { size_t i; int last_good_net = -1; @@ -5219,10 +5225,10 @@ qemuMigrationVPAssociatePortProfiles(virDomainDefPtr def) static int -qemuMigrationPersist(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuMigrationCookiePtr mig, - bool ignoreSaveError) +qemuMigrationDstPersist(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuMigrationCookiePtr mig, + bool ignoreSaveError) { virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver); virCapsPtr caps = NULL; @@ -5271,16 +5277,16 @@ qemuMigrationPersist(virQEMUDriverPtr driver, virDomainPtr -qemuMigrationFinish(virQEMUDriverPtr driver, - virConnectPtr dconn, - virDomainObjPtr vm, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - unsigned long flags, - int retcode, - bool v3proto) +qemuMigrationDstFinish(virQEMUDriverPtr driver, + virConnectPtr dconn, + virDomainObjPtr vm, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + unsigned long flags, + int retcode, + bool v3proto) { virDomainPtr dom = NULL; qemuMigrationCookiePtr mig = NULL; @@ -5304,7 +5310,7 @@ qemuMigrationFinish(virQEMUDriverPtr driver, priv->migrationPort = 0; if (!qemuMigrationJobIsActive(vm, QEMU_ASYNC_JOB_MIGRATION_IN)) { - qemuMigrationErrorReport(driver, vm->def->name); + qemuMigrationDstErrorReport(driver, vm->def->name); goto cleanup; } @@ -5314,7 +5320,7 @@ qemuMigrationFinish(virQEMUDriverPtr driver, v3proto ? QEMU_MIGRATION_PHASE_FINISH3 : QEMU_MIGRATION_PHASE_FINISH2); - qemuDomainCleanupRemove(vm, qemuMigrationPrepareCleanup); + qemuDomainCleanupRemove(vm, qemuMigrationDstPrepareCleanup); VIR_FREE(priv->job.completed); cookie_flags = QEMU_MIGRATION_COOKIE_NETWORK | @@ -5330,7 +5336,7 @@ qemuMigrationFinish(virQEMUDriverPtr driver, if (flags & VIR_MIGRATE_OFFLINE) { if (retcode == 0 && - qemuMigrationPersist(driver, vm, mig, false) == 0) + qemuMigrationDstPersist(driver, vm, mig, false) == 0) dom = virGetDomain(dconn, vm->def->name, vm->def->uuid, -1); goto endjob; } @@ -5346,17 +5352,17 @@ qemuMigrationFinish(virQEMUDriverPtr driver, if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("guest unexpectedly quit")); - qemuMigrationErrorReport(driver, vm->def->name); + qemuMigrationDstErrorReport(driver, vm->def->name); goto endjob; } - if (qemuMigrationVPAssociatePortProfiles(vm->def) < 0) + if (qemuMigrationDstVPAssociatePortProfiles(vm->def) < 0) goto endjob; - if (mig->network && qemuDomainMigrateOPDRelocate(driver, vm, mig) < 0) + if (mig->network && qemuMigrationDstOPDRelocate(driver, vm, mig) < 0) VIR_WARN("unable to provide network data for relocation"); - if (qemuMigrationStopNBDServer(driver, vm, mig) < 0) + if (qemuMigrationDstStopNBDServer(driver, vm, mig) < 0) goto endjob; if (qemuRefreshVirtioChannelState(driver, vm, @@ -5367,7 +5373,7 @@ qemuMigrationFinish(virQEMUDriverPtr driver, goto endjob; if (flags & VIR_MIGRATE_PERSIST_DEST) { - if (qemuMigrationPersist(driver, vm, mig, !v3proto) < 0) { + if (qemuMigrationDstPersist(driver, vm, mig, !v3proto) < 0) { /* Hmpf. Migration was successful, but making it persistent * was not. If we report successful, then when this domain * shuts down, management tools are in for a surprise. On the @@ -5388,9 +5394,9 @@ qemuMigrationFinish(virQEMUDriverPtr driver, /* We need to wait for QEMU to process all data sent by the source * before starting guest CPUs. */ - if (qemuMigrationWaitForDestCompletion(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_IN, - !!(flags & VIR_MIGRATE_POSTCOPY)) < 0) { + if (qemuMigrationDstWaitForCompletion(driver, vm, + QEMU_ASYNC_JOB_MIGRATION_IN, + !!(flags & VIR_MIGRATE_POSTCOPY)) < 0) { /* There's not much we can do for v2 protocol since the * original domain on the source host is already gone. */ @@ -5462,9 +5468,9 @@ qemuMigrationFinish(virQEMUDriverPtr driver, } if (inPostCopy) { - if (qemuMigrationWaitForDestCompletion(driver, vm, - QEMU_ASYNC_JOB_MIGRATION_IN, - false) < 0) { + if (qemuMigrationDstWaitForCompletion(driver, vm, + QEMU_ASYNC_JOB_MIGRATION_IN, + false) < 0) { goto endjob; } if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) { @@ -5510,7 +5516,7 @@ qemuMigrationFinish(virQEMUDriverPtr driver, VIR_DOMAIN_EVENT_STOPPED_FAILED); qemuDomainEventQueue(driver, event); } else { - qemuMigrationPostcopyFailed(driver, vm); + qemuMigrationAnyPostcopyFailed(driver, vm); } } @@ -5531,7 +5537,7 @@ qemuMigrationFinish(virQEMUDriverPtr driver, VIR_FREE(priv->job.completed); } - qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN); + qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN); qemuMigrationJobFinish(driver, vm); if (!virDomainObjIsActive(vm)) @@ -5562,10 +5568,10 @@ qemuMigrationFinish(virQEMUDriverPtr driver, /* Helper function called while vm is active. */ int -qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm, - int fd, - const char *compressor, - qemuDomainAsyncJob asyncJob) +qemuMigrationSrcToFile(virQEMUDriverPtr driver, virDomainObjPtr vm, + int fd, + const char *compressor, + qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv = vm->privateData; int rc; @@ -5649,7 +5655,7 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm, if (rc < 0) goto cleanup; - rc = qemuMigrationWaitForCompletion(driver, vm, asyncJob, NULL, 0); + rc = qemuMigrationSrcWaitForCompletion(driver, vm, asyncJob, NULL, 0); if (rc < 0) { if (rc == -2) { @@ -5700,8 +5706,8 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm, int -qemuMigrationCancel(virQEMUDriverPtr driver, - virDomainObjPtr vm) +qemuMigrationSrcCancel(virQEMUDriverPtr driver, + virDomainObjPtr vm) { qemuDomainObjPrivatePtr priv = vm->privateData; virHashTablePtr blockJobs = NULL; @@ -5750,8 +5756,8 @@ qemuMigrationCancel(virQEMUDriverPtr driver, } } - if (qemuMigrationCancelDriveMirror(driver, vm, false, - QEMU_ASYNC_JOB_NONE, NULL) < 0) + if (qemuMigrationSrcCancelDriveMirror(driver, vm, false, + QEMU_ASYNC_JOB_NONE, NULL) < 0) goto endsyncjob; ret = 0; @@ -5863,7 +5869,7 @@ qemuMigrationJobFinish(virQEMUDriverPtr driver, virDomainObjPtr vm) static void -qemuMigrationErrorFree(void *data, +qemuMigrationDstErrorFree(void *data, const void *name ATTRIBUTE_UNUSED) { virErrorPtr err = data; @@ -5871,9 +5877,9 @@ qemuMigrationErrorFree(void *data, } int -qemuMigrationErrorInit(virQEMUDriverPtr driver) +qemuMigrationDstErrorInit(virQEMUDriverPtr driver) { - driver->migrationErrors = virHashAtomicNew(64, qemuMigrationErrorFree); + driver->migrationErrors = virHashAtomicNew(64, qemuMigrationDstErrorFree); if (driver->migrationErrors) return 0; else @@ -5885,9 +5891,9 @@ qemuMigrationErrorInit(virQEMUDriverPtr driver) * invalid after calling this function. */ void -qemuMigrationErrorSave(virQEMUDriverPtr driver, - const char *name, - virErrorPtr err) +qemuMigrationDstErrorSave(virQEMUDriverPtr driver, + const char *name, + virErrorPtr err) { if (!err) return; @@ -5901,8 +5907,8 @@ qemuMigrationErrorSave(virQEMUDriverPtr driver, } void -qemuMigrationErrorReport(virQEMUDriverPtr driver, - const char *name) +qemuMigrationDstErrorReport(virQEMUDriverPtr driver, + const char *name) { virErrorPtr err; @@ -5918,9 +5924,9 @@ qemuMigrationErrorReport(virQEMUDriverPtr driver, /* don't ever pass NULL params with non zero nparams */ qemuMigrationCompressionPtr -qemuMigrationCompressionParse(virTypedParameterPtr params, - int nparams, - unsigned long flags) +qemuMigrationAnyCompressionParse(virTypedParameterPtr params, + int nparams, + unsigned long flags) { size_t i; qemuMigrationCompressionPtr compression = NULL; @@ -6001,11 +6007,11 @@ qemuMigrationCompressionParse(virTypedParameterPtr params, } int -qemuMigrationCompressionDump(qemuMigrationCompressionPtr compression, - virTypedParameterPtr *params, - int *nparams, - int *maxparams, - unsigned long *flags) +qemuMigrationAnyCompressionDump(qemuMigrationCompressionPtr compression, + virTypedParameterPtr *params, + int *nparams, + int *maxparams, + unsigned long *flags) { size_t i; @@ -6052,15 +6058,15 @@ qemuMigrationCompressionDump(qemuMigrationCompressionPtr compression, /* - * qemuMigrationReset: + * qemuMigrationParamsReset: * * Reset all migration parameters so that the next job which internally uses * migration (save, managedsave, snapshots, dump) will not try to use them. */ void -qemuMigrationReset(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob job) +qemuMigrationParamsReset(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob job) { qemuMonitorMigrationCaps cap; virErrorPtr err = virSaveLastError(); @@ -6068,12 +6074,12 @@ qemuMigrationReset(virQEMUDriverPtr driver, if (!virDomainObjIsActive(vm)) goto cleanup; - if (qemuMigrationResetTLS(driver, vm, job) < 0) + if (qemuMigrationParamsResetTLS(driver, vm, job) < 0) goto cleanup; for (cap = 0; cap < QEMU_MONITOR_MIGRATION_CAPS_LAST; cap++) { - if (qemuMigrationCapsGet(vm, cap) && - qemuMigrationSetOption(driver, vm, cap, false, job) < 0) + if (qemuMigrationAnyCapsGet(vm, cap) && + qemuMigrationOptionSet(driver, vm, cap, false, job) < 0) goto cleanup; } @@ -6086,10 +6092,10 @@ qemuMigrationReset(virQEMUDriverPtr driver, int -qemuMigrationFetchMirrorStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, - qemuDomainJobInfoPtr jobInfo) +qemuMigrationSrcFetchMirrorStats(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob, + qemuDomainJobInfoPtr jobInfo) { size_t i; qemuDomainObjPrivatePtr priv = vm->privateData; @@ -6137,8 +6143,8 @@ qemuMigrationFetchMirrorStats(virQEMUDriverPtr driver, bool -qemuMigrationCapsGet(virDomainObjPtr vm, - qemuMonitorMigrationCaps cap) +qemuMigrationAnyCapsGet(virDomainObjPtr vm, + qemuMonitorMigrationCaps cap) { qemuDomainObjPrivatePtr priv = vm->privateData; bool enabled = false; diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h index 234f1eb858..ecb176e06a 100644 --- a/src/qemu/qemu_migration.h +++ b/src/qemu/qemu_migration.h @@ -25,6 +25,20 @@ # include "qemu_conf.h" # include "qemu_domain.h" +/* + * General function naming conventions: + * + * - qemuMigrationSrcXXX - only runs on source host + * - qemuMigrationDstXXX - only runs on dest host + * - qemuMigrationAnyXXX - runs on source or dest host + * + * Exceptions: + * + * - qemuMigrationParamsXXX - runs on source or dest host + * - qemuMigrationOptionXXX - runs on source or dest host + * - qemuMigrationJobXXX - runs on source or dest host + */ + typedef struct _qemuMigrationCompression qemuMigrationCompression; typedef qemuMigrationCompression *qemuMigrationCompressionPtr; @@ -112,15 +126,15 @@ struct _qemuMigrationCompression { }; qemuMigrationCompressionPtr -qemuMigrationCompressionParse(virTypedParameterPtr params, - int nparams, - unsigned long flags); +qemuMigrationAnyCompressionParse(virTypedParameterPtr params, + int nparams, + unsigned long flags); int -qemuMigrationCompressionDump(qemuMigrationCompressionPtr compression, - virTypedParameterPtr *params, - int *nparams, - int *maxparams, - unsigned long *flags); +qemuMigrationAnyCompressionDump(qemuMigrationCompressionPtr compression, + virTypedParameterPtr *params, + int *nparams, + int *maxparams, + unsigned long *flags); void qemuMigrationParamsClear(qemuMonitorMigrationParamsPtr migParams); @@ -134,166 +148,166 @@ qemuMigrationParams(virTypedParameterPtr params, unsigned long flags); int -qemuMigrationSetOffline(virQEMUDriverPtr driver, - virDomainObjPtr vm); +qemuMigrationSrcSetOffline(virQEMUDriverPtr driver, + virDomainObjPtr vm); char * -qemuMigrationBegin(virConnectPtr conn, - virDomainObjPtr vm, - const char *xmlin, - const char *dname, - char **cookieout, - int *cookieoutlen, - size_t nmigrate_disks, - const char **migrate_disks, - unsigned long flags); +qemuMigrationSrcBegin(virConnectPtr conn, + virDomainObjPtr vm, + const char *xmlin, + const char *dname, + char **cookieout, + int *cookieoutlen, + size_t nmigrate_disks, + const char **migrate_disks, + unsigned long flags); virDomainDefPtr -qemuMigrationPrepareDef(virQEMUDriverPtr driver, - const char *dom_xml, - const char *dname, - char **origname); +qemuMigrationAnyPrepareDef(virQEMUDriverPtr driver, + const char *dom_xml, + const char *dname, + char **origname); int -qemuMigrationPrepareTunnel(virQEMUDriverPtr driver, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - virStreamPtr st, - virDomainDefPtr *def, - const char *origname, - unsigned long flags); +qemuMigrationDstPrepareTunnel(virQEMUDriverPtr driver, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + virStreamPtr st, + virDomainDefPtr *def, + const char *origname, + unsigned long flags); int -qemuMigrationPrepareDirect(virQEMUDriverPtr driver, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - const char *uri_in, - char **uri_out, - virDomainDefPtr *def, - const char *origname, - const char *listenAddress, - size_t nmigrate_disks, - const char **migrate_disks, - int nbdPort, - qemuMigrationCompressionPtr compression, - unsigned long flags); +qemuMigrationDstPrepareDirect(virQEMUDriverPtr driver, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + const char *uri_in, + char **uri_out, + virDomainDefPtr *def, + const char *origname, + const char *listenAddress, + size_t nmigrate_disks, + const char **migrate_disks, + int nbdPort, + qemuMigrationCompressionPtr compression, + unsigned long flags); int -qemuMigrationPerform(virQEMUDriverPtr driver, - virConnectPtr conn, - virDomainObjPtr vm, - const char *xmlin, - const char *persist_xml, - const char *dconnuri, - const char *uri, - const char *graphicsuri, - const char *listenAddress, - size_t nmigrate_disks, - const char **migrate_disks, - int nbdPort, - qemuMigrationCompressionPtr compression, - qemuMonitorMigrationParamsPtr migParams, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - unsigned long flags, - const char *dname, - unsigned long resource, - bool v3proto); +qemuMigrationSrcPerform(virQEMUDriverPtr driver, + virConnectPtr conn, + virDomainObjPtr vm, + const char *xmlin, + const char *persist_xml, + const char *dconnuri, + const char *uri, + const char *graphicsuri, + const char *listenAddress, + size_t nmigrate_disks, + const char **migrate_disks, + int nbdPort, + qemuMigrationCompressionPtr compression, + qemuMonitorMigrationParamsPtr migParams, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + unsigned long flags, + const char *dname, + unsigned long resource, + bool v3proto); virDomainPtr -qemuMigrationFinish(virQEMUDriverPtr driver, - virConnectPtr dconn, - virDomainObjPtr vm, - const char *cookiein, - int cookieinlen, - char **cookieout, - int *cookieoutlen, - unsigned long flags, - int retcode, - bool v3proto); +qemuMigrationDstFinish(virQEMUDriverPtr driver, + virConnectPtr dconn, + virDomainObjPtr vm, + const char *cookiein, + int cookieinlen, + char **cookieout, + int *cookieoutlen, + unsigned long flags, + int retcode, + bool v3proto); int -qemuMigrationConfirm(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *cookiein, - int cookieinlen, - unsigned int flags, - int cancelled); +qemuMigrationSrcConfirm(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *cookiein, + int cookieinlen, + unsigned int flags, + int cancelled); bool -qemuMigrationIsAllowed(virQEMUDriverPtr driver, - virDomainObjPtr vm, - bool remote, - unsigned int flags); +qemuMigrationSrcIsAllowed(virQEMUDriverPtr driver, + virDomainObjPtr vm, + bool remote, + unsigned int flags); int -qemuMigrationToFile(virQEMUDriverPtr driver, - virDomainObjPtr vm, - int fd, - const char *compressor, - qemuDomainAsyncJob asyncJob) +qemuMigrationSrcToFile(virQEMUDriverPtr driver, + virDomainObjPtr vm, + int fd, + const char *compressor, + qemuDomainAsyncJob asyncJob) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK; int -qemuMigrationCancel(virQEMUDriverPtr driver, - virDomainObjPtr vm); +qemuMigrationSrcCancel(virQEMUDriverPtr driver, + virDomainObjPtr vm); int -qemuMigrationFetchStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, - qemuDomainJobInfoPtr jobInfo, - char **error); +qemuMigrationAnyFetchStats(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob, + qemuDomainJobInfoPtr jobInfo, + char **error); int -qemuMigrationErrorInit(virQEMUDriverPtr driver); +qemuMigrationDstErrorInit(virQEMUDriverPtr driver); void -qemuMigrationErrorSave(virQEMUDriverPtr driver, - const char *name, - virErrorPtr err); +qemuMigrationDstErrorSave(virQEMUDriverPtr driver, + const char *name, + virErrorPtr err); void -qemuMigrationErrorReport(virQEMUDriverPtr driver, - const char *name); +qemuMigrationDstErrorReport(virQEMUDriverPtr driver, + const char *name); int -qemuMigrationCheckIncoming(virQEMUCapsPtr qemuCaps, - const char *migrateFrom); +qemuMigrationDstCheckProtocol(virQEMUCapsPtr qemuCaps, + const char *migrateFrom); char * -qemuMigrationIncomingURI(const char *migrateFrom, - int migrateFd); +qemuMigrationDstGetURI(const char *migrateFrom, + int migrateFd); int -qemuMigrationRunIncoming(virQEMUDriverPtr driver, - virDomainObjPtr vm, - const char *uri, - qemuDomainAsyncJob asyncJob); +qemuMigrationDstRun(virQEMUDriverPtr driver, + virDomainObjPtr vm, + const char *uri, + qemuDomainAsyncJob asyncJob); void -qemuMigrationPostcopyFailed(virQEMUDriverPtr driver, +qemuMigrationAnyPostcopyFailed(virQEMUDriverPtr driver, virDomainObjPtr vm); void -qemuMigrationReset(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob job); +qemuMigrationParamsReset(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob job); int -qemuMigrationFetchMirrorStats(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuDomainAsyncJob asyncJob, - qemuDomainJobInfoPtr jobInfo); +qemuMigrationSrcFetchMirrorStats(virQEMUDriverPtr driver, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob, + qemuDomainJobInfoPtr jobInfo); bool -qemuMigrationCapsGet(virDomainObjPtr vm, - qemuMonitorMigrationCaps cap); +qemuMigrationAnyCapsGet(virDomainObjPtr vm, + qemuMonitorMigrationCaps cap); #endif /* __QEMU_MIGRATION_H__ */ diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index d0bab5d84e..13b05d236a 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3069,7 +3069,7 @@ qemuProcessRecoverMigrationIn(virQEMUDriverPtr driver, * confirm success or failure yet; killing it seems safest unless * we already started guest CPUs or we were in post-copy mode */ if (postcopy) { - qemuMigrationPostcopyFailed(driver, vm); + qemuMigrationAnyPostcopyFailed(driver, vm); } else if (state != VIR_DOMAIN_RUNNING) { VIR_DEBUG("Killing migrated domain %s", vm->def->name); return -1; @@ -3077,7 +3077,7 @@ qemuProcessRecoverMigrationIn(virQEMUDriverPtr driver, break; } - qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_NONE); + qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE); return 0; } @@ -3115,11 +3115,11 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr driver, * post-copy mode */ if (postcopy) { - qemuMigrationPostcopyFailed(driver, vm); + qemuMigrationAnyPostcopyFailed(driver, vm); } else { VIR_DEBUG("Cancelling unfinished migration of domain %s", vm->def->name); - if (qemuMigrationCancel(driver, vm) < 0) { + if (qemuMigrationSrcCancel(driver, vm) < 0) { VIR_WARN("Could not cancel ongoing migration of domain %s", vm->def->name); } @@ -3133,7 +3133,7 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr driver, * post-copy mode we can use PAUSED_POSTCOPY_FAILED state for this */ if (postcopy) - qemuMigrationPostcopyFailed(driver, vm); + qemuMigrationAnyPostcopyFailed(driver, vm); break; case QEMU_MIGRATION_PHASE_CONFIRM3_CANCELLED: @@ -3142,7 +3142,7 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr driver, * as broken in that case */ if (postcopy) { - qemuMigrationPostcopyFailed(driver, vm); + qemuMigrationAnyPostcopyFailed(driver, vm); } else { VIR_DEBUG("Resuming domain %s after failed migration", vm->def->name); @@ -3171,7 +3171,7 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr driver, } } - qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_NONE); + qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE); return 0; } @@ -4142,7 +4142,7 @@ qemuProcessIncomingDefNew(virQEMUCapsPtr qemuCaps, { qemuProcessIncomingDefPtr inc = NULL; - if (qemuMigrationCheckIncoming(qemuCaps, migrateFrom) < 0) + if (qemuMigrationDstCheckProtocol(qemuCaps, migrateFrom) < 0) return NULL; if (VIR_ALLOC(inc) < 0) @@ -4151,7 +4151,7 @@ qemuProcessIncomingDefNew(virQEMUCapsPtr qemuCaps, if (VIR_STRDUP(inc->address, listenAddress) < 0) goto error; - inc->launchURI = qemuMigrationIncomingURI(migrateFrom, fd); + inc->launchURI = qemuMigrationDstGetURI(migrateFrom, fd); if (!inc->launchURI) goto error; @@ -6348,7 +6348,7 @@ qemuProcessStart(virConnectPtr conn, if (incoming && incoming->deferredURI && - qemuMigrationRunIncoming(driver, vm, incoming->deferredURI, asyncJob) < 0) + qemuMigrationDstRun(driver, vm, incoming->deferredURI, asyncJob) < 0) goto stop; if (qemuProcessFinishStartup(driver, vm, asyncJob, diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 68c579e9f6..688846b9b4 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -447,8 +447,8 @@ testCompareXMLToArgv(const void *data) goto cleanup; if (info->migrateFrom && - !(migrateURI = qemuMigrationIncomingURI(info->migrateFrom, - info->migrateFd))) + !(migrateURI = qemuMigrationDstGetURI(info->migrateFrom, + info->migrateFd))) goto cleanup; if (!(vm = virDomainObjNew(driver.xmlopt))) -- GitLab