[libvirt] [PATCH] virsh: For virsh migrate --tunnelled, use the virDomainMigrateToURI3 API.

Richard W.M. Jones rjones at redhat.com
Thu May 15 11:17:20 UTC 2014


On Thu, May 15, 2014 at 12:30:24PM +0200, Jiri Denemark wrote:
> On Thu, May 08, 2014 at 21:49:40 +0100, Richard W.M. Jones wrote:
> > Using virsh migrate + the --tunnelled flag causes virsh to use the
> > wrong API.  This gives the error:
> > 
> >   error: use virDomainMigrateToURI3 for peer-to-peer migration
> > 
> > As the error message is wrong, this patch also corrects the error
> > message.
> > 
> > https://bugzilla.redhat.com/show_bug.cgi?id=1095924
> 
> Right, the error message is wrong but the suggested doesn't seem right
> either. The error you should see for virsh migrate --tunnelled is
> "cannot perform tunnelled migration without using peer2peer flag". Virsh
> should not try to guess that tunnelled implies peer2peer because there's
> a possibility someone implements tunnelled migration that transfers data
> through the client which controls migration and thus p2p flag would not
> be required and virDomainMigrateToURI3 would be a wrong API. Not that
> the APIs are designed for that but if I correctly remember discussions
> we had about this topic in the past, the goal was virsh should not be
> enforcing (or even automatically adding) p2p flag for tunnelled
> migrations for better compatibility with future.
> 
> > Signed-off-by: Richard W.M. Jones <rjones at redhat.com>
> > Cc: Jiri Denemark <jdenemar at redhat.com>
> > ---
> >  src/libvirt.c        | 2 +-
> >  tools/virsh-domain.c | 1 +
> >  2 files changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/libvirt.c b/src/libvirt.c
> > index 2cd793c..6a361f6 100644
> > --- a/src/libvirt.c
> > +++ b/src/libvirt.c
> > @@ -5726,7 +5726,7 @@ virDomainMigrate3(virDomainPtr domain,
> >      if (flags & (VIR_MIGRATE_PEER2PEER | VIR_MIGRATE_TUNNELLED)) {
> >          virReportInvalidArg(flags, "%s",
> >                              _("use virDomainMigrateToURI3 for peer-to-peer "
> > -                              "migration"));
> > +                              "or tunnelled migration"));
> >          goto error;
> >      }
> >  
> 
> In other words, I think we actually want VIR_MIGRATE_TUNNELLED to be
> removed from the condition above and just add another condition similar
> to what we have in the other migration APIs:
> 
>     if (flags & VIR_MIGRATE_TUNNELLED) {
>         virReportInvalidArg(flags, "%s",
>                             _("cannot perform tunnelled migration "
>                               "without using peer2peer flag"));
>         goto error;
>     }

I'll defer to whatever you want to do.  When I originally submitted
the patch, I believe that tunnelled !p2p migration was possible, based
on this diagram:

http://libvirt.org/migration.html#flowmanageddirect

I think the diagram and error message are both misleading.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org




More information about the libvir-list mailing list