[libvirt] [PATCH v3 10/10] qemu: rename migration APIs to include Src or Dst in their name
John Ferlan
jferlan at redhat.com
Fri Feb 16 23:31:38 UTC 2018
On 02/16/2018 06:22 AM, Daniel P. Berrangé wrote:
> 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.
This is quite an understatement!!! Maybe now I can throw away those
pieces of paper where I wrote down which side was which B-). I almost
wonder if the next step is "qemu_migration_{src|dst|any}.{c|h}.
>
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> ---
> src/qemu/qemu_driver.c | 194 +++---
> src/qemu/qemu_migration.c | 1440 +++++++++++++++++++++++----------------------
> src/qemu/qemu_migration.h | 267 +++++----
> src/qemu/qemu_process.c | 20 +-
> tests/qemuxml2argvtest.c | 4 +-
> 5 files changed, 972 insertions(+), 953 deletions(-)
>
Hopefully there's not some poor soul working through migration patches
that's going to have a fun merge. The names look reasonable to me.
Hopefully Jirka also can take a peek.
Is there a way to ensure that future qemuMigration API's are prefixed
with Dst, Src, or Any (disregarding ParamsXXX and JobXXX) for make
syntax-check type purposes?
[...]
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index 29247d6a39..7f981f8f2f 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
[...]
> /* 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)
>
Should the qemuMigrateDisk here change to qemuMigrateAnyCheckDisk ??
[...]
Function comments for qemuMigrationSrcDriveMirror still list
qemuMigrationDriveMirror
> * 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)
[...]
> static int
> -qemuMigrationSetPostCopy(virQEMUDriverPtr driver,
> - virDomainObjPtr vm,
> - bool state,
> - qemuDomainAsyncJob job)
> +qemuMigrationAnySetPostCopy(virQEMUDriverPtr driver,
> + virDomainObjPtr vm,
> + bool state,
> + qemuDomainAsyncJob job)
> {
> qemuDomainObjPrivatePtr priv = vm->privateData;
>
> - if (qemuMigrationSetOption(driver, vm,
> - QEMU_MONITOR_MIGRATION_CAPS_POSTCOPY,
> - state, job) < 0)
> + if (qemuMigrationAnySetOption(driver, vm,
> + QEMU_MONITOR_MIGRATION_CAPS_POSTCOPY,
> + state, job) < 0)
> return -1;
>
> priv->job.postcopyEnabled = state;
The qemuMigrationWaitForSpice probably should change to
qemuMigrationSrcWaitForSpice since it's called from
qemuMigrationSrcConfirmPhase.
[...]
> static const char *
> -qemuMigrationJobName(virDomainObjPtr vm)
> +qemuMigrationAnyJobName(virDomainObjPtr vm)
> {
Should this change back without the "Any" (based on qemu_migration.h
comment)
>
> static int
> -qemuMigrationCheckJobStatus(virQEMUDriverPtr driver,
> - virDomainObjPtr vm,
> - qemuDomainAsyncJob asyncJob)
> +qemuMigrationAnyCheckJobStatus(virQEMUDriverPtr driver,
> + virDomainObjPtr vm,
> + qemuDomainAsyncJob asyncJob)
Similar, but perhaps qemuMigrationJobCheckStatus ?
[...]
>
>
> int
> -qemuMigrationCheckIncoming(virQEMUCapsPtr qemuCaps,
> - const char *migrateFrom)
> +qemuMigrationDstCheckIncoming(virQEMUCapsPtr qemuCaps,
> + const char *migrateFrom)
Dst and Incoming almost seem superfluous, this is more like
qemuMigrationDstCheckProtocol (since we're already changing names
elsewhere).
[...]
> char *
> -qemuMigrationIncomingURI(const char *migrateFrom,
> - int migrateFd)
> +qemuMigrationDstIncomingURI(const char *migrateFrom,
> + int migrateFd)
qemuMigrationDstGetURI ? IDC, the current name is fine, just a suggestion.
[...]
>
> int
> -qemuMigrationRunIncoming(virQEMUDriverPtr driver,
> - virDomainObjPtr vm,
> - const char *uri,
> - qemuDomainAsyncJob asyncJob)
> +qemuMigrationDstRunIncoming(virQEMUDriverPtr driver,
> + virDomainObjPtr vm,
> + const char *uri,
> + qemuDomainAsyncJob asyncJob)
qemuMigrationDstRun to match SrcRun ?? Your call.
[...]
> static qemuProcessIncomingDefPtr
> -qemuMigrationPrepareIncoming(virDomainObjPtr vm,
> - bool tunnel,
> - const char *protocol,
> - const char *listenAddress,
> - unsigned short port,
> - int fd)
> +qemuMigrationDstPrepareIncoming(virDomainObjPtr vm,
> + bool tunnel,
> + const char *protocol,
> + const char *listenAddress,
> + unsigned short port,
> + int fd)
qemuMigrationDstPrepare (again Incoming just seems unnecessary w/ Dst)
[...]
>
> -/* qemuMigrationSetEmptyTLSParams
> +/* qemuMigrationAnySetEmptyTLSParams
> * @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,
> - virDomainObjPtr vm,
> - qemuDomainAsyncJob asyncJob,
> - qemuMonitorMigrationParamsPtr migParams)
> +qemuMigrationAnySetEmptyTLSParams(virQEMUDriverPtr driver,
> + virDomainObjPtr vm,
> + qemuDomainAsyncJob asyncJob,
> + qemuMonitorMigrationParamsPtr migParams)
Perhaps change to qemuMigrationParamsSetEmptyTLS (avoiding the Any w/
any of the qemuMigration*Params related helpers)
> static int
> -qemuMigrationSetParams(virQEMUDriverPtr driver,
> - virDomainObjPtr vm,
> - qemuDomainAsyncJob job,
> - qemuMonitorMigrationParamsPtr migParams)
> +qemuMigrationAnySetParams(virQEMUDriverPtr driver,
> + virDomainObjPtr vm,
> + qemuDomainAsyncJob job,
> + qemuMonitorMigrationParamsPtr migParams)
qemuMigrationParamsSet ??
[...]
>
> -/* qemuMigrationResetTLS
> +/* qemuMigrationAnyResetTLS
> * @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)
> +qemuMigrationAnyResetTLS(virQEMUDriverPtr driver,
> + virDomainObjPtr vm,
> + qemuDomainAsyncJob asyncJob)
qemuMigrationParamsResetTLS ??
[...]
> 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,9 +3367,9 @@ qemuMigrationConfirm(virQEMUDriverPtr driver,
>
> qemuMigrationJobStartPhase(driver, vm, phase);
> virCloseCallbacksUnset(driver->closeCallbacks, vm,
> - qemuMigrationCleanup);
> + qemuMigrationSrcCleanup);
>
> - ret = qemuMigrationConfirmPhase(driver, vm,
> + ret = qemuMigrationSrcConfirmPhase(driver, vm,
> cookiein, cookieinlen,
> flags, cancelled);
Indention adjustment needed
[...]
> diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h
> index 234f1eb858..f769f7417d 100644
> --- a/src/qemu/qemu_migration.h
> +++ b/src/qemu/qemu_migration.h
[...]
> @@ -130,170 +143,170 @@ qemuMigrationParamsFree(qemuMonitorMigrationParamsPtr *migParams);
>
> qemuMonitorMigrationParamsPtr
> qemuMigrationParams(virTypedParameterPtr params,
> - int nparams,
> - unsigned long flags);
> + int nparams,
> + unsigned long flags);
Looks like a couple of strays from a previous edit to change MigrationParams
[...]
>
> void
> -qemuMigrationPostcopyFailed(virQEMUDriverPtr driver,
> +qemuMigrationAnyPostcopyFailed(virQEMUDriverPtr driver,
> virDomainObjPtr vm);
This one needs the indention
[...]
Reviewed-by: John Ferlan <jferlan at redhat.com>
John
More information about the libvir-list
mailing list