[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Libguestfs] [PATCH] v2v: Filter out the transfer iso if it's returned by inspect_os()



On Thu, Apr 21, 2011 at 06:01:24PM +0100, Matthew Booth wrote:
> inspect_os() shouldn't do this, but ultimately it's heuristic. As we know what
> the transfer device is, we can double-check the output.
> ---
>  v2v/virt-v2v.pl |   18 +++++++++++++++++-
>  1 files changed, 17 insertions(+), 1 deletions(-)
> 
> diff --git a/v2v/virt-v2v.pl b/v2v/virt-v2v.pl
> index fe07ae9..6e73102 100755
> --- a/v2v/virt-v2v.pl
> +++ b/v2v/virt-v2v.pl
> @@ -496,11 +496,18 @@ my $g = new Sys::VirtConvert::GuestfsHandle(
>      $output_method eq 'rhev'
>  );
>  
> +# Get the name of the appliance's transfer device, if it has one
> +my $transferdev;
> +if (defined($transferiso)) {
> +    my @devices = $g->list_devices();
> +    $transferdev = pop(@devices);
> +}
> +
>  my $guestcaps;
>  my $desc;
>  eval {
>      # Inspect the guest
> -    $desc = inspect_guest($g);
> +    $desc = inspect_guest($g, $transferdev);
>  
>      # Modify the guest and its metadata
>      $guestcaps =
> @@ -559,9 +566,18 @@ sub signal_exit
>  sub inspect_guest
>  {
>      my $g = shift;
> +    my $transferdev = shift;
>  
>      # Get list of roots, sorted.
>      my @roots = $g->inspect_os ();
> +
> +    # Filter out the transfer device from the results of inspect_os
> +    # There's a libguestfs bug (fixed upstream) which meant the transfer ISO
> +    # could be erroneously detected as an unknown Windows OS. As we know what it
> +    # is, we can filter out the transfer device here. Even when the fix is
> +    # released this is reasonable belt & braces.
> +    @roots = grep(!/^\Q$transferdev\E$/, @roots);
> +
>      @roots = sort @roots;
>  
>      my $root_dev;

ACK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming blog: http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)
http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]