[Libguestfs] [PATCH] v2v: -o vdsm should assume data domain at -os path

Shahar Havivi shaharh at redhat.com
Mon Jan 26 10:07:18 UTC 2015


On 26.01.15 09:11, Richard W.M. Jones wrote:
> On Tue, Jan 20, 2015 at 05:19:54PM +0200, Shahar Havivi wrote:
> > >From ff9261b201283f7bff16dc41721480e2e0a9f80f Mon Sep 17 00:00:00 2001
> > From: Shahar Havivi <shaharh at redhat.com>
> > Date: Tue, 20 Jan 2015 14:41:23 +0200
> > Subject: [PATCH] v2v: -o vdsm should assume data domain at -os path
> > 
> > Unlike -o rhev which have only one data domin, -o vdsm can and usually
> > does have multiple data domain.
> > The path to vdsm is pre mounted so no need to assume nfs path with -os
> > Example:
> > -o vdsm -os /rhev/data-center/<data-center-uuid>/<data-domain-uuid>
> > 
> > Bug-Url: https://bugzilla.redhat.com/1176591
> > Signed-off-by: Shahar Havivi <shaharh at redhat.com>
> > ---
> >  v2v/output_vdsm.ml | 18 ++++++++++++++----
> >  v2v/virt-v2v.pod   |  6 ++++--
> >  2 files changed, 18 insertions(+), 6 deletions(-)
> > 
> > diff --git a/v2v/output_vdsm.ml b/v2v/output_vdsm.ml
> > index 492f586..c7a243e 100644
> > --- a/v2v/output_vdsm.ml
> > +++ b/v2v/output_vdsm.ml
> > @@ -63,9 +63,8 @@ object
> >     * name of the target files that eventually get written by the main
> >     * code.
> >     *
> > -   * 'os' is the output storage (-os nfs:/export).  'source' contains a
> > -   * few useful fields such as the guest name.  'targets' describes the
> > -   * destination files.  We modify and return this list.
> > +   * 'os' is the output storage domain (-os /rhev/data/<data center>/<data domain>)
> > +   * this is already mounted path.
> >     *
> >     * Note it's good to fail here (early) if there are any problems, since
> >     * the next time we are called (in {!create_metadata}) we have already
> > @@ -79,7 +78,18 @@ object
> >          (List.length targets);
> >  
> >      let mp, uuid =
> > -      Output_rhev.mount_and_check_storage_domain verbose (s_"Data Domain") os in
> > +      let fields = string_nsplit "/" os in (* ... "data-center" "UUID" *)
> > +      let fields = List.rev fields in      (* "UUID" "data-center" ... *)
> > +      match fields with
> > +      | "" :: uuid :: rest                 (* handles trailing "/" case *)
> > +      | uuid :: rest
> > +          when String.length uuid = 36 ->
> > +        let mp = String.concat "/" (List.rev rest) in
> > +        mp, uuid
> > +      | _ ->
> > +        error (f_"vdsm: invalid -os parameter does not contain a valid UUID: %s")
> > +          os in
> > +
> >      dd_mp <- mp;
> >      dd_uuid <- uuid;
> >      if verbose then
> > diff --git a/v2v/virt-v2v.pod b/v2v/virt-v2v.pod
> > index a48bf59..2eb0079 100644
> > --- a/v2v/virt-v2v.pod
> > +++ b/v2v/virt-v2v.pod
> > @@ -456,8 +456,10 @@ See L</OUTPUT TO RHEV> below.
> >  
> >  Set the output method to I<vdsm>.
> >  
> > -This mode is similar to I<-o rhev> but is only used by RHEV VDSM
> > -when it runs virt-v2v under VDSM control.
> > +This mode is similar to I<-o rhev>, but the full path to the
> > +data domain must be given:
> > +C</rhev/data-center/E<lt>data-center-uuidE<gt>/E<lt>data-domain-uuidE<gt>>.
> > +This mode is only used when virt-v2v runs under VDSM control.
> >  
> >  =item B<-oa sparse>
> 
> Sorry for forgetting about this patch.  The tests don't pass when this
> patch is applied.  I'm not sure if the tests need to be modified or if
> the patch itself contains a mistake.
it does..., I will fix it
> 
> Also the patch itself doesn't apply without hand-editing.  Please
> install 'git-email' and use the 'git send-email' command to send
> patches to the list.
sure
> 
> Rich.
> 
> -- 
> Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
> Read my programming and virtualization blog: http://rwmj.wordpress.com
> virt-p2v converts physical machines to virtual machines.  Boot with a
> live CD or over the network (PXE) and turn machines into KVM guests.
> http://libguestfs.org/virt-v2v




More information about the Libguestfs mailing list