Fix virt-v2v hang when given incorrect vpx:// URL
resolves: rhbz#2041886
This commit is contained in:
parent
7c71720a7f
commit
211690d47b
549
0003-Restore-message-about-setting-up-the-input-and-outpu.patch
Normal file
549
0003-Restore-message-about-setting-up-the-input-and-outpu.patch
Normal file
@ -0,0 +1,549 @@
|
||||
From 924aa8b70a64e9b076f8f56328a2b49650ab713c Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 13:10:45 +0000
|
||||
Subject: [PATCH] Restore message about setting up the input and output
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Old virt-v2v would print a summary of the input and output options
|
||||
before connecting to the input/output, looking something like this:
|
||||
|
||||
[ 0.2] Opening the source -i libvirt -ic [etc]
|
||||
|
||||
This gave reassurance that virt-v2v was doing something in the case
|
||||
where the source was slow or unreachable. In particular if you use
|
||||
-i libvirt with a vCenter URL, and the URL is wrong, libvirt hangs for
|
||||
a few minutes without printing anything.
|
||||
|
||||
Modular virt-v2v rearranged things so the connecting phase was silent,
|
||||
which meant that in the case above virt-v2v appeared to hang for a few
|
||||
minutes printing nothing at all.
|
||||
|
||||
This change adds to_string functions to all the input and output
|
||||
methods and uses them to print a message like:
|
||||
|
||||
[ 0.0] Setting up the source: -i libvirt -ic [etc]
|
||||
|
||||
The hang still happens, but at least it's now clear where it's hanging.
|
||||
|
||||
Note the old "Opening the source" message now refers to libguestfs
|
||||
connecting to the NBD source disk pipeline.
|
||||
|
||||
Typical full output looks like this:
|
||||
|
||||
$ virt-v2v -i disk /var/tmp/fedora-35.img -o disk -os /var/tmp/out
|
||||
[ 0.0] Setting up the source: -i disk /var/tmp/fedora-35.img
|
||||
[ 1.1] Opening the source
|
||||
[ 5.9] Inspecting the source
|
||||
[ 11.5] Checking for sufficient free disk space in the guest
|
||||
[ 11.5] Converting Fedora Linux 35 (Thirty Five) to run on KVM
|
||||
virt-v2v: warning: /files/boot/grub2/device.map/hd0 references unknown
|
||||
device "vda". You may have to fix this entry manually after conversion.
|
||||
virt-v2v: This guest has virtio drivers installed.
|
||||
[ 57.4] Mapping filesystem data to avoid copying unused and blank areas
|
||||
[ 61.0] Closing the overlay
|
||||
[ 61.7] Assigning disks to buses
|
||||
[ 61.7] Checking if the guest needs BIOS or UEFI to boot
|
||||
[ 61.7] Setting up the destination: -o disk -os /var/tmp/out
|
||||
[ 62.8] Copying disk 1/1
|
||||
█ 100% [****************************************]
|
||||
[ 81.7] Creating output metadata
|
||||
[ 81.7] Finishing off
|
||||
|
||||
Reported-by: Xiaodai Wang
|
||||
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2041886
|
||||
Fixes: commit 255722cbf39afc0b012e2ac00d16fa6ba2f8c21f
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
input/input.ml | 1 +
|
||||
input/input.mli | 4 ++++
|
||||
input/input_disk.ml | 2 ++
|
||||
input/input_libvirt.ml | 10 ++++++++++
|
||||
input/input_ova.ml | 2 ++
|
||||
input/input_vcenter_https.ml | 9 +++++++++
|
||||
input/input_vddk.ml | 9 +++++++++
|
||||
input/input_vmx.ml | 2 ++
|
||||
input/input_xen_ssh.ml | 9 +++++++++
|
||||
output/output.ml | 1 +
|
||||
output/output.mli | 4 ++++
|
||||
output/output_disk.ml | 6 ++++++
|
||||
output/output_glance.ml | 2 ++
|
||||
output/output_json.ml | 6 ++++++
|
||||
output/output_libvirt.ml | 6 ++++++
|
||||
output/output_null.ml | 2 ++
|
||||
output/output_openstack.ml | 16 ++++++++++++++++
|
||||
output/output_qemu.ml | 6 ++++++
|
||||
output/output_rhv.ml | 2 ++
|
||||
output/output_rhv_upload.ml | 9 +++++++++
|
||||
output/output_vdsm.ml | 2 ++
|
||||
tests/test-v2v-i-vmx-1.expected | 1 +
|
||||
tests/test-v2v-i-vmx-2.expected | 1 +
|
||||
tests/test-v2v-i-vmx-3.expected | 1 +
|
||||
tests/test-v2v-i-vmx-4.expected | 1 +
|
||||
tests/test-v2v-i-vmx-5.expected | 1 +
|
||||
tests/test-v2v-i-vmx.sh | 3 +++
|
||||
tests/test-v2v-print-source.sh | 3 +++
|
||||
v2v/v2v.ml | 4 ++++
|
||||
29 files changed, 125 insertions(+)
|
||||
|
||||
diff --git a/input/input.ml b/input/input.ml
|
||||
index 00474bec..b1175fa3 100644
|
||||
--- a/input/input.ml
|
||||
+++ b/input/input.ml
|
||||
@@ -26,6 +26,7 @@ type options = {
|
||||
}
|
||||
|
||||
module type INPUT = sig
|
||||
+ val to_string : options -> string list -> string
|
||||
val setup : string -> options -> string list -> Types.source
|
||||
val query_input_options : unit -> unit
|
||||
end
|
||||
diff --git a/input/input.mli b/input/input.mli
|
||||
index 4f899b1d..b61df3e9 100644
|
||||
--- a/input/input.mli
|
||||
+++ b/input/input.mli
|
||||
@@ -26,6 +26,10 @@ type options = {
|
||||
}
|
||||
|
||||
module type INPUT = sig
|
||||
+ val to_string : options -> string list -> string
|
||||
+ (** [to_string options args] converts the source to a printable
|
||||
+ string (for messages). *)
|
||||
+
|
||||
val setup : string -> options -> string list -> Types.source
|
||||
(** [setup dir options args]
|
||||
|
||||
diff --git a/input/input_disk.ml b/input/input_disk.ml
|
||||
index bcdaf78c..2b21950a 100644
|
||||
--- a/input/input_disk.ml
|
||||
+++ b/input/input_disk.ml
|
||||
@@ -142,6 +142,8 @@ and detect_local_input_format { input_format } filenames =
|
||||
get_format formats
|
||||
|
||||
module Disk = struct
|
||||
+ let to_string options args = String.concat " " ("-i disk" :: args)
|
||||
+
|
||||
let setup dir options args =
|
||||
disk_source dir options args
|
||||
|
||||
diff --git a/input/input_libvirt.ml b/input/input_libvirt.ml
|
||||
index f20082c2..33f61086 100644
|
||||
--- a/input/input_libvirt.ml
|
||||
+++ b/input/input_libvirt.ml
|
||||
@@ -129,6 +129,14 @@ and libvirt_xml_source _ args =
|
||||
source, disks
|
||||
|
||||
module Libvirt_ = struct
|
||||
+ let to_string options args =
|
||||
+ let xs = "-i libvirt" :: args in
|
||||
+ let xs =
|
||||
+ match options.input_conn with
|
||||
+ | Some ic -> ("-ic " ^ ic) :: xs
|
||||
+ | None -> xs in
|
||||
+ String.concat " " xs
|
||||
+
|
||||
let setup dir options args =
|
||||
let source, data = libvirt_source options args in
|
||||
libvirt_servers dir data;
|
||||
@@ -139,6 +147,8 @@ module Libvirt_ = struct
|
||||
end
|
||||
|
||||
module LibvirtXML = struct
|
||||
+ let to_string options args = String.concat " " ("-i libvirtxml" :: args)
|
||||
+
|
||||
let setup dir options args =
|
||||
let source, data = libvirt_xml_source options args in
|
||||
libvirt_servers dir data;
|
||||
diff --git a/input/input_ova.ml b/input/input_ova.ml
|
||||
index 0115f771..19c22d55 100644
|
||||
--- a/input/input_ova.ml
|
||||
+++ b/input/input_ova.ml
|
||||
@@ -229,6 +229,8 @@ and error_missing_href href =
|
||||
error (f_"-i ova: OVF references file ‘%s’ which was not found in the OVA archive") href
|
||||
|
||||
module OVA = struct
|
||||
+ let to_string options args = String.concat " " ("-i ova" :: args)
|
||||
+
|
||||
let setup dir options args =
|
||||
ova_source dir options args
|
||||
|
||||
diff --git a/input/input_vcenter_https.ml b/input/input_vcenter_https.ml
|
||||
index 24ac927d..bcefed16 100644
|
||||
--- a/input/input_vcenter_https.ml
|
||||
+++ b/input/input_vcenter_https.ml
|
||||
@@ -117,6 +117,15 @@ let rec vcenter_https_source dir options args =
|
||||
source
|
||||
|
||||
module VCenterHTTPS = struct
|
||||
+ let to_string options args =
|
||||
+ let xs = args in
|
||||
+ let xs =
|
||||
+ match options.input_conn with
|
||||
+ | Some ic -> ("-ic " ^ ic) :: xs
|
||||
+ | None -> xs in
|
||||
+ let xs = "-i libvirt" :: xs in
|
||||
+ String.concat " " xs
|
||||
+
|
||||
let setup dir options args =
|
||||
vcenter_https_source dir options args
|
||||
|
||||
diff --git a/input/input_vddk.ml b/input/input_vddk.ml
|
||||
index 1cfb7f5e..b9a0b8bf 100644
|
||||
--- a/input/input_vddk.ml
|
||||
+++ b/input/input_vddk.ml
|
||||
@@ -193,6 +193,15 @@ and vddk_source dir options args =
|
||||
source
|
||||
|
||||
module VDDK = struct
|
||||
+ let to_string options args =
|
||||
+ let xs = "-it vddk" :: args in
|
||||
+ let xs =
|
||||
+ match options.input_conn with
|
||||
+ | Some ic -> ("-ic " ^ ic) :: xs
|
||||
+ | None -> xs in
|
||||
+ let xs = "-i libvirt" :: xs in
|
||||
+ String.concat " " xs
|
||||
+
|
||||
let setup dir options args =
|
||||
vddk_source dir options args
|
||||
|
||||
diff --git a/input/input_vmx.ml b/input/input_vmx.ml
|
||||
index 9065e857..6e8948f9 100644
|
||||
--- a/input/input_vmx.ml
|
||||
+++ b/input/input_vmx.ml
|
||||
@@ -118,6 +118,8 @@ and absolute_path_from_other_file other_filename filename =
|
||||
else (Filename.dirname (absolute_path other_filename)) // filename
|
||||
|
||||
module VMX = struct
|
||||
+ let to_string options args = String.concat " " ("-i vmx" :: args)
|
||||
+
|
||||
let setup dir options args =
|
||||
vmx_source dir options args
|
||||
|
||||
diff --git a/input/input_xen_ssh.ml b/input/input_xen_ssh.ml
|
||||
index cb8b1f91..f18ac5cf 100644
|
||||
--- a/input/input_xen_ssh.ml
|
||||
+++ b/input/input_xen_ssh.ml
|
||||
@@ -112,6 +112,15 @@ let rec xen_ssh_source dir options args =
|
||||
source
|
||||
|
||||
module XenSSH = struct
|
||||
+ let to_string options args =
|
||||
+ let xs = args in
|
||||
+ let xs =
|
||||
+ match options.input_conn with
|
||||
+ | Some ic -> ("-ic " ^ ic) :: xs
|
||||
+ | None -> xs in
|
||||
+ let xs = "-i libvirt" :: xs in
|
||||
+ String.concat " " xs
|
||||
+
|
||||
let setup dir options args =
|
||||
xen_ssh_source dir options args
|
||||
|
||||
diff --git a/output/output.ml b/output/output.ml
|
||||
index 101da82a..659d20ac 100644
|
||||
--- a/output/output.ml
|
||||
+++ b/output/output.ml
|
||||
@@ -38,6 +38,7 @@ type options = {
|
||||
|
||||
module type OUTPUT = sig
|
||||
type t
|
||||
+ val to_string : options -> string
|
||||
val setup : string -> options -> Types.source -> t
|
||||
val finalize : string -> options ->
|
||||
Types.source -> Types.inspect -> Types.target_meta ->
|
||||
diff --git a/output/output.mli b/output/output.mli
|
||||
index 03d71daf..ced22161 100644
|
||||
--- a/output/output.mli
|
||||
+++ b/output/output.mli
|
||||
@@ -30,6 +30,10 @@ module type OUTPUT = sig
|
||||
type t
|
||||
(** Opaque data used by the output mode. *)
|
||||
|
||||
+ val to_string : options -> string
|
||||
+ (** [to_string options] converts the destination to a printable
|
||||
+ string (for messages). *)
|
||||
+
|
||||
val setup : string -> options -> Types.source -> t
|
||||
(** [setup dir options source]
|
||||
|
||||
diff --git a/output/output_disk.ml b/output/output_disk.ml
|
||||
index eca3c727..386d031b 100644
|
||||
--- a/output/output_disk.ml
|
||||
+++ b/output/output_disk.ml
|
||||
@@ -96,6 +96,12 @@ and disk_finalize dir source inspect target_meta
|
||||
module Disk = struct
|
||||
type t = unit
|
||||
|
||||
+ let to_string options =
|
||||
+ "-o disk" ^
|
||||
+ match options.output_storage with
|
||||
+ | Some os -> " -os " ^ os
|
||||
+ | None -> ""
|
||||
+
|
||||
let setup dir options source =
|
||||
if options.output_options <> [] then
|
||||
error (f_"no -oo (output options) are allowed here");
|
||||
diff --git a/output/output_glance.ml b/output/output_glance.ml
|
||||
index 0d7838dd..85cbe58e 100644
|
||||
--- a/output/output_glance.ml
|
||||
+++ b/output/output_glance.ml
|
||||
@@ -122,6 +122,8 @@ and glance_finalize dir source inspect target_meta output_format tmpdir =
|
||||
module Glance = struct
|
||||
type t = string
|
||||
|
||||
+ let to_string options = "-o glance"
|
||||
+
|
||||
let setup dir options source =
|
||||
if options.output_options <> [] then
|
||||
error (f_"no -oo (output options) are allowed here");
|
||||
diff --git a/output/output_json.ml b/output/output_json.ml
|
||||
index bb0cdfeb..88fb4778 100644
|
||||
--- a/output/output_json.ml
|
||||
+++ b/output/output_json.ml
|
||||
@@ -134,6 +134,12 @@ and json_path os output_name json_disks_pattern i =
|
||||
module Json = struct
|
||||
type t = unit
|
||||
|
||||
+ let to_string options =
|
||||
+ "-o json" ^
|
||||
+ match options.output_storage with
|
||||
+ | Some os -> " -os " ^ os
|
||||
+ | None -> ""
|
||||
+
|
||||
let setup dir options source =
|
||||
let data = json_parse_options options in
|
||||
let output_name = get_output_name options source in
|
||||
diff --git a/output/output_libvirt.ml b/output/output_libvirt.ml
|
||||
index 52c45401..20333363 100644
|
||||
--- a/output/output_libvirt.ml
|
||||
+++ b/output/output_libvirt.ml
|
||||
@@ -198,6 +198,12 @@ and target_features_of_capabilities_doc doc arch =
|
||||
module Libvirt_ = struct
|
||||
type t = string * string
|
||||
|
||||
+ let to_string options =
|
||||
+ "-o libvirt" ^
|
||||
+ match options.output_storage with
|
||||
+ | Some os -> " -os " ^ os
|
||||
+ | None -> ""
|
||||
+
|
||||
let setup dir options source =
|
||||
if options.output_options <> [] then
|
||||
error (f_"no -oo (output options) are allowed here");
|
||||
diff --git a/output/output_null.ml b/output/output_null.ml
|
||||
index 34fbd6e1..56fb7ec6 100644
|
||||
--- a/output/output_null.ml
|
||||
+++ b/output/output_null.ml
|
||||
@@ -76,6 +76,8 @@ and null_servers dir disks output_name =
|
||||
module Null = struct
|
||||
type t = unit
|
||||
|
||||
+ let to_string options = "-o null"
|
||||
+
|
||||
let setup dir options source =
|
||||
if options.output_options <> [] then
|
||||
error (f_"no -oo (output options) are allowed here");
|
||||
diff --git a/output/output_openstack.ml b/output/output_openstack.ml
|
||||
index 334a1fc2..6e52ddb3 100644
|
||||
--- a/output/output_openstack.ml
|
||||
+++ b/output/output_openstack.ml
|
||||
@@ -462,6 +462,22 @@ and iso_time =
|
||||
module Openstack = struct
|
||||
type t = string list
|
||||
|
||||
+ let to_string options =
|
||||
+ (* Try to get the server-id since it seems useful to display
|
||||
+ * that for diagnostics.
|
||||
+ *)
|
||||
+ let server_id = ref None in
|
||||
+ List.iter (
|
||||
+ function
|
||||
+ | "server-id", v -> server_id := Some v
|
||||
+ | _ -> ()
|
||||
+ ) options.output_options;
|
||||
+
|
||||
+ "-o openstack" ^
|
||||
+ (match !server_id with
|
||||
+ | None -> ""
|
||||
+ | Some id -> sprintf " -oo server-id=%s" id)
|
||||
+
|
||||
let setup dir options source =
|
||||
let data = openstack_parse_options options in
|
||||
let output_name = get_output_name options source in
|
||||
diff --git a/output/output_qemu.ml b/output/output_qemu.ml
|
||||
index 0aac1eba..3d5d6782 100644
|
||||
--- a/output/output_qemu.ml
|
||||
+++ b/output/output_qemu.ml
|
||||
@@ -315,6 +315,12 @@ and qemu_finalize dir source inspect target_meta
|
||||
module QEMU = struct
|
||||
type t = unit
|
||||
|
||||
+ let to_string options =
|
||||
+ "-o qemu" ^
|
||||
+ match options.output_storage with
|
||||
+ | Some os -> " -os " ^ os
|
||||
+ | None -> ""
|
||||
+
|
||||
let setup dir options source =
|
||||
let data = qemu_parse_options options in
|
||||
let output_name = get_output_name options source in
|
||||
diff --git a/output/output_rhv.ml b/output/output_rhv.ml
|
||||
index 6a67b7aa..a386b9a5 100644
|
||||
--- a/output/output_rhv.ml
|
||||
+++ b/output/output_rhv.ml
|
||||
@@ -266,6 +266,8 @@ and check_storage_domain domain_class os mp =
|
||||
module RHV = struct
|
||||
type t = string * string * string * string list * string list * int64 list
|
||||
|
||||
+ let to_string options = "-o rhv"
|
||||
+
|
||||
let setup dir options source =
|
||||
if options.output_options <> [] then
|
||||
error (f_"no -oo (output options) are allowed here");
|
||||
diff --git a/output/output_rhv_upload.ml b/output/output_rhv_upload.ml
|
||||
index 91e7be45..4d8dc1c1 100644
|
||||
--- a/output/output_rhv_upload.ml
|
||||
+++ b/output/output_rhv_upload.ml
|
||||
@@ -444,6 +444,15 @@ module RHVUpload = struct
|
||||
JSON.field list * string option * string option *
|
||||
string option * string
|
||||
|
||||
+ let to_string options =
|
||||
+ "-o rhv-upload" ^
|
||||
+ (match options.output_conn with
|
||||
+ | Some oc -> " -oc " ^ oc
|
||||
+ | None -> "") ^
|
||||
+ (match options.output_storage with
|
||||
+ | Some os -> " -os " ^ os
|
||||
+ | None -> "")
|
||||
+
|
||||
let setup dir options source =
|
||||
let data = rhv_upload_parse_options options in
|
||||
let output_name = get_output_name options source in
|
||||
diff --git a/output/output_vdsm.ml b/output/output_vdsm.ml
|
||||
index ce0d5b5e..676ecf00 100644
|
||||
--- a/output/output_vdsm.ml
|
||||
+++ b/output/output_vdsm.ml
|
||||
@@ -212,6 +212,8 @@ and vdsm_finalize dir source inspect target_meta
|
||||
module VDSM = struct
|
||||
type t = string * string * int64 list
|
||||
|
||||
+ let to_string options = "-o vdsm"
|
||||
+
|
||||
let setup dir options source =
|
||||
let data = vdsm_parse_options options in
|
||||
let output_name = get_output_name options source in
|
||||
diff --git a/tests/test-v2v-i-vmx-1.expected b/tests/test-v2v-i-vmx-1.expected
|
||||
index bca99c48..59e2c5d3 100644
|
||||
--- a/tests/test-v2v-i-vmx-1.expected
|
||||
+++ b/tests/test-v2v-i-vmx-1.expected
|
||||
@@ -1,3 +1,4 @@
|
||||
+
|
||||
Source guest information (--print-source option):
|
||||
|
||||
source name: BZ1308535_21disks
|
||||
diff --git a/tests/test-v2v-i-vmx-2.expected b/tests/test-v2v-i-vmx-2.expected
|
||||
index e56777c8..576d347b 100644
|
||||
--- a/tests/test-v2v-i-vmx-2.expected
|
||||
+++ b/tests/test-v2v-i-vmx-2.expected
|
||||
@@ -1,3 +1,4 @@
|
||||
+
|
||||
Source guest information (--print-source option):
|
||||
|
||||
source name: Fedora 20
|
||||
diff --git a/tests/test-v2v-i-vmx-3.expected b/tests/test-v2v-i-vmx-3.expected
|
||||
index 47e4d25e..102e82eb 100644
|
||||
--- a/tests/test-v2v-i-vmx-3.expected
|
||||
+++ b/tests/test-v2v-i-vmx-3.expected
|
||||
@@ -1,3 +1,4 @@
|
||||
+
|
||||
Source guest information (--print-source option):
|
||||
|
||||
source name: RHEL 7.1 UEFI
|
||||
diff --git a/tests/test-v2v-i-vmx-4.expected b/tests/test-v2v-i-vmx-4.expected
|
||||
index dd731294..0d772855 100644
|
||||
--- a/tests/test-v2v-i-vmx-4.expected
|
||||
+++ b/tests/test-v2v-i-vmx-4.expected
|
||||
@@ -1,3 +1,4 @@
|
||||
+
|
||||
Source guest information (--print-source option):
|
||||
|
||||
source name: Windows 7 x64
|
||||
diff --git a/tests/test-v2v-i-vmx-5.expected b/tests/test-v2v-i-vmx-5.expected
|
||||
index cfddcda7..1b8e15bf 100644
|
||||
--- a/tests/test-v2v-i-vmx-5.expected
|
||||
+++ b/tests/test-v2v-i-vmx-5.expected
|
||||
@@ -1,3 +1,4 @@
|
||||
+
|
||||
Source guest information (--print-source option):
|
||||
|
||||
source name: MSEdge - Win10_preview
|
||||
diff --git a/tests/test-v2v-i-vmx.sh b/tests/test-v2v-i-vmx.sh
|
||||
index f2fda66d..db870bea 100755
|
||||
--- a/tests/test-v2v-i-vmx.sh
|
||||
+++ b/tests/test-v2v-i-vmx.sh
|
||||
@@ -29,6 +29,8 @@ set -x
|
||||
|
||||
skip_if_skipped
|
||||
|
||||
+export LANG=C
|
||||
+
|
||||
export VIRT_TOOLS_DATA_DIR="$srcdir/../test-data/fake-virt-tools"
|
||||
export VIRTIO_WIN="$srcdir/../test-data/fake-virtio-win"
|
||||
|
||||
@@ -52,6 +54,7 @@ for i in 1 2 3 4 5; do
|
||||
# Normalize the print-source output.
|
||||
mv test-v2v-i-vmx-$i.actual test-v2v-i-vmx-$i.actual.old
|
||||
sed \
|
||||
+ -e "s,.*Setting up the source.*,," \
|
||||
-e "s,.*Opening the source.*,," \
|
||||
-e "s,$(pwd),," \
|
||||
< test-v2v-i-vmx-$i.actual.old > test-v2v-i-vmx-$i.actual
|
||||
diff --git a/tests/test-v2v-print-source.sh b/tests/test-v2v-print-source.sh
|
||||
index c4717361..e46fd126 100755
|
||||
--- a/tests/test-v2v-print-source.sh
|
||||
+++ b/tests/test-v2v-print-source.sh
|
||||
@@ -27,6 +27,8 @@ set -x
|
||||
skip_if_skipped
|
||||
requires test -f ../test-data/phony-guests/windows.img
|
||||
|
||||
+export LANG=C
|
||||
+
|
||||
d=test-v2v-print-source.d
|
||||
rm -rf $d
|
||||
cleanup_fn rm -r $d
|
||||
@@ -39,6 +41,7 @@ $VG virt-v2v --debug-gc \
|
||||
|
||||
mv $d/output $d/output.orig
|
||||
< $d/output.orig \
|
||||
+grep -v 'Setting up the source' |
|
||||
grep -v 'Opening the source' |
|
||||
grep -v 'Source guest information' |
|
||||
sed -e 's,/.*/windows.img,windows.img,' |
|
||||
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
|
||||
index 47e6e937..d74cc21f 100644
|
||||
--- a/v2v/v2v.ml
|
||||
+++ b/v2v/v2v.ml
|
||||
@@ -532,6 +532,8 @@ read the man page virt-v2v(1).
|
||||
} in
|
||||
|
||||
(* Start the input module (runs an NBD server in the background). *)
|
||||
+ message (f_"Setting up the source: %s")
|
||||
+ (Input_module.to_string input_options args);
|
||||
let source = Input_module.setup tmpdir input_options args in
|
||||
|
||||
(* If --print-source then print the source metadata and exit. *)
|
||||
@@ -548,6 +550,8 @@ read the man page virt-v2v(1).
|
||||
unlink (tmpdir // "convert");
|
||||
|
||||
(* Start the output module (runs an NBD server in the background). *)
|
||||
+ message (f_"Setting up the destination: %s")
|
||||
+ (Output_module.to_string output_options);
|
||||
let output_t = Output_module.setup tmpdir output_options source in
|
||||
|
||||
(* Debug the v2vdir. *)
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,78 @@
|
||||
From 4c3d0b8b3b4b99ac613b612f05e0810d64381999 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 16:16:55 +0000
|
||||
Subject: [PATCH] output: -o libvirt: Fix <graphics/> element port/autoport
|
||||
|
||||
According to https://libvirt.org/formatdomain.html only vnc and sdl
|
||||
graphics types support port/autoport.
|
||||
|
||||
In addition, autoport='yes' is the non-deprecated replacement for
|
||||
port='-1'. Since we don't need to support ancient libvirt, we don't
|
||||
need to keep adding port='-1' in the autoport case. virt-xml-validate
|
||||
rejects our XML if it has both attributes.
|
||||
|
||||
Thanks: Martin Kletzander
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
output/create_libvirt_xml.ml | 22 ++++++++++------------
|
||||
tests/test-v2v-i-ova.xml | 2 +-
|
||||
2 files changed, 11 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/output/create_libvirt_xml.ml b/output/create_libvirt_xml.ml
|
||||
index 87bfab17..93ceb803 100644
|
||||
--- a/output/create_libvirt_xml.ml
|
||||
+++ b/output/create_libvirt_xml.ml
|
||||
@@ -435,13 +435,18 @@ let create_libvirt_xml ?pool source inspect
|
||||
|
||||
let graphics =
|
||||
match source.s_display with
|
||||
- | None -> e "graphics" [ "type", "vnc" ] []
|
||||
+ | None ->
|
||||
+ e "graphics" [ "type", "vnc"; "autoport", "yes" ] []
|
||||
| Some { s_display_type = Window } ->
|
||||
e "graphics" [ "type", "sdl" ] []
|
||||
- | Some { s_display_type = VNC } ->
|
||||
- e "graphics" [ "type", "vnc" ] []
|
||||
- | Some { s_display_type = Spice } ->
|
||||
- e "graphics" [ "type", "spice" ] [] in
|
||||
+ | Some { s_display_type = VNC; s_port = Some p } ->
|
||||
+ e "graphics" [ "type", "vnc"; "port", string_of_int p ] []
|
||||
+ | Some { s_display_type = VNC; s_port = None } ->
|
||||
+ e "graphics" [ "type", "vnc"; "autoport", "yes" ] []
|
||||
+ | Some { s_display_type = Spice; s_port = Some p } ->
|
||||
+ e "graphics" [ "type", "spice"; "port", string_of_int p ] []
|
||||
+ | Some { s_display_type = Spice; s_port = None } ->
|
||||
+ e "graphics" [ "type", "spice"; "autoport", "yes" ] [] in
|
||||
|
||||
(match source.s_display with
|
||||
| Some { s_keymap = Some km } -> append_attr ("keymap", km) graphics
|
||||
@@ -469,13 +474,6 @@ let create_libvirt_xml ?pool source inspect
|
||||
append_child sub graphics
|
||||
)
|
||||
| None -> ());
|
||||
- (match source.s_display with
|
||||
- | Some { s_port = Some p } ->
|
||||
- append_attr ("autoport", "no") graphics;
|
||||
- append_attr ("port", string_of_int p) graphics
|
||||
- | Some { s_port = None } | None ->
|
||||
- append_attr ("autoport", "yes") graphics;
|
||||
- append_attr ("port", "-1") graphics);
|
||||
List.push_back devices graphics;
|
||||
|
||||
let sound =
|
||||
diff --git a/tests/test-v2v-i-ova.xml b/tests/test-v2v-i-ova.xml
|
||||
index 2b6a8de0..e72c1db3 100644
|
||||
--- a/tests/test-v2v-i-ova.xml
|
||||
+++ b/tests/test-v2v-i-ova.xml
|
||||
@@ -41,7 +41,7 @@
|
||||
<video>
|
||||
<model type='vga' vram='16384' heads='1'/>
|
||||
</video>
|
||||
- <graphics type='vnc' autoport='yes' port='-1'/>
|
||||
+ <graphics type='vnc' autoport='yes'/>
|
||||
<rng model='virtio-transitional'>
|
||||
<backend model='random'>/dev/urandom</backend>
|
||||
</rng>
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,69 @@
|
||||
From 4f6b143c1cb32a29cbd3ff04635ba220e5db82ed Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 16:21:50 +0000
|
||||
Subject: [PATCH] output: -o libvirt, qemu: Use correct device name for vsock
|
||||
|
||||
According to https://libvirt.org/formatdomain.html#vsock it's <vsock/>
|
||||
not <viosock/>. There is also no model="none", we just omit it if not
|
||||
present.
|
||||
|
||||
According to https://wiki.qemu.org/Features/VirtioVsock the qemu
|
||||
parameter is -device vhost-vsock-pci.
|
||||
|
||||
Fixes: 05f780c16f0135c657615520c2245b42de1efc3e
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
output/create_libvirt_xml.ml | 8 ++------
|
||||
output/output_qemu.ml | 4 +---
|
||||
tests/test-v2v-i-ova.xml | 1 -
|
||||
3 files changed, 3 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/output/create_libvirt_xml.ml b/output/create_libvirt_xml.ml
|
||||
index 93ceb803..30c23973 100644
|
||||
--- a/output/create_libvirt_xml.ml
|
||||
+++ b/output/create_libvirt_xml.ml
|
||||
@@ -511,12 +511,8 @@ let create_libvirt_xml ?pool source inspect
|
||||
e "address" ["type", "isa"; "iobase", "0x505"] []
|
||||
]
|
||||
);
|
||||
- List.push_back devices (
|
||||
- e "viosock"
|
||||
- ["model",
|
||||
- if guestcaps.gcaps_virtio_socket then virtio_model else "none"]
|
||||
- []
|
||||
- );
|
||||
+ if guestcaps.gcaps_virtio_socket then
|
||||
+ List.push_back devices (e "vsock" ["model", virtio_model] []);
|
||||
|
||||
(* Standard devices added to every guest. *)
|
||||
List.push_back_list devices [
|
||||
diff --git a/output/output_qemu.ml b/output/output_qemu.ml
|
||||
index 3d5d6782..10ec8904 100644
|
||||
--- a/output/output_qemu.ml
|
||||
+++ b/output/output_qemu.ml
|
||||
@@ -277,9 +277,7 @@ and qemu_finalize dir source inspect target_meta
|
||||
if guestcaps.gcaps_isa_pvpanic then
|
||||
arg_list "-device" ["pvpanic"; "ioport=0x505"];
|
||||
if guestcaps.gcaps_virtio_socket then
|
||||
- arg "-viosock" "virtio"
|
||||
- else
|
||||
- arg "-viosock" "none";
|
||||
+ arg "-device" "vhost-vsock-pci";
|
||||
|
||||
(* Add a serial console to Linux guests. *)
|
||||
if inspect.i_type = "linux" then
|
||||
diff --git a/tests/test-v2v-i-ova.xml b/tests/test-v2v-i-ova.xml
|
||||
index e72c1db3..1915dd40 100644
|
||||
--- a/tests/test-v2v-i-ova.xml
|
||||
+++ b/tests/test-v2v-i-ova.xml
|
||||
@@ -46,7 +46,6 @@
|
||||
<backend model='random'>/dev/urandom</backend>
|
||||
</rng>
|
||||
<memballoon model='virtio-transitional'/>
|
||||
- <viosock model='none'/>
|
||||
<input type='tablet' bus='usb'/>
|
||||
<input type='mouse' bus='ps2'/>
|
||||
<console type='pty'/>
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,41 @@
|
||||
From 5b82ed259868c0a40733858606a2b6dd793b8504 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 16:10:34 +0000
|
||||
Subject: [PATCH] tests: Drop some obsolete Fedora versions, start testing F35
|
||||
|
||||
For very old Fedora versions, it's no longer possible to download the
|
||||
packages (required by virt-builder --update). We get this error:
|
||||
|
||||
Error: Cannot retrieve metalink for repository: fedora/20/x86_64. Please verify its path and try again
|
||||
|
||||
I also dropped Fedora 23 and 29. Although those can be updated, it's
|
||||
not really worth testing long-obsolete versions of Fedora. More
|
||||
useful is testing the long-term stable equivalents (ie. CentOS and
|
||||
RHEL).
|
||||
|
||||
I did however add the current version of Fedora (35) because it's
|
||||
worth testing that current Fedora conversions work.
|
||||
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
tests/Makefile.am | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
||||
index 222b5872..b4d3a5b5 100644
|
||||
--- a/tests/Makefile.am
|
||||
+++ b/tests/Makefile.am
|
||||
@@ -142,9 +142,7 @@ real_guests_scripts = \
|
||||
test-v2v-conversion-of-debian-7.sh \
|
||||
test-v2v-conversion-of-debian-8.sh \
|
||||
test-v2v-conversion-of-debian-9.sh \
|
||||
- test-v2v-conversion-of-fedora-20.sh \
|
||||
- test-v2v-conversion-of-fedora-23.sh \
|
||||
- test-v2v-conversion-of-fedora-29.sh \
|
||||
+ test-v2v-conversion-of-fedora-35.sh \
|
||||
test-v2v-conversion-of-opensuse-13.1.sh \
|
||||
test-v2v-conversion-of-opensuse-13.2.sh \
|
||||
test-v2v-conversion-of-opensuse-42.1.sh \
|
||||
--
|
||||
2.31.1
|
||||
|
37
0007-tests-Drop-test-of-centos-6.patch
Normal file
37
0007-tests-Drop-test-of-centos-6.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From ea6a9a814ec737d543cca3920402a9fb69ba932d Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 17:07:25 +0000
|
||||
Subject: [PATCH] tests: Drop test of centos-6
|
||||
|
||||
The image cannot be updated, see error below. In any case we are
|
||||
testing a RHEL 6 image so it is not really necessary to continue to
|
||||
test CentOS 6.
|
||||
|
||||
Loaded plugins: fastestmirror, security
|
||||
Setting up Update Process
|
||||
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
|
||||
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
|
||||
Eg. Invalid release/repo/arch combination/
|
||||
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
|
||||
virt-builder: error: yum -y update: command exited with an error
|
||||
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
tests/Makefile.am | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
||||
index b4d3a5b5..11c29676 100644
|
||||
--- a/tests/Makefile.am
|
||||
+++ b/tests/Makefile.am
|
||||
@@ -136,7 +136,6 @@ check-root:
|
||||
# try to convert. This is only used by 'make check-slow'.
|
||||
|
||||
real_guests_scripts = \
|
||||
- test-v2v-conversion-of-centos-6.sh \
|
||||
test-v2v-conversion-of-centos-7.0.sh \
|
||||
test-v2v-conversion-of-debian-6.sh \
|
||||
test-v2v-conversion-of-debian-7.sh \
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,33 @@
|
||||
From 0b76aca004792263f31bcab38e4de19f645d3def Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 17:12:25 +0000
|
||||
Subject: [PATCH] tests: Drop ancient Ubuntu versions, add Ubuntu 20.04 LTS
|
||||
|
||||
Ubuntu 14.04 failed in the --update command. These versions are out
|
||||
of standard support (5 years) so drop them from testing. Add Ubuntu 20.04.
|
||||
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
tests/Makefile.am | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
||||
index 11c29676..3e828558 100644
|
||||
--- a/tests/Makefile.am
|
||||
+++ b/tests/Makefile.am
|
||||
@@ -149,11 +149,9 @@ real_guests_scripts = \
|
||||
test-v2v-conversion-of-rhel-6.8.sh \
|
||||
test-v2v-conversion-of-rhel-7.0.sh \
|
||||
test-v2v-conversion-of-rhel-7.2.sh \
|
||||
- test-v2v-conversion-of-ubuntu-10.04.sh \
|
||||
- test-v2v-conversion-of-ubuntu-12.04.sh \
|
||||
- test-v2v-conversion-of-ubuntu-14.04.sh \
|
||||
test-v2v-conversion-of-ubuntu-16.04.sh \
|
||||
test-v2v-conversion-of-ubuntu-18.04.sh \
|
||||
+ test-v2v-conversion-of-ubuntu-20.04.sh \
|
||||
test-v2v-conversion-of-windows-6.2-server.sh \
|
||||
test-v2v-conversion-of-windows-6.3-server.sh \
|
||||
test-v2v-conversion-of-windows-10.0-server.sh
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,37 @@
|
||||
From c2702313af33be1c140c31a63213a5deaceccd3f Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 18:00:04 +0000
|
||||
Subject: [PATCH] tests: Drop old and add newer RHEL versions to the tests
|
||||
|
||||
Let's try to test only the latest versions of RHEL that we have in the
|
||||
internal (to Red Hat) virt-builder repository.
|
||||
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
[Laszlo reviewed an earlier version of this patch. I updated it with
|
||||
a more consistent rationale and list of RHEL versions]
|
||||
---
|
||||
tests/Makefile.am | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
||||
index 3e828558..4b66cb0d 100644
|
||||
--- a/tests/Makefile.am
|
||||
+++ b/tests/Makefile.am
|
||||
@@ -145,10 +145,10 @@ real_guests_scripts = \
|
||||
test-v2v-conversion-of-opensuse-13.1.sh \
|
||||
test-v2v-conversion-of-opensuse-13.2.sh \
|
||||
test-v2v-conversion-of-opensuse-42.1.sh \
|
||||
- test-v2v-conversion-of-rhel-5.10.sh \
|
||||
- test-v2v-conversion-of-rhel-6.8.sh \
|
||||
- test-v2v-conversion-of-rhel-7.0.sh \
|
||||
- test-v2v-conversion-of-rhel-7.2.sh \
|
||||
+ test-v2v-conversion-of-rhel-5.11.sh \
|
||||
+ test-v2v-conversion-of-rhel-6.10.sh \
|
||||
+ test-v2v-conversion-of-rhel-7.9.sh \
|
||||
+ test-v2v-conversion-of-rhel-8.4.sh \
|
||||
test-v2v-conversion-of-ubuntu-16.04.sh \
|
||||
test-v2v-conversion-of-ubuntu-18.04.sh \
|
||||
test-v2v-conversion-of-ubuntu-20.04.sh \
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,52 @@
|
||||
From 0ec1a0ef2ec62fb97952d48cdddbdbd3bf8394a7 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 17:10:56 +0000
|
||||
Subject: [PATCH] tests: Don't use virt-builder --update when testing Windows
|
||||
conversions
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The error was:
|
||||
|
||||
virt-builder: error: cannot use ‘--update’ because no package manager
|
||||
has been detected for this guest OS.
|
||||
|
||||
If this guest OS is a common one with ordinary package management then this
|
||||
may have been caused by a failure of libguestfs inspection.
|
||||
|
||||
For OSes such as Windows that lack package management, this is not
|
||||
possible. Try using one of the ‘--firstboot*’ flags instead (described
|
||||
in the manual).
|
||||
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
tests/test-v2v-conversion-of.sh | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/test-v2v-conversion-of.sh b/tests/test-v2v-conversion-of.sh
|
||||
index 232c6300..5a974d1b 100755
|
||||
--- a/tests/test-v2v-conversion-of.sh
|
||||
+++ b/tests/test-v2v-conversion-of.sh
|
||||
@@ -61,8 +61,17 @@ case "$guestname" in
|
||||
;;
|
||||
esac
|
||||
|
||||
+# Don't try to update Windows versions.
|
||||
+case "$guestname" in
|
||||
+ windows*)
|
||||
+ ;;
|
||||
+ *)
|
||||
+ extra[${#extra[*]}]='--update'
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
# Build a guest (using virt-builder).
|
||||
-virt-builder "$guestname" --quiet -o "$disk" "${extra[@]}" --update
|
||||
+virt-builder "$guestname" --quiet -o "$disk" "${extra[@]}"
|
||||
|
||||
# Create some minimal test metadata.
|
||||
cat > "$xml" <<EOF
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,32 @@
|
||||
From 26361e035043ecec5b24d53f59978438a52e634d Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 18:21:47 +0000
|
||||
Subject: [PATCH] tests/test-v2v-trim.sh: Use -of qcow2 to preserve output
|
||||
format
|
||||
|
||||
Old virt-v2v used the same output format as input format when doing
|
||||
disk to disk copies. Modular virt-v2v doesn't do this, it requires
|
||||
using -of to set the output format to the same as the input format if
|
||||
that is desired.
|
||||
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
tests/test-v2v-trim.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/test-v2v-trim.sh b/tests/test-v2v-trim.sh
|
||||
index 8eab4792..ed6c031d 100755
|
||||
--- a/tests/test-v2v-trim.sh
|
||||
+++ b/tests/test-v2v-trim.sh
|
||||
@@ -66,7 +66,7 @@ fi
|
||||
|
||||
virt-v2v --debug-gc \
|
||||
-i disk $d/fedora.qcow2 \
|
||||
- -o local -os $d
|
||||
+ -o local -of qcow2 -os $d
|
||||
|
||||
# Test the libvirt XML metadata and a disk was created.
|
||||
test -f $d/fedora.xml
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,41 @@
|
||||
From a6aa06d4999129f44ae84310e950b8c3a4620fe5 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 18:35:40 +0000
|
||||
Subject: [PATCH] lib/qemuNBD.ml: Use qemu-nbd --shared=0 flag to allow
|
||||
multiple connections
|
||||
|
||||
qemu-nbd --shared (-e) flag controls how many clients can connect
|
||||
concurrently. 0 means unlimited.
|
||||
|
||||
We want to allow the sockets to be queried by other processes while
|
||||
virt-v2v is running and it should be safe to do this. The default
|
||||
configuration of qemu-nbd doesn't allow this so add --shared=0.
|
||||
|
||||
Note this does not (in current qemu) enable multi-conn because we
|
||||
aren't using the -r (read-only) flag.
|
||||
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
lib/qemuNBD.ml | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/qemuNBD.ml b/lib/qemuNBD.ml
|
||||
index 12d083ae..89c93d70 100644
|
||||
--- a/lib/qemuNBD.ml
|
||||
+++ b/lib/qemuNBD.ml
|
||||
@@ -90,7 +90,11 @@ let run_unix ?socket { disk; snapshot; format } =
|
||||
(* Construct the qemu-nbd command line. *)
|
||||
let args = ref [] in
|
||||
List.push_back_list args
|
||||
- ["qemu-nbd"; "-t"; "--pid-file"; pidfile; "--socket"; socket];
|
||||
+ ["qemu-nbd";
|
||||
+ "-t";
|
||||
+ "--shared=0";
|
||||
+ "--pid-file"; pidfile;
|
||||
+ "--socket"; socket];
|
||||
|
||||
(* -s adds a protective overlay. *)
|
||||
if snapshot then List.push_back args "-s";
|
||||
--
|
||||
2.31.1
|
||||
|
33
0013-lib-qemuNBD.ml-Use-qemu-nbd-discard-unmap.patch
Normal file
33
0013-lib-qemuNBD.ml-Use-qemu-nbd-discard-unmap.patch
Normal file
@ -0,0 +1,33 @@
|
||||
From 0d880dc288a10f29f6e52066514435c73af97be3 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 19 Jan 2022 18:54:11 +0000
|
||||
Subject: [PATCH] lib/qemuNBD.ml: Use qemu-nbd --discard=unmap
|
||||
|
||||
The default for qemu-nbd is to ignore discard requests. This meant
|
||||
that for input files in qcow2 format the "Mapping ..." (ie. fstrim)
|
||||
step did nothing, all the work was ignored and we copied deleted data
|
||||
over to the destination.
|
||||
|
||||
This was detected by the test-v2v-trim.sh test.
|
||||
|
||||
Fixes: commit 255722cbf39afc0b012e2ac00d16fa6ba2f8c21f
|
||||
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||
---
|
||||
lib/qemuNBD.ml | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/lib/qemuNBD.ml b/lib/qemuNBD.ml
|
||||
index 89c93d70..54139ce0 100644
|
||||
--- a/lib/qemuNBD.ml
|
||||
+++ b/lib/qemuNBD.ml
|
||||
@@ -93,6 +93,7 @@ let run_unix ?socket { disk; snapshot; format } =
|
||||
["qemu-nbd";
|
||||
"-t";
|
||||
"--shared=0";
|
||||
+ "--discard=unmap";
|
||||
"--pid-file"; pidfile;
|
||||
"--socket"; socket];
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 802cb1194c935d70194713491785537344fa816a Mon Sep 17 00:00:00 2001
|
||||
From 98136e9ac3544011a42c9f37b8b0903a99d8e2b3 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Sun, 28 Sep 2014 19:14:43 +0100
|
||||
Subject: [PATCH] RHEL: v2v: Select correct qemu binary for -o qemu mode
|
||||
@ -16,7 +16,7 @@ support cases.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/output/output_qemu.ml b/output/output_qemu.ml
|
||||
index 0aac1eba..c4265703 100644
|
||||
index 10ec8904..67f7cbcf 100644
|
||||
--- a/output/output_qemu.ml
|
||||
+++ b/output/output_qemu.ml
|
||||
@@ -119,7 +119,7 @@ and qemu_finalize dir source inspect target_meta
|
@ -1,4 +1,4 @@
|
||||
From 2647de6f58908eb11ff5a156793fba2926a6cdd5 Mon Sep 17 00:00:00 2001
|
||||
From 6054ba787194dd2f80711181680fa5825006274d Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Tue, 30 Sep 2014 10:50:27 +0100
|
||||
Subject: [PATCH] RHEL: v2v: Disable the --qemu-boot / -oo qemu-boot option
|
||||
@ -81,7 +81,7 @@ index 3d0e00a3..04f3efd2 100644
|
||||
|
||||
=item B<--quiet>
|
||||
diff --git a/output/output_qemu.ml b/output/output_qemu.ml
|
||||
index c4265703..822e4c72 100644
|
||||
index 67f7cbcf..376de27d 100644
|
||||
--- a/output/output_qemu.ml
|
||||
+++ b/output/output_qemu.ml
|
||||
@@ -52,6 +52,9 @@ and qemu_parse_options options =
|
||||
@ -95,7 +95,7 @@ index c4265703..822e4c72 100644
|
||||
let output_storage =
|
||||
match options.output_storage with
|
||||
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
|
||||
index 47e6e937..503dfb55 100644
|
||||
index d74cc21f..a384bc05 100644
|
||||
--- a/v2v/v2v.ml
|
||||
+++ b/v2v/v2v.ml
|
||||
@@ -277,8 +277,6 @@ let rec main () =
|
@ -1,4 +1,4 @@
|
||||
From f3ade6efd92f4bb6bf8f00af9b7f70dc4a3125f5 Mon Sep 17 00:00:00 2001
|
||||
From 9c7dfbd938c877d73a31d3c929615f5d084b69b1 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Fri, 24 Apr 2015 09:45:41 -0400
|
||||
Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu
|
@ -1,4 +1,4 @@
|
||||
From 952fea38a35476bc5c3b050380459ebe38006975 Mon Sep 17 00:00:00 2001
|
||||
From ca4a2bf5162b7a1f10c9648727e48cd5f5a054fb Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Sun, 30 Aug 2015 03:21:57 -0400
|
||||
Subject: [PATCH] RHEL: Fixes for libguestfs-winsupport.
|
@ -1,4 +1,4 @@
|
||||
From 2362280ee8e20806830c1c74d31faed728c8acc0 Mon Sep 17 00:00:00 2001
|
||||
From 84f507669b3bdbe45f07a780126bfe9618fd46b9 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Thu, 2 Mar 2017 14:21:37 +0100
|
||||
Subject: [PATCH] RHEL: v2v: -i disk: force VNC as display (RHBZ#1372671)
|
||||
@ -9,7 +9,7 @@ The SDL output mode is not supported in RHEL's qemu-kvm.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/input/input_disk.ml b/input/input_disk.ml
|
||||
index bcdaf78c..ba19f4b3 100644
|
||||
index 2b21950a..524a44bc 100644
|
||||
--- a/input/input_disk.ml
|
||||
+++ b/input/input_disk.ml
|
||||
@@ -70,7 +70,7 @@ let rec disk_source dir options args =
|
@ -1,4 +1,4 @@
|
||||
From b06fd19cd5c8a1201c27ff70d9e7ae1849380091 Mon Sep 17 00:00:00 2001
|
||||
From 6492261edc9d238f18232f5a446741233a11a88d Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <ptoscano@redhat.com>
|
||||
Date: Wed, 8 Mar 2017 11:03:40 +0100
|
||||
Subject: [PATCH] RHEL: v2v: do not mention SUSE Xen hosts (RHBZ#1430203)
|
@ -1,4 +1,4 @@
|
||||
From f95371e7a61ae3ec8181cd330e36f13d41ad908f Mon Sep 17 00:00:00 2001
|
||||
From d7c1e5f4c842e3a32b62a8368cdf701c3586d1a4 Mon Sep 17 00:00:00 2001
|
||||
From: Pino Toscano <ptoscano@redhat.com>
|
||||
Date: Tue, 26 Mar 2019 09:42:25 +0100
|
||||
Subject: [PATCH] RHEL: point to KB for supported v2v hypervisors/guests
|
@ -1,4 +1,4 @@
|
||||
From 194556661001b51a38a8807ae257e0c19161fe17 Mon Sep 17 00:00:00 2001
|
||||
From 5c74b51e6f7c731e38bad465ece91cc292363f9f Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 30 Jun 2021 11:15:52 +0100
|
||||
Subject: [PATCH] RHEL: Disable -o glance
|
||||
@ -169,7 +169,7 @@ index c0db9115..074b5e16 100755
|
||||
set -e
|
||||
set -x
|
||||
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
|
||||
index 503dfb55..39fef0fa 100644
|
||||
index a384bc05..0a69c8e5 100644
|
||||
--- a/v2v/v2v.ml
|
||||
+++ b/v2v/v2v.ml
|
||||
@@ -205,7 +205,6 @@ let rec main () =
|
@ -1,4 +1,4 @@
|
||||
From 1f53577af560347d1460ead3e7699f376c5853b8 Mon Sep 17 00:00:00 2001
|
||||
From fbdb4d5c9700a77cedaa2c015e7608b2f7dd113d Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Thu, 2 Dec 2021 11:56:05 +0000
|
||||
Subject: [PATCH] RHEL: Remove the --in-place option
|
||||
@ -101,7 +101,7 @@ index 7c101513..4f89d2b2 100644
|
||||
|
||||
The I<--machine-readable> option can be used to make the output more
|
||||
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
|
||||
index 39fef0fa..a1143b68 100644
|
||||
index 0a69c8e5..1c74f01f 100644
|
||||
--- a/v2v/v2v.ml
|
||||
+++ b/v2v/v2v.ml
|
||||
@@ -183,7 +183,6 @@ let rec main () =
|
@ -15,7 +15,7 @@
|
||||
Name: virt-v2v
|
||||
Epoch: 1
|
||||
Version: 1.45.97
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
Summary: Convert a virtual machine to run on KVM
|
||||
|
||||
License: GPLv2+
|
||||
@ -53,15 +53,26 @@ ExclusiveArch: x86_64
|
||||
# Patches.
|
||||
Patch0001: 0001-output-o-json-Allow-oo-output-options-to-work.patch
|
||||
Patch0002: 0002-input-xen-Fix-assertion-error-when-importing-from-re.patch
|
||||
Patch0003: 0003-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
|
||||
Patch0004: 0004-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
|
||||
Patch0005: 0005-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
|
||||
Patch0006: 0006-RHEL-Fixes-for-libguestfs-winsupport.patch
|
||||
Patch0007: 0007-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
|
||||
Patch0008: 0008-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
|
||||
Patch0009: 0009-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
|
||||
Patch0010: 0010-RHEL-Disable-o-glance.patch
|
||||
Patch0011: 0011-RHEL-Remove-the-in-place-option.patch
|
||||
Patch0003: 0003-Restore-message-about-setting-up-the-input-and-outpu.patch
|
||||
Patch0004: 0004-output-o-libvirt-Fix-graphics-element-port-autoport.patch
|
||||
Patch0005: 0005-output-o-libvirt-qemu-Use-correct-device-name-for-vs.patch
|
||||
Patch0006: 0006-tests-Drop-some-obsolete-Fedora-versions-start-testi.patch
|
||||
Patch0007: 0007-tests-Drop-test-of-centos-6.patch
|
||||
Patch0008: 0008-tests-Drop-ancient-Ubuntu-versions-add-Ubuntu-20.04-.patch
|
||||
Patch0009: 0009-tests-Drop-old-and-add-newer-RHEL-versions-to-the-te.patch
|
||||
Patch0010: 0010-tests-Don-t-use-virt-builder-update-when-testing-Win.patch
|
||||
Patch0011: 0011-tests-test-v2v-trim.sh-Use-of-qcow2-to-preserve-outp.patch
|
||||
Patch0012: 0012-lib-qemuNBD.ml-Use-qemu-nbd-shared-0-flag-to-allow-m.patch
|
||||
Patch0013: 0013-lib-qemuNBD.ml-Use-qemu-nbd-discard-unmap.patch
|
||||
Patch0014: 0014-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
|
||||
Patch0015: 0015-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
|
||||
Patch0016: 0016-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
|
||||
Patch0017: 0017-RHEL-Fixes-for-libguestfs-winsupport.patch
|
||||
Patch0018: 0018-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
|
||||
Patch0019: 0019-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
|
||||
Patch0020: 0020-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
|
||||
Patch0021: 0021-RHEL-Disable-o-glance.patch
|
||||
Patch0022: 0022-RHEL-Remove-the-in-place-option.patch
|
||||
%endif
|
||||
|
||||
%if 0%{patches_touch_autotools}
|
||||
@ -79,7 +90,7 @@ BuildRequires: bash-completion
|
||||
BuildRequires: file-devel
|
||||
BuildRequires: gettext-devel
|
||||
BuildRequires: jansson-devel
|
||||
BuildRequires: libnbd-devel
|
||||
BuildRequires: libnbd-devel >= 1.10.3
|
||||
BuildRequires: libosinfo-devel
|
||||
BuildRequires: libvirt-daemon-kvm
|
||||
BuildRequires: libvirt-devel
|
||||
@ -302,7 +313,7 @@ popd
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jan 17 2022 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.97-1
|
||||
* Mon Jan 17 2022 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.97-2
|
||||
- Rebase to upstream 1.45.97.
|
||||
resolves: rhbz#2011713
|
||||
- Add virtio-transitional for older guests when converting to q35
|
||||
@ -313,6 +324,8 @@ popd
|
||||
resolves: rhbz#2041852
|
||||
- output: -o json: Allow -oo (output options) to work
|
||||
resolves: rhbz#2041850
|
||||
- Fix virt-v2v hang when given incorrect vpx:// URL
|
||||
resolves: rhbz#2041886
|
||||
|
||||
* Thu Dec 23 2021 Laszlo Ersek <lersek@redhat.com> - 1:1.45.95-3
|
||||
- output_rhv: restrict block status collection to the old RHV output
|
||||
|
Loading…
Reference in New Issue
Block a user