[Libguestfs] [PATCH] virt-v2v: Default to non-virtio drivers if driver path is missing
Matthew Booth
mbooth at redhat.com
Tue Jan 7 11:04:20 UTC 2014
On 03/01/14 20:38, Mike Latimer wrote:
> During a Windows conversion, _prepare_virtio_drivers aborts the conversion
> completely if the configured virtio driver path does not exist. If the path
> exists but is empty, the conversion completes correctly by defaulting to the
> non-virtio drivers. This patch treats a missing directory just like missing
> drivers, by reporting a message, then defaulting to non-virtio drivers.
>
> ---
> lib/Sys/VirtConvert/Converter/Windows.pm | 23 +++++++++++++++++------
> 1 file changed, 17 insertions(+), 6 deletions(-)
>
> diff --git a/lib/Sys/VirtConvert/Converter/Windows.pm b/lib/Sys/VirtConvert/Converter/Windows.pm
> index ce8b474..feeb2b9 100644
> --- a/lib/Sys/VirtConvert/Converter/Windows.pm
> +++ b/lib/Sys/VirtConvert/Converter/Windows.pm
> @@ -312,13 +312,24 @@ sub _prepare_virtio_drivers
> return ($block, $net);
> }
>
> - # We can't proceed if there are any files missing
> + # We can't install any drivers if the defined virtio path is missing
> my $virtio_guest = $config->get_transfer_path($virtio_host);
> - v2vdie __x('Installation failed because the following '.
> - 'files referenced in the configuration file are '.
> - 'required, but missing: {list}',
> - list => $virtio_host)
> - unless (defined($virtio_host) && $g->exists($virtio_guest));
> + if (!(defined($virtio_host) && $g->exists($virtio_guest))) {
> + my $block = 'ide';
> + my $net = 'rtl8139';
> +
> + logmsg WARN, __x('The installation of virtio drivers failed because '.
> + 'the driver path referenced in the configuration file '.
> + '({path}) is required, but missing. The guest will be '.
> + 'configured with a {block} block storage adapter and a {net} '.
> + 'network adapter, but no drivers will be installed for them. '.
> + 'If the {block} driver is not already installed in the guest,'.
> + ' it will fail to boot. If the {net} driver is not already '.
> + 'installed in the guest, you must install it manually after '.
> + 'conversion.', path => $virtio_host, block => $block,
> + net => $net);
> + return ($block, $net);
> + }
>
> my ($block, $net);
> my $viostor_guest = File::Spec->catfile($virtio_guest, 'viostor.sys');
>
ACK.
Thanks, Mike. All pushed.
Matt
--
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team
GPG ID: D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490
More information about the Libguestfs
mailing list