[Libguestfs] [PATCH v2] v2v: disk: strip only common extension (RHBZ#1365005)

Richard W.M. Jones rjones at redhat.com
Mon Aug 8 15:32:49 UTC 2016


On Mon, Aug 08, 2016 at 05:21:35PM +0200, Pino Toscano wrote:
> In disk input mode, to determine the guest name strip the extension from
> the filename only if it's a very well extension for disk images.
> ---
>  v2v/input_disk.ml | 18 ++++++++++++++++--
>  1 file changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/v2v/input_disk.ml b/v2v/input_disk.ml
> index 17ad61d..d56c476 100644
> --- a/v2v/input_disk.ml
> +++ b/v2v/input_disk.ml
> @@ -42,9 +42,23 @@ class input_disk input_format disk = object
>       * the filename passed in.  Users can override this using the
>       * `-on name' option.
>       *)
> -    let name = Filename.basename disk in
>      let name =
> -      try Filename.chop_extension name with Invalid_argument _ -> name in
> +      let name = Filename.basename disk in
> +      (* Remove the extension (or suffix), only if it's one usually
> +       * used for disk images. *)
> +      let suffixes = [
> +        ".img"; ".qcow2"; ".raw"; ".vmdk";
> +        "-sda";
> +      ] in
> +      let rec loop = function
> +        | suff :: xs ->
> +          if Filename.check_suffix name suff then
> +            Filename.chop_suffix name suff
> +          else
> +            loop xs
> +        | [] -> name
> +      in
> +      loop suffixes in
>      if name = "" then
>        error (f_"-i disk: invalid input filename (%s)") disk;

ACK

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/




More information about the Libguestfs mailing list