[PATCH] virmigraiton: `qemuMigrationJobPhase` transformed for more generic use

Daniel Henrique Barboza danielhb413 at gmail.com
Mon Aug 31 13:54:10 UTC 2020


Commit title has a typo: virmigraiton -> virmigration

On 8/23/20 5:37 PM, Prathamesh Chavan wrote:
> `qemuMigrationJobPhase` was transformed into `virMigrationJobPhase`
> and a common util file `virmigration` was created to store its
> defination.

s/defination/definition

> 
> This is one of the initial steps we are taking towards making
> more and more code hypervisor agnostic. And this shall
> be followed by transformation of similar structs in the future.

This is a good initiative indeed.


With nits fixed:


Reviewed-by: Daniel Henrique Barboza <danielhb413 at gmail.com>

> 
> Signed-off-by: Prathamesh Chavan <pc44800 at gmail.com>
> ---
> This new version is sent specifically so that this
> patch is sent out separately.
> 
> Previous version of this patch and related discussion can be found
> here[1].
> 
> [1]: https://www.redhat.com/archives/libvir-list/2020-August/msg00478.html
> 
>   src/hypervisor/meson.build    |  1 +
>   src/hypervisor/virmigration.c | 41 +++++++++++++++++++
>   src/hypervisor/virmigration.h | 38 ++++++++++++++++++
>   src/libvirt_private.syms      |  4 ++
>   src/qemu/MIGRATION.txt        |  8 ++--
>   src/qemu/qemu_domainjob.c     |  4 +-
>   src/qemu/qemu_migration.c     | 74 +++++++++++++++++------------------
>   src/qemu/qemu_migration.h     | 17 +-------
>   src/qemu/qemu_process.c       | 48 +++++++++++------------
>   9 files changed, 151 insertions(+), 84 deletions(-)
>   create mode 100644 src/hypervisor/virmigration.c
>   create mode 100644 src/hypervisor/virmigration.h
> 
> diff --git a/src/hypervisor/meson.build b/src/hypervisor/meson.build
> index 85149c683e..c81bdfa2fc 100644
> --- a/src/hypervisor/meson.build
> +++ b/src/hypervisor/meson.build
> @@ -3,6 +3,7 @@ hypervisor_sources = [
>     'domain_driver.c',
>     'virclosecallbacks.c',
>     'virhostdev.c',
> +  'virmigration.c',
>   ]
>   
>   hypervisor_lib = static_library(
> diff --git a/src/hypervisor/virmigration.c b/src/hypervisor/virmigration.c
> new file mode 100644
> index 0000000000..2cad5a6b1b
> --- /dev/null
> +++ b/src/hypervisor/virmigration.c
> @@ -0,0 +1,41 @@
> +/*
> + * virmigration.c: hypervisor migration handling
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library.  If not, see
> + * <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <config.h>
> +
> +#include "virmigration.h"
> +#include "domain_driver.h"
> +#include "virlog.h"
> +
> +#define VIR_FROM_THIS VIR_FROM_DOMAIN
> +
> +VIR_LOG_INIT("util.migration");
> +
> +VIR_ENUM_IMPL(virMigrationJobPhase,
> +              VIR_MIGRATION_PHASE_LAST,
> +              "none",
> +              "perform2",
> +              "begin3",
> +              "perform3",
> +              "perform3_done",
> +              "confirm3_cancelled",
> +              "confirm3",
> +              "prepare",
> +              "finish2",
> +              "finish3",
> +);
> diff --git a/src/hypervisor/virmigration.h b/src/hypervisor/virmigration.h
> new file mode 100644
> index 0000000000..e03d71c1bb
> --- /dev/null
> +++ b/src/hypervisor/virmigration.h
> @@ -0,0 +1,38 @@
> +/*
> + * virmigration.h: hypervisor migration handling
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library.  If not, see
> + * <http://www.gnu.org/licenses/>.
> + */
> +
> +#pragma once
> +
> +#include "virenum.h"
> +
> +
> +typedef enum {
> +    VIR_MIGRATION_PHASE_NONE = 0,
> +    VIR_MIGRATION_PHASE_PERFORM2,
> +    VIR_MIGRATION_PHASE_BEGIN3,
> +    VIR_MIGRATION_PHASE_PERFORM3,
> +    VIR_MIGRATION_PHASE_PERFORM3_DONE,
> +    VIR_MIGRATION_PHASE_CONFIRM3_CANCELLED,
> +    VIR_MIGRATION_PHASE_CONFIRM3,
> +    VIR_MIGRATION_PHASE_PREPARE,
> +    VIR_MIGRATION_PHASE_FINISH2,
> +    VIR_MIGRATION_PHASE_FINISH3,
> +
> +    VIR_MIGRATION_PHASE_LAST
> +} virMigrationJobPhase;
> +VIR_ENUM_DECL(virMigrationJobPhase);
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index 01c2e710cd..cf78c2f27a 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -1474,6 +1474,10 @@ virHostdevUpdateActiveSCSIDevices;
>   virHostdevUpdateActiveUSBDevices;
>   
>   
> +# hypervisor/virmigration.h
> +virMigrationJobPhaseTypeFromString;
> +virMigrationJobPhaseTypeToString;
> +
>   # libvirt_internal.h
>   virConnectSupportsFeature;
>   virDomainMigrateBegin3;
> diff --git a/src/qemu/MIGRATION.txt b/src/qemu/MIGRATION.txt
> index e861fd001e..dd044c6064 100644
> --- a/src/qemu/MIGRATION.txt
> +++ b/src/qemu/MIGRATION.txt
> @@ -74,7 +74,7 @@ The sequence of calling qemuMigrationJob* helper methods is as follows:
>     migration type and version) has to start migration job and keep it active:
>   
>         qemuMigrationJobStart(driver, vm, QEMU_JOB_MIGRATION_{IN,OUT});
> -      qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_*);
> +      qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_*);
>         ...do work...
>         qemuMigrationJobContinue(vm);
>   
> @@ -82,7 +82,7 @@ The sequence of calling qemuMigrationJob* helper methods is as follows:
>   
>         if (!qemuMigrationJobIsActive(vm, QEMU_JOB_MIGRATION_{IN,OUT}))
>             return;
> -      qemuMigrationJobStartPhase(driver, vm, QEMU_MIGRATION_PHASE_*);
> +      qemuMigrationJobStartPhase(driver, vm, VIR_MIGRATION_PHASE_*);
>         ...do work...
>         qemuMigrationJobContinue(vm);
>   
> @@ -90,11 +90,11 @@ The sequence of calling qemuMigrationJob* helper methods is as follows:
>   
>         if (!qemuMigrationJobIsActive(vm, QEMU_JOB_MIGRATION_{IN,OUT}))
>             return;
> -      qemuMigrationJobStartPhase(driver, vm, QEMU_MIGRATION_PHASE_*);
> +      qemuMigrationJobStartPhase(driver, vm, VIR_MIGRATION_PHASE_*);
>         ...do work...
>         qemuMigrationJobFinish(driver, vm);
>   
>   While migration job is running (i.e., after qemuMigrationJobStart* but before
>   qemuMigrationJob{Continue,Finish}), migration phase can be advanced using
>   
> -      qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_*);
> +      qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_*);
> diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c
> index 52d3031baf..47c1da2bfe 100644
> --- a/src/qemu/qemu_domainjob.c
> +++ b/src/qemu/qemu_domainjob.c
> @@ -70,7 +70,7 @@ qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job,
>       switch (job) {
>       case QEMU_ASYNC_JOB_MIGRATION_OUT:
>       case QEMU_ASYNC_JOB_MIGRATION_IN:
> -        return qemuMigrationJobPhaseTypeToString(phase);
> +        return virMigrationJobPhaseTypeToString(phase);
>   
>       case QEMU_ASYNC_JOB_SAVE:
>       case QEMU_ASYNC_JOB_DUMP:
> @@ -96,7 +96,7 @@ qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob job,
>       switch (job) {
>       case QEMU_ASYNC_JOB_MIGRATION_OUT:
>       case QEMU_ASYNC_JOB_MIGRATION_IN:
> -        return qemuMigrationJobPhaseTypeFromString(phase);
> +        return virMigrationJobPhaseTypeFromString(phase);
>   
>       case QEMU_ASYNC_JOB_SAVE:
>       case QEMU_ASYNC_JOB_DUMP:
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index 142faa2cf9..a6f1da97bd 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -67,8 +67,8 @@
>   
>   VIR_LOG_INIT("qemu.qemu_migration");
>   
> -VIR_ENUM_IMPL(qemuMigrationJobPhase,
> -              QEMU_MIGRATION_PHASE_LAST,
> +VIR_ENUM_IMPL(virMigrationJobPhase,
> +              VIR_MIGRATION_PHASE_LAST,
>                 "none",
>                 "perform2",
>                 "begin3",
> @@ -91,13 +91,13 @@ qemuMigrationJobStart(virQEMUDriverPtr driver,
>   static void
>   qemuMigrationJobSetPhase(virQEMUDriverPtr driver,
>                            virDomainObjPtr vm,
> -                         qemuMigrationJobPhase phase)
> +                         virMigrationJobPhase phase)
>       ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
>   
>   static void
>   qemuMigrationJobStartPhase(virQEMUDriverPtr driver,
>                              virDomainObjPtr vm,
> -                           qemuMigrationJobPhase phase)
> +                           virMigrationJobPhase phase)
>       ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
>   
>   static void
> @@ -2023,13 +2023,13 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm,
>                 " was closed; canceling the migration",
>                 vm->def->name);
>   
> -    switch ((qemuMigrationJobPhase) priv->job.phase) {
> -    case QEMU_MIGRATION_PHASE_BEGIN3:
> +    switch ((virMigrationJobPhase) priv->job.phase) {
> +    case VIR_MIGRATION_PHASE_BEGIN3:
>           /* just forget we were about to migrate */
>           qemuDomainObjDiscardAsyncJob(driver, vm);
>           break;
>   
> -    case QEMU_MIGRATION_PHASE_PERFORM3_DONE:
> +    case VIR_MIGRATION_PHASE_PERFORM3_DONE:
>           VIR_WARN("Migration of domain %s finished but we don't know if the"
>                    " domain was successfully started on destination or not",
>                    vm->def->name);
> @@ -2039,19 +2039,19 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm,
>           qemuDomainObjDiscardAsyncJob(driver, vm);
>           break;
>   
> -    case QEMU_MIGRATION_PHASE_PERFORM3:
> +    case VIR_MIGRATION_PHASE_PERFORM3:
>           /* cannot be seen without an active migration API; unreachable */
> -    case QEMU_MIGRATION_PHASE_CONFIRM3:
> -    case QEMU_MIGRATION_PHASE_CONFIRM3_CANCELLED:
> +    case VIR_MIGRATION_PHASE_CONFIRM3:
> +    case VIR_MIGRATION_PHASE_CONFIRM3_CANCELLED:
>           /* all done; unreachable */
> -    case QEMU_MIGRATION_PHASE_PREPARE:
> -    case QEMU_MIGRATION_PHASE_FINISH2:
> -    case QEMU_MIGRATION_PHASE_FINISH3:
> +    case VIR_MIGRATION_PHASE_PREPARE:
> +    case VIR_MIGRATION_PHASE_FINISH2:
> +    case VIR_MIGRATION_PHASE_FINISH3:
>           /* incoming migration; unreachable */
> -    case QEMU_MIGRATION_PHASE_PERFORM2:
> +    case VIR_MIGRATION_PHASE_PERFORM2:
>           /* single phase outgoing migration; unreachable */
> -    case QEMU_MIGRATION_PHASE_NONE:
> -    case QEMU_MIGRATION_PHASE_LAST:
> +    case VIR_MIGRATION_PHASE_NONE:
> +    case VIR_MIGRATION_PHASE_LAST:
>           /* unreachable */
>           ;
>       }
> @@ -2087,7 +2087,7 @@ qemuMigrationSrcBeginPhase(virQEMUDriverPtr driver,
>        * change protection.
>        */
>       if (priv->job.asyncJob == QEMU_ASYNC_JOB_MIGRATION_OUT)
> -        qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_BEGIN3);
> +        qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_BEGIN3);
>   
>       if (!qemuMigrationSrcIsAllowed(driver, vm, true, flags))
>           return NULL;
> @@ -2546,7 +2546,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver,
>       if (qemuMigrationJobStart(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN,
>                                 flags) < 0)
>           goto cleanup;
> -    qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PREPARE);
> +    qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PREPARE);
>   
>       /* Domain starts inactive, even if the domain XML had an id field. */
>       vm->def->id = -1;
> @@ -3007,10 +3007,9 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver,
>   
>       virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
>   
> -    qemuMigrationJobSetPhase(driver, vm,
> -                             retcode == 0
> -                             ? QEMU_MIGRATION_PHASE_CONFIRM3
> -                             : QEMU_MIGRATION_PHASE_CONFIRM3_CANCELLED);
> +    qemuMigrationJobSetPhase(driver, vm, retcode == 0
> +                             ? VIR_MIGRATION_PHASE_CONFIRM3
> +                             : VIR_MIGRATION_PHASE_CONFIRM3_CANCELLED);
>   
>       if (!(mig = qemuMigrationEatCookie(driver, vm->def, priv->origname, priv,
>                                          cookiein, cookieinlen,
> @@ -3100,7 +3099,7 @@ qemuMigrationSrcConfirm(virQEMUDriverPtr driver,
>                           unsigned int flags,
>                           int cancelled)
>   {
> -    qemuMigrationJobPhase phase;
> +    virMigrationJobPhase phase;
>       virQEMUDriverConfigPtr cfg = NULL;
>       int ret = -1;
>   
> @@ -3110,9 +3109,9 @@ qemuMigrationSrcConfirm(virQEMUDriverPtr driver,
>           goto cleanup;
>   
>       if (cancelled)
> -        phase = QEMU_MIGRATION_PHASE_CONFIRM3_CANCELLED;
> +        phase = VIR_MIGRATION_PHASE_CONFIRM3_CANCELLED;
>       else
> -        phase = QEMU_MIGRATION_PHASE_CONFIRM3;
> +        phase = VIR_MIGRATION_PHASE_CONFIRM3;
>   
>       qemuMigrationJobStartPhase(driver, vm, phase);
>       virCloseCallbacksUnset(driver->closeCallbacks, vm,
> @@ -4059,7 +4058,7 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr driver,
>        * until the migration is complete.
>        */
>       VIR_DEBUG("Perform %p", sconn);
> -    qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM2);
> +    qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM2);
>       if (flags & VIR_MIGRATE_TUNNELLED)
>           ret = qemuMigrationSrcPerformTunnel(driver, vm, st, NULL,
>                                               NULL, 0, NULL, NULL,
> @@ -4297,7 +4296,7 @@ qemuMigrationSrcPerformPeer2Peer3(virQEMUDriverPtr driver,
>        * confirm migration completion.
>        */
>       VIR_DEBUG("Perform3 %p uri=%s", sconn, NULLSTR(uri));
> -    qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM3);
> +    qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM3);
>       VIR_FREE(cookiein);
>       cookiein = g_steal_pointer(&cookieout);
>       cookieinlen = cookieoutlen;
> @@ -4322,8 +4321,7 @@ qemuMigrationSrcPerformPeer2Peer3(virQEMUDriverPtr driver,
>       if (ret < 0) {
>           virErrorPreserveLast(&orig_err);
>       } else {
> -        qemuMigrationJobSetPhase(driver, vm,
> -                                 QEMU_MIGRATION_PHASE_PERFORM3_DONE);
> +        qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM3_DONE);
>       }
>   
>       /* If Perform returns < 0, then we need to cancel the VM
> @@ -4687,7 +4685,7 @@ qemuMigrationSrcPerformJob(virQEMUDriverPtr driver,
>                                                  migParams, flags, dname, resource,
>                                                  &v3proto);
>       } else {
> -        qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM2);
> +        qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM2);
>           ret = qemuMigrationSrcPerformNative(driver, vm, persist_xml, uri, cookiein, cookieinlen,
>                                               cookieout, cookieoutlen,
>                                               flags, resource, NULL, NULL, 0, NULL,
> @@ -4772,7 +4770,7 @@ qemuMigrationSrcPerformPhase(virQEMUDriverPtr driver,
>           return ret;
>       }
>   
> -    qemuMigrationJobStartPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM3);
> +    qemuMigrationJobStartPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM3);
>       virCloseCallbacksUnset(driver->closeCallbacks, vm,
>                              qemuMigrationSrcCleanup);
>   
> @@ -4786,7 +4784,7 @@ qemuMigrationSrcPerformPhase(virQEMUDriverPtr driver,
>           goto endjob;
>       }
>   
> -    qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM3_DONE);
> +    qemuMigrationJobSetPhase(driver, vm, VIR_MIGRATION_PHASE_PERFORM3_DONE);
>   
>       if (virCloseCallbacksSet(driver->closeCallbacks, vm, conn,
>                                qemuMigrationSrcCleanup) < 0)
> @@ -5019,8 +5017,8 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver,
>       ignore_value(virTimeMillisNow(&timeReceived));
>   
>       qemuMigrationJobStartPhase(driver, vm,
> -                               v3proto ? QEMU_MIGRATION_PHASE_FINISH3
> -                                       : QEMU_MIGRATION_PHASE_FINISH2);
> +                               v3proto ? VIR_MIGRATION_PHASE_FINISH3
> +                                       : VIR_MIGRATION_PHASE_FINISH2);
>   
>       qemuDomainCleanupRemove(vm, qemuMigrationDstPrepareCleanup);
>       g_clear_pointer(&priv->job.completed, qemuDomainJobInfoFree);
> @@ -5498,14 +5496,14 @@ qemuMigrationJobStart(virQEMUDriverPtr driver,
>   static void
>   qemuMigrationJobSetPhase(virQEMUDriverPtr driver,
>                            virDomainObjPtr vm,
> -                         qemuMigrationJobPhase phase)
> +                         virMigrationJobPhase phase)
>   {
>       qemuDomainObjPrivatePtr priv = vm->privateData;
>   
>       if (phase < priv->job.phase) {
>           VIR_ERROR(_("migration protocol going backwards %s => %s"),
> -                  qemuMigrationJobPhaseTypeToString(priv->job.phase),
> -                  qemuMigrationJobPhaseTypeToString(phase));
> +                  virMigrationJobPhaseTypeToString(priv->job.phase),
> +                  virMigrationJobPhaseTypeToString(phase));
>           return;
>       }
>   
> @@ -5515,7 +5513,7 @@ qemuMigrationJobSetPhase(virQEMUDriverPtr driver,
>   static void
>   qemuMigrationJobStartPhase(virQEMUDriverPtr driver,
>                              virDomainObjPtr vm,
> -                           qemuMigrationJobPhase phase)
> +                           virMigrationJobPhase phase)
>   {
>       qemuMigrationJobSetPhase(driver, vm, phase);
>   }
> diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h
> index b6f88d3fd9..b05f5254b4 100644
> --- a/src/qemu/qemu_migration.h
> +++ b/src/qemu/qemu_migration.h
> @@ -24,6 +24,7 @@
>   #include "qemu_conf.h"
>   #include "qemu_domain.h"
>   #include "qemu_migration_params.h"
> +#include "virmigration.h"
>   #include "virenum.h"
>   
>   /*
> @@ -87,22 +88,6 @@
>       NULL
>   
>   
> -typedef enum {
> -    QEMU_MIGRATION_PHASE_NONE = 0,
> -    QEMU_MIGRATION_PHASE_PERFORM2,
> -    QEMU_MIGRATION_PHASE_BEGIN3,
> -    QEMU_MIGRATION_PHASE_PERFORM3,
> -    QEMU_MIGRATION_PHASE_PERFORM3_DONE,
> -    QEMU_MIGRATION_PHASE_CONFIRM3_CANCELLED,
> -    QEMU_MIGRATION_PHASE_CONFIRM3,
> -    QEMU_MIGRATION_PHASE_PREPARE,
> -    QEMU_MIGRATION_PHASE_FINISH2,
> -    QEMU_MIGRATION_PHASE_FINISH3,
> -
> -    QEMU_MIGRATION_PHASE_LAST
> -} qemuMigrationJobPhase;
> -VIR_ENUM_DECL(qemuMigrationJobPhase);
> -
>   char *
>   qemuMigrationSrcBegin(virConnectPtr conn,
>                         virDomainObjPtr vm,
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index 126fabf5ef..fd29f83e0d 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -3433,24 +3433,24 @@ qemuProcessRecoverMigrationIn(virQEMUDriverPtr driver,
>                       (state == VIR_DOMAIN_RUNNING &&
>                        reason == VIR_DOMAIN_RUNNING_POSTCOPY);
>   
> -    switch ((qemuMigrationJobPhase) job->phase) {
> -    case QEMU_MIGRATION_PHASE_NONE:
> -    case QEMU_MIGRATION_PHASE_PERFORM2:
> -    case QEMU_MIGRATION_PHASE_BEGIN3:
> -    case QEMU_MIGRATION_PHASE_PERFORM3:
> -    case QEMU_MIGRATION_PHASE_PERFORM3_DONE:
> -    case QEMU_MIGRATION_PHASE_CONFIRM3_CANCELLED:
> -    case QEMU_MIGRATION_PHASE_CONFIRM3:
> -    case QEMU_MIGRATION_PHASE_LAST:
> +    switch ((virMigrationJobPhase) job->phase) {
> +    case VIR_MIGRATION_PHASE_NONE:
> +    case VIR_MIGRATION_PHASE_PERFORM2:
> +    case VIR_MIGRATION_PHASE_BEGIN3:
> +    case VIR_MIGRATION_PHASE_PERFORM3:
> +    case VIR_MIGRATION_PHASE_PERFORM3_DONE:
> +    case VIR_MIGRATION_PHASE_CONFIRM3_CANCELLED:
> +    case VIR_MIGRATION_PHASE_CONFIRM3:
> +    case VIR_MIGRATION_PHASE_LAST:
>           /* N/A for incoming migration */
>           break;
>   
> -    case QEMU_MIGRATION_PHASE_PREPARE:
> +    case VIR_MIGRATION_PHASE_PREPARE:
>           VIR_DEBUG("Killing unfinished incoming migration for domain %s",
>                     vm->def->name);
>           return -1;
>   
> -    case QEMU_MIGRATION_PHASE_FINISH2:
> +    case VIR_MIGRATION_PHASE_FINISH2:
>           /* source domain is already killed so let's just resume the domain
>            * and hope we are all set */
>           VIR_DEBUG("Incoming migration finished, resuming domain %s",
> @@ -3462,7 +3462,7 @@ qemuProcessRecoverMigrationIn(virQEMUDriverPtr driver,
>           }
>           break;
>   
> -    case QEMU_MIGRATION_PHASE_FINISH3:
> +    case VIR_MIGRATION_PHASE_FINISH3:
>           /* migration finished, we started resuming the domain but didn't
>            * confirm success or failure yet; killing it seems safest unless
>            * we already started guest CPUs or we were in post-copy mode */
> @@ -3494,22 +3494,22 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr driver,
>                        reason == VIR_DOMAIN_PAUSED_POSTCOPY_FAILED);
>       bool resume = false;
>   
> -    switch ((qemuMigrationJobPhase) job->phase) {
> -    case QEMU_MIGRATION_PHASE_NONE:
> -    case QEMU_MIGRATION_PHASE_PREPARE:
> -    case QEMU_MIGRATION_PHASE_FINISH2:
> -    case QEMU_MIGRATION_PHASE_FINISH3:
> -    case QEMU_MIGRATION_PHASE_LAST:
> +    switch ((virMigrationJobPhase) job->phase) {
> +    case VIR_MIGRATION_PHASE_NONE:
> +    case VIR_MIGRATION_PHASE_PREPARE:
> +    case VIR_MIGRATION_PHASE_FINISH2:
> +    case VIR_MIGRATION_PHASE_FINISH3:
> +    case VIR_MIGRATION_PHASE_LAST:
>           /* N/A for outgoing migration */
>           break;
>   
> -    case QEMU_MIGRATION_PHASE_BEGIN3:
> +    case VIR_MIGRATION_PHASE_BEGIN3:
>           /* nothing happened so far, just forget we were about to migrate the
>            * domain */
>           break;
>   
> -    case QEMU_MIGRATION_PHASE_PERFORM2:
> -    case QEMU_MIGRATION_PHASE_PERFORM3:
> +    case VIR_MIGRATION_PHASE_PERFORM2:
> +    case VIR_MIGRATION_PHASE_PERFORM3:
>           /* migration is still in progress, let's cancel it and resume the
>            * domain; however we can only do that before migration enters
>            * post-copy mode
> @@ -3527,7 +3527,7 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr driver,
>           }
>           break;
>   
> -    case QEMU_MIGRATION_PHASE_PERFORM3_DONE:
> +    case VIR_MIGRATION_PHASE_PERFORM3_DONE:
>           /* migration finished but we didn't have a chance to get the result
>            * of Finish3 step; third party needs to check what to do next; in
>            * post-copy mode we can use PAUSED_POSTCOPY_FAILED state for this
> @@ -3536,7 +3536,7 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr driver,
>               qemuMigrationAnyPostcopyFailed(driver, vm);
>           break;
>   
> -    case QEMU_MIGRATION_PHASE_CONFIRM3_CANCELLED:
> +    case VIR_MIGRATION_PHASE_CONFIRM3_CANCELLED:
>           /* Finish3 failed, we need to resume the domain, but once we enter
>            * post-copy mode there's no way back, so let's just mark the domain
>            * as broken in that case
> @@ -3550,7 +3550,7 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr driver,
>           }
>           break;
>   
> -    case QEMU_MIGRATION_PHASE_CONFIRM3:
> +    case VIR_MIGRATION_PHASE_CONFIRM3:
>           /* migration completed, we need to kill the domain here */
>           *stopFlags |= VIR_QEMU_PROCESS_STOP_MIGRATED;
>           return -1;
> 




More information about the libvir-list mailing list