[libvirt] [PATCH] Report error when both live and offline flags are used for migration.

Nitesh Konkar niteshkonkar.libvirt at gmail.com
Wed Mar 9 15:11:45 UTC 2016


Hello Jiri,

On Tue, Mar 8, 2016 at 8:31 PM, Jiri Denemark <jdenemar at redhat.com> wrote:

> On Thu, Mar 03, 2016 at 06:08:20 -0500, Nitesh Konkar wrote:
> > ---
> >  src/libvirt-domain.c | 27 +++++++++++++++++++++++++++
> >  1 file changed, 27 insertions(+)
> >
> > diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
> > index 9491845..dc11945 100644
> > --- a/src/libvirt-domain.c
> > +++ b/src/libvirt-domain.c
> > @@ -3617,6 +3617,15 @@ virDomainMigrate(virDomainPtr domain,
> >                               error);
> >
> > +    if (flags & VIR_MIGRATE_OFFLINE) {
>
> I asked you to move the following if () {...} block...
>
>
Sorry, I missed this out. Will rectify it in the next patch.


> > +        if (flags & VIR_MIGRATE_LIVE) {
> > +            virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
> > +                           _("Live and offline migration flags are "
> > +                             "mutually exclusive"));
> > +            goto error;
> > +        }
> > +    }
> > +
> >      if (flags & VIR_MIGRATE_OFFLINE) {
>
> ... here.
>
> >          if (!VIR_DRV_SUPPORTS_FEATURE(domain->conn->driver,
> domain->conn,
> >
> VIR_DRV_FEATURE_MIGRATION_OFFLINE)) {
> >              virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
>
> I wanted to do that and push the patch, but I realized the patch is
> incomplete (it doesn't cover MigrateToURI* APIs) and there is even a
> better place to add these checks...
>
> Something like the following (untested):
>
>
But, changes in qemuMigrationBeginPhase and qemuMigrationPrepareAny  would
necessitate changes to all drivers domainMigrate* specific implementations
right ?
I feel what we have is better. What is your opinion on it ?  :-)


> diff --git i/src/qemu/qemu_migration.c w/src/qemu/qemu_migration.c
> index 64cbffa..36a939d 100644
> --- i/src/qemu/qemu_migration.c
> +++ w/src/qemu/qemu_migration.c
> @@ -3081,6 +3081,12 @@ qemuMigrationBeginPhase(virQEMUDriverPtr driver,
>          goto cleanup;
>
>      if (flags & VIR_MIGRATE_OFFLINE) {
> +        if (flags & VIR_MIGRATE_LIVE) {
> +            virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> +                           _("live and offline migration flags are "
> +                             "mutually exclusive"));
> +            goto cleanup;
> +        }
>          if (flags & (VIR_MIGRATE_NON_SHARED_DISK |
>                       VIR_MIGRATE_NON_SHARED_INC)) {
>              virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> @@ -3335,6 +3341,12 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver,
>      virNWFilterReadLockFilterUpdates();
>
>      if (flags & VIR_MIGRATE_OFFLINE) {
> +        if (flags & VIR_MIGRATE_LIVE) {
> +            virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> +                           _("live and offline migration flags are "
> +                             "mutually exclusive"));
> +            goto cleanup;
> +        }
>          if (flags & (VIR_MIGRATE_NON_SHARED_DISK |
>                       VIR_MIGRATE_NON_SHARED_INC)) {
>              virReportError(VIR_ERR_OPERATION_INVALID, "%s",
>
Looking forward to your reply.

Warm Regards,
Nitesh Konkar.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160309/ab27806b/attachment-0001.htm>


More information about the libvir-list mailing list