Remove virt-v2v -io vddk-noextents=true option

resolves: RHEL-102619
Add -o kubevirt -oo disk and -oo create options
resolves: RHEL-101599
This commit is contained in:
Richard W.M. Jones 2025-07-09 16:15:55 +01:00
parent 6833559d9e
commit b099d8081c
19 changed files with 815 additions and 54 deletions

View File

@ -0,0 +1,101 @@
From 563c581fd0d68792211edf15632bac3f419888b7 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 9 Jul 2025 09:38:50 +0100
Subject: [PATCH] vddk: Remove -io vddk-noextents option
Commit 191b8cf418 ("input: Add undocumented -io vddk-noextents=true
option") added an option which could be used to insert the nbdkit
noextents filter on top of the VDDK source. This was designed so we
could test in production if this improved performance (which it
didn't).
Since then we've spent more time investigating problems with
QueryAllocatedBlocks and believe we have a better solution in nbdkit.
See:
https://gitlab.com/nbdkit/nbdkit/-/commit/5a882e74cae3dbaa09bf3b942a02f9947b12f6e5
Reverts: commit 191b8cf418076ae3766b134ffa96eee048c7eb9d
---
README | 1 -
input/input_vddk.ml | 35 -----------------------------------
2 files changed, 36 deletions(-)
diff --git a/README b/README
index 49082a96..1cdbef15 100644
--- a/README
+++ b/README
@@ -71,7 +71,6 @@ REQUIREMENTS
+ nbdkit-blocksize-filter
+ nbdkit-cow-filter
+ nbdkit-multi-conn-filter
- + nbdkit-noextents-filter
+ nbdkit-rate-filter
+ nbdkit-retry-filter
diff --git a/input/input_vddk.ml b/input/input_vddk.ml
index b70d76fb..ffc844fb 100644
--- a/input/input_vddk.ml
+++ b/input/input_vddk.ml
@@ -58,7 +58,6 @@ All other settings are optional:
-io vddk-file=FILE Override nbdkit-vddk-plugin file= parameter
-io vddk-libdir=LIBDIR VDDK library parent directory
-io vddk-nfchostport=PORT VDDK nfchostport
- -io vddk-noextents=true Avoid slow VDDK QueryAllocatedBlocks API
-io vddk-port=PORT VDDK port
-io vddk-snapshot=SNAPSHOT-MOREF
VDDK snapshot moref
@@ -79,7 +78,6 @@ information on these settings.
"file";
"libdir";
"nfchostport";
- "noextents";
"port";
"snapshot";
"thumbprint";
@@ -208,9 +206,6 @@ information on these settings.
try Some (List.assoc "libdir" io_options) with Not_found -> None in
let nfchostport =
try Some (List.assoc "nfchostport" io_options) with Not_found -> None in
- let noextents =
- try bool_of_string (List.assoc "noextents" io_options)
- with Not_found -> false in
let port =
try Some (List.assoc "port" io_options) with Not_found -> None in
let snapshot =
@@ -318,36 +313,6 @@ See also the virt-v2v-input-vmware(1) manual.") libNN
*)
Nbdkit.add_filter_if_available cmd "retry";
- (* VDDK's QueryAllocatedBlocks API is infamously slow. It appears
- * to block all other requests while it is running. This API is
- * also only called during the copy phase, not during conversion
- * (or if it is, extremely rarely).
- *
- * If fstrim was successful, then trimmed blocks are stored in
- * the COW filter (see below), and so requests for extents stop
- * at that layer. However for areas of the disk that fstrim
- * thinks contain data, we still have to go through to VDDK to
- * fetch extents.
- *
- * We could therefore add nbdkit-noextents-filter here (below COW,
- * above VDDK plugin) which stops extents requests from going
- * to VDDK, which would stop QueryAllocatedBlocks ever being
- * called. In my testing this is a moderate performance win.
- *
- * However ... in the case where fstrim failed, or for filesystems
- * or partitions on the disk that we don't understand, doing this
- * would mean that those are copied completely, as there would be
- * no extent data (nbdcopy will still sparsify them on the target,
- * but we'd have to copy all the bits from VMware). Because
- * here we don't know if this is the case, be conservative and
- * actually don't use this filter.
- *
- * If used, this filter should be close to the plugin and MUST
- * be below the COW filter.
- *)
- if noextents then
- Nbdkit.add_filter_if_available cmd "noextents";
-
(* Split very large requests to avoid out of memory errors on the
* server. Since we're using this filter, also add minblock=512
* although it will make no difference.

View File

@ -0,0 +1,114 @@
From df5f8c53e55e08f5468b7606ad499aaf09a34a38 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 9 Jul 2025 09:48:35 +0100
Subject: [PATCH] curl, ssh, vddk, file: Add nbdkit-count-filter
nbdkit-count-filter, added in nbdkit 1.45.1, prints a debug message
which just records the number of bytes read, written, trimmed or
zeroed. This is useful for determining how many bytes were actually
copied over the wire or written to disk, and that's a common question
that we currently have no easy way to answer. For more details about
this filter see:
https://gitlab.com/nbdkit/nbdkit/-/commit/3512c3ce9308b4d940119ac6cc87f1baa9afb655
https://libguestfs.org/nbdkit-count-filter.1.html
Use this filter (if available) unconditionally for all inputs that
read over the network, and for the common file-based outputs
(specifically -o kubevirt).
It is only enabled if we're producing debug output (ie. conversion
logs).
---
README | 1 +
input/input_vddk.ml | 7 +++++++
input/nbdkit_curl.ml | 7 +++++++
input/nbdkit_ssh.ml | 7 +++++++
output/output.ml | 2 ++
5 files changed, 24 insertions(+)
diff --git a/README b/README
index 1cdbef15..407869b4 100644
--- a/README
+++ b/README
@@ -69,6 +69,7 @@ REQUIREMENTS
+ nbdkit-vddk-plugin
+ nbdkit-blocksize-filter
+ + nbdkit-count-filter
+ nbdkit-cow-filter
+ nbdkit-multi-conn-filter
+ nbdkit-rate-filter
diff --git a/input/input_vddk.ml b/input/input_vddk.ml
index ffc844fb..fc09c532 100644
--- a/input/input_vddk.ml
+++ b/input/input_vddk.ml
@@ -313,6 +313,13 @@ See also the virt-v2v-input-vmware(1) manual.") libNN
*)
Nbdkit.add_filter_if_available cmd "retry";
+ (* Add the count filter if available, to report bytes read.
+ * Since it writes a debug message, only do this if verbose.
+ * This should be close to the plugin so we're reporting what
+ * is read over the wire.
+ *)
+ if verbose () then Nbdkit.add_filter_if_available cmd "count";
+
(* Split very large requests to avoid out of memory errors on the
* server. Since we're using this filter, also add minblock=512
* although it will make no difference.
diff --git a/input/nbdkit_curl.ml b/input/nbdkit_curl.ml
index d8c832b8..f8a0213e 100644
--- a/input/nbdkit_curl.ml
+++ b/input/nbdkit_curl.ml
@@ -58,6 +58,13 @@ let create_curl ?bandwidth ?cookie_script ?cookie_script_renew ?cor
*)
Nbdkit.add_filter_if_available cmd "retry";
+ (* Add the count filter if available, to report bytes read.
+ * Since it writes a debug message, only do this if verbose.
+ * This should be close to the plugin so we're reporting what
+ * is read over the wire.
+ *)
+ if verbose () then Nbdkit.add_filter_if_available cmd "count";
+
(* IMPORTANT! Add the COW filter. It must be furthest away
* except for the rate filter.
*)
diff --git a/input/nbdkit_ssh.ml b/input/nbdkit_ssh.ml
index e6d99ede..4e4c918f 100644
--- a/input/nbdkit_ssh.ml
+++ b/input/nbdkit_ssh.ml
@@ -54,6 +54,13 @@ let create_ssh ?bandwidth ?cor ?(retry=true)
if retry then
Nbdkit.add_filter_if_available cmd "retry";
+ (* Add the count filter if available, to report bytes read.
+ * Since it writes a debug message, only do this if verbose.
+ * This should be close to the plugin so we're reporting what
+ * is read over the wire.
+ *)
+ if verbose () then Nbdkit.add_filter_if_available cmd "count";
+
(* IMPORTANT! Add the COW filter. It must be furthest away
* except for the rate filter.
*)
diff --git a/output/output.ml b/output/output.ml
index b3629372..65325538 100644
--- a/output/output.ml
+++ b/output/output.ml
@@ -98,6 +98,7 @@ let output_to_local_file ?(changeuid = fun f -> f ()) ?(compressed = false)
let cmd = Nbdkit.create "file" in
Nbdkit.add_arg cmd "file" filename;
Nbdkit.add_arg cmd "cache" "none";
+ if verbose () then Nbdkit.add_filter_if_available cmd "count";
let _, pid = Nbdkit.run_unix socket cmd in
pid
@@ -197,6 +198,7 @@ let create_local_output_disks dir
let cmd = Nbdkit.create "file" in
Nbdkit.add_arg cmd "dir" output_storage;
Nbdkit.add_arg cmd "cache" "none";
+ if verbose () then Nbdkit.add_filter_if_available cmd "count";
let _, pid = Nbdkit.run_unix socket cmd in
On_exit.kill pid;

View File

@ -0,0 +1,45 @@
From 378967fc4984af4f06c586886a1148aebede8cff Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 8 Jul 2025 11:11:48 +0100
Subject: [PATCH] docs: Move -oo verify-server-certificate docs to alphabetical
place
This option wasn't in alphabetical order.
---
docs/virt-v2v.pod | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 3cfb0948..3eefe404 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -611,14 +611,6 @@ volume property.
When using I<-o qemu> only, this boots the guest immediately after
virt-v2v finishes.
-=item B<-oo verify-server-certificate>
-
-=item B<-oo verify-server-certificate=>C<true|false>
-
-For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can
-be used to disable SSL certification validation when connecting to
-OpenStack by specifying I<-oo verify-server-certificate=false>.
-
=item B<-oo os->*B<=>*
For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional
@@ -736,6 +728,14 @@ The OVF format understood by oVirt REST API.
For backward compatibility the default is I<ovirtexp>, but this may change in
the future.
+=item B<-oo verify-server-certificate>
+
+=item B<-oo verify-server-certificate=>C<true|false>
+
+For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, this can
+be used to disable SSL certification validation when connecting to
+OpenStack by specifying I<-oo verify-server-certificate=false>.
+
=item B<-op> file
Supply a file containing a password to be used when connecting to the

View File

@ -0,0 +1,233 @@
From 0d65b284930045f112542d9eaf6dd488efd98245 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 8 Jul 2025 10:40:48 +0100
Subject: [PATCH] -o kubevirt: Add -oo disk to allow disk names to be
overridden
Fixes: https://issues.redhat.com/browse/RHEL-101599
---
docs/virt-v2v.pod | 15 +++++++--
output/output_kubevirt.ml | 58 ++++++++++++++++++++++++++------
tests/Makefile.am | 2 ++
tests/test-o-kubevirt-oo-disk.sh | 52 ++++++++++++++++++++++++++++
4 files changed, 115 insertions(+), 12 deletions(-)
create mode 100755 tests/test-o-kubevirt-oo-disk.sh
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 3eefe404..5020d179 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -466,8 +466,9 @@ Set the output method to I<kubevirt>. B<Note the way this mode works
is experimental and will change in future.>
In this mode, the converted guest is written to a local directory
-specified by I<-os /dir> (the directory must exist). The converted
-guests disks are written to:
+specified by I<-os /dir> (the directory must exist).
+
+By default the converted guests disks are written to:
/dir/name-sda
/dir/name-sdb
@@ -479,6 +480,8 @@ and guest metadata is created in the associated YAML file:
where C<name> is the guest name.
+You can override the disk paths by using I<-oo disk=...> option(s).
+
=item B<-o> B<libvirt>
Set the output method to I<libvirt>. This is the default.
@@ -600,6 +603,14 @@ For outputs which support qcow2 format (I<-of qcow2>), this writes a
compressed qcow2 file. It is the equivalent to the I<-c> option of
L<qemu-img(1)>.
+=item B<-oo disk=>DISK
+
+For I<-o kubevirt> this overrides the path to each output disk,
+instead of using the default which is C<DISK-sda> etc in the output
+storage (I<-os>) path. If you use this option at all, you must repeat
+it once for each guest disk. If you don't use it, then the default
+method of putting disks in the output storage path is used.
+
=item B<-oo guest-id=>C<ID>
For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID
diff --git a/output/output_kubevirt.ml b/output/output_kubevirt.ml
index 76ecd39d..eae9c049 100644
--- a/output/output_kubevirt.ml
+++ b/output/output_kubevirt.ml
@@ -35,7 +35,8 @@ let rfc1123_re =
"^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$"
module Kubevirt = struct
- type poptions = bool * output_allocation * string * string * string
+ type poptions =
+ bool * string list option * output_allocation * string * string * string
type t = unit
@@ -49,15 +50,18 @@ module Kubevirt = struct
printf (f_"Output options that can be used with -o kubevirt:
-oo compressed Compress the output file (used only with -of qcow2)
+ -oo disk=disk1 Specify filename of output disk (if used, must be
+ given once for each disk, else -os path is used)
")
-
let parse_options options source =
let compressed = ref false in
+ let disks = ref [] in
List.iter (
function
| "compressed", "" -> compressed := true
| "compressed", v -> compressed := bool_of_string v
+ | "disk", v -> List.push_back disks v
| k, _ ->
error (f_"-o kubevirt: unknown output option -oo %s") k
) options.output_options;
@@ -84,23 +88,57 @@ module Kubevirt = struct
end with an alphanumeric character. Rerun virt-v2v with \
the '-on name' option to rename it.");
- !compressed, options.output_alloc, options.output_format,
+ let disks = match !disks with [] -> None | disks -> Some disks in
+
+ !compressed, disks,
+ options.output_alloc, options.output_format,
output_name, output_storage
let setup dir options source input_disks =
- let compressed, output_alloc, output_format, output_name, output_storage =
- options in
+ let compressed, disks,
+ output_alloc, output_format, output_name, output_storage = options in
let uris =
- create_local_output_disks dir ~compressed output_alloc output_format
- output_name output_storage input_disks in
+ match disks with
+ | None ->
+ create_local_output_disks dir ~compressed
+ output_alloc output_format output_name output_storage input_disks
+ | Some disks ->
+ (* -oo disk specified, so create the disks by hand. *)
+ let nr_input_disks = List.length input_disks
+ and nr_output_disks = List.length disks in
+ if nr_input_disks <> nr_output_disks then
+ error (f_"incorrect number of '-oo disk' parameters. This guest \
+ has %d disks, but the parameter was used %d times.")
+ nr_input_disks nr_output_disks;
+
+ let input_sizes = get_disk_sizes input_disks in
+ List.mapi (
+ fun i (disk, size) ->
+ let socket = sprintf "%s/out%d" dir i in
+ On_exit.unlink socket;
+
+ output_to_local_file ~compressed
+ output_alloc output_format disk size socket;
+
+ NBD_URI.Unix (socket, None)
+ ) (List.combine disks input_sizes)
+ in
+
(), uris
let finalize dir options () output_disks source inspect target_meta =
- let _, output_alloc, output_format, output_name, output_storage = options in
+ let _, disks,
+ output_alloc, output_format, output_name, output_storage = options in
- let doc = create_kubevirt_yaml source inspect target_meta
- (disk_path output_storage output_name)
+ (* This function will return the disk path for the i'th disk. *)
+ let disk_path =
+ match disks with
+ | None -> Output.disk_path output_storage output_name
+ | Some disks -> List.nth disks
+ in
+
+ let doc = create_kubevirt_yaml source inspect target_meta disk_path
output_format output_name in
let file = output_storage // output_name ^ ".yaml" in
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 62237092..3a8bab3c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -95,6 +95,7 @@ TESTS = \
test-networks-and-bridges.sh \
test-o-glance.sh \
test-o-kubevirt-fedora.sh \
+ test-o-kubevirt-oo-disk.sh \
test-o-kubevirt-windows.sh \
test-o-libvirt.sh \
test-o-local-qcow2-compressed.sh \
@@ -288,6 +289,7 @@ EXTRA_DIST += \
test-o-glance.sh \
test-o-kubevirt-fedora.sh \
test-o-kubevirt-fedora.yaml.expected \
+ test-o-kubevirt-oo-disk.sh \
test-o-kubevirt-windows.sh \
test-o-kubevirt-windows.yaml.expected \
test-o-libvirt.sh \
diff --git a/tests/test-o-kubevirt-oo-disk.sh b/tests/test-o-kubevirt-oo-disk.sh
new file mode 100755
index 00000000..e1e6fd61
--- /dev/null
+++ b/tests/test-o-kubevirt-oo-disk.sh
@@ -0,0 +1,52 @@
+#!/bin/bash -
+# libguestfs virt-v2v test script
+# Copyright (C) 2018-2025 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# Test -o kubevirt + -oo disk option.
+
+set -e
+set -x
+
+source ./functions.sh
+set -e
+set -x
+
+skip_if_skipped
+requires test -f ../test-data/phony-guests/fedora.img
+
+libvirt_uri="test://$abs_top_builddir/test-data/phony-guests/guests.xml"
+fedora=../test-data/phony-guests/fedora.img
+
+d=test-o-kubevirt-oo-disk.d
+rm -rf $d
+cleanup_fn rm -r $d
+mkdir $d
+
+# Run virt-v2v -o kubevirt.
+$VG virt-v2v --debug-gc \
+ -i libvirt -ic "$libvirt_uri" fedora \
+ -o kubevirt -oo disk=$d/disk.img -os $d
+
+ls -l $d
+
+cat $d/fedora.yaml
+
+# Check the disk was created.
+test -f $d/disk.img
+
+# Check the default path was _not_ created.
+! test -f $d/fedora-sda

View File

@ -0,0 +1,141 @@
From fb5722adb2b9336183c866295362b94abf07eb2f Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 8 Jul 2025 11:08:08 +0100
Subject: [PATCH] output: Add optional ?create parameter
This parameter of Output.create_local_output_disks and
Output.output_to_local_file allows the default creation of disks to be
skipped. It defaults to true (ie. create them) which is the normal
behaviour.
This allows output modes to implement the '-oo create=false' option,
although none do so far.
---
output/output.ml | 61 ++++++++++++++++++++++++++---------------------
output/output.mli | 5 +++-
2 files changed, 38 insertions(+), 28 deletions(-)
diff --git a/output/output.ml b/output/output.ml
index 65325538..15cb50db 100644
--- a/output/output.ml
+++ b/output/output.ml
@@ -66,7 +66,9 @@ let error_if_disk_count_gt input_disks n =
type on_exit_kill = Kill | KillAndWait
-let output_to_local_file ?(changeuid = fun f -> f ()) ?(compressed = false)
+let output_to_local_file ?(changeuid = fun f -> f ())
+ ?(compressed = false)
+ ?(create = true)
?(on_exit_kill = Kill)
output_alloc output_format filename size socket =
(* Check nbdkit is installed and has the required plugin. *)
@@ -83,13 +85,15 @@ let output_to_local_file ?(changeuid = fun f -> f ()) ?(compressed = false)
is a local qcow2-format file, i.e. -of qcow2")
);
- let g = open_guestfs () in
- let preallocation =
- match output_alloc with
- | Preallocated -> Some "full"
- | Sparse -> None in
- changeuid (
- fun () -> g#disk_create ?preallocation filename output_format size
+ if create then (
+ let g = open_guestfs () in
+ let preallocation =
+ match output_alloc with
+ | Preallocated -> Some "full"
+ | Sparse -> None in
+ changeuid (
+ fun () -> g#disk_create ?preallocation filename output_format size
+ )
);
let pid =
@@ -151,6 +155,7 @@ let disk_path os name i =
let create_local_output_disks dir
?(compressed = false)
+ ?(create = true)
output_alloc output_format output_name output_storage
input_disks =
let input_sizes = get_disk_sizes input_disks in
@@ -171,25 +176,27 @@ let create_local_output_disks dir
error (f_"nbdkit-file-plugin is not installed or not working");
(* We still have to create the output disks. *)
- let g = open_guestfs () in
- let preallocation =
- match output_alloc with
- | Preallocated -> Some "full"
- | Sparse -> None in
- List.iter (
- fun (size, filename) ->
- g#disk_create ?preallocation filename output_format size;
+ if create then (
+ let g = open_guestfs () in
+ let preallocation =
+ match output_alloc with
+ | Preallocated -> Some "full"
+ | Sparse -> None in
+ List.iter (
+ fun (size, filename) ->
+ g#disk_create ?preallocation filename output_format size;
- (* We've had issues with there not being enough space to write
- * the disk image. Run df on the output filename. df follows
- * symlinks and reports the space on the filesystem. But don't
- * fail here if df cannot be run.
- *)
- if verbose () then (
- let cmd = sprintf "df %s 1>&2" (quote filename) in
- ignore (Sys.command cmd)
- )
- ) (List.combine input_sizes output_disk_names);
+ (* We've had issues with there not being enough space to write
+ * the disk image. Run df on the output filename. df follows
+ * symlinks and reports the space on the filesystem. But don't
+ * fail here if df cannot be run.
+ *)
+ if verbose () then (
+ let cmd = sprintf "df %s 1>&2" (quote filename) in
+ ignore (Sys.command cmd)
+ )
+ ) (List.combine input_sizes output_disk_names)
+ );
let socket = sprintf "%s/out0" dir in
On_exit.unlink socket;
@@ -220,7 +227,7 @@ let create_local_output_disks dir
On_exit.unlink socket;
(* Create the actual output disk. *)
- output_to_local_file ~compressed output_alloc output_format
+ output_to_local_file ~compressed ~create output_alloc output_format
outdisk size socket;
NBD_URI.Unix (socket, None)
diff --git a/output/output.mli b/output/output.mli
index 51bdde06..63a1c3f6 100644
--- a/output/output.mli
+++ b/output/output.mli
@@ -84,6 +84,7 @@ val error_if_disk_count_gt : NBD_URI.t list -> int -> unit
val create_local_output_disks : string ->
?compressed:bool ->
+ ?create:bool ->
Types.output_allocation ->
string -> string -> string ->
NBD_URI.t list ->
@@ -98,7 +99,9 @@ val create_local_output_disks : string ->
type on_exit_kill = Kill | KillAndWait
val output_to_local_file : ?changeuid:((unit -> unit) -> unit) ->
- ?compressed:bool -> ?on_exit_kill:on_exit_kill ->
+ ?compressed:bool ->
+ ?create:bool ->
+ ?on_exit_kill:on_exit_kill ->
Types.output_allocation ->
string -> string -> int64 -> string ->
unit

View File

@ -0,0 +1,119 @@
From 667a69fb8ddd7d27388a1b31af022158c533c0bb Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 8 Jul 2025 11:15:56 +0100
Subject: [PATCH] -o kubevirt: Add -oo create=false to avoid disk creation
Indicate that an external process will create the disks, so normal
creation of disks by virt-v2v should be skipped.
Testing
-------
I couldn't think of a way to add a test this since g#disk_create
(implemented in libguestfs.git:lib/create.c) will open(O_TRUNC) +
truncate(2) the existing disk, so the inode will remain the same.
Instead I tested it by hand by not creating the disk and observing the
error from nbdkit:
nbdkit: error: realpath: /var/tmp/disk.img: No such file or directory
virt-v2v: error: nbdkit did not start up. There may be errors printed by
nbdkit above.
Fixes: https://issues.redhat.com/browse/RHEL-101599
---
docs/virt-v2v.pod | 5 +++++
output/output_kubevirt.ml | 17 +++++++++++------
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 5020d179..e228fb33 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -603,6 +603,11 @@ For outputs which support qcow2 format (I<-of qcow2>), this writes a
compressed qcow2 file. It is the equivalent to the I<-c> option of
L<qemu-img(1)>.
+=item B<-oo create=false>
+
+For I<-o kubevirt>, indicate that another management process will
+create the output disks, so do not (re-)create them in virt-v2v.
+
=item B<-oo disk=>DISK
For I<-o kubevirt> this overrides the path to each output disk,
diff --git a/output/output_kubevirt.ml b/output/output_kubevirt.ml
index eae9c049..8a5ab56d 100644
--- a/output/output_kubevirt.ml
+++ b/output/output_kubevirt.ml
@@ -36,7 +36,8 @@ let rfc1123_re =
module Kubevirt = struct
type poptions =
- bool * string list option * output_allocation * string * string * string
+ bool * bool * string list option *
+ output_allocation * string * string * string
type t = unit
@@ -50,17 +51,21 @@ module Kubevirt = struct
printf (f_"Output options that can be used with -o kubevirt:
-oo compressed Compress the output file (used only with -of qcow2)
+ -oo create=false Do not create the output disks
-oo disk=disk1 Specify filename of output disk (if used, must be
given once for each disk, else -os path is used)
")
let parse_options options source =
let compressed = ref false in
+ let create = ref true in
let disks = ref [] in
List.iter (
function
| "compressed", "" -> compressed := true
| "compressed", v -> compressed := bool_of_string v
+ | "create", "" -> create := true
+ | "create", v -> create := bool_of_string v
| "disk", v -> List.push_back disks v
| k, _ ->
error (f_"-o kubevirt: unknown output option -oo %s") k
@@ -90,18 +95,18 @@ module Kubevirt = struct
let disks = match !disks with [] -> None | disks -> Some disks in
- !compressed, disks,
+ !compressed, !create, disks,
options.output_alloc, options.output_format,
output_name, output_storage
let setup dir options source input_disks =
- let compressed, disks,
+ let compressed, create, disks,
output_alloc, output_format, output_name, output_storage = options in
let uris =
match disks with
| None ->
- create_local_output_disks dir ~compressed
+ create_local_output_disks dir ~compressed ~create
output_alloc output_format output_name output_storage input_disks
| Some disks ->
(* -oo disk specified, so create the disks by hand. *)
@@ -118,7 +123,7 @@ module Kubevirt = struct
let socket = sprintf "%s/out%d" dir i in
On_exit.unlink socket;
- output_to_local_file ~compressed
+ output_to_local_file ~compressed ~create
output_alloc output_format disk size socket;
NBD_URI.Unix (socket, None)
@@ -128,7 +133,7 @@ module Kubevirt = struct
(), uris
let finalize dir options () output_disks source inspect target_meta =
- let _, disks,
+ let _, _, disks,
output_alloc, output_format, output_name, output_storage = options in
(* This function will return the disk path for the i'th disk. *)

View File

@ -1,4 +1,4 @@
From 42d326e84452862518293f435df4e1db1f3b5696 Mon Sep 17 00:00:00 2001 From 9936298e0fcfd8dd7e59e9546bda6d9c6f0f250d Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 30 Aug 2015 03:21:57 -0400 Date: Sun, 30 Aug 2015 03:21:57 -0400
Subject: [PATCH] RHEL: Fixes for libguestfs-winsupport. Subject: [PATCH] RHEL: Fixes for libguestfs-winsupport.

View File

@ -1,4 +1,4 @@
From 0edaf8c3992e6243c5c7ecf152c78fa3b2b47201 Mon Sep 17 00:00:00 2001 From 584811b0cd9b42ab239ba6e4f39a366faf54bbbc Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 28 Sep 2014 19:14:43 +0100 Date: Sun, 28 Sep 2014 19:14:43 +0100
Subject: [PATCH] RHEL: v2v: Select correct qemu binary for -o qemu mode Subject: [PATCH] RHEL: v2v: Select correct qemu binary for -o qemu mode

View File

@ -1,4 +1,4 @@
From d16c02df196557e526a0a099d382afce84a843d5 Mon Sep 17 00:00:00 2001 From 6d1f3fcb6c5aa2a8805604def4c6a07d7b2db4f3 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 30 Sep 2014 10:50:27 +0100 Date: Tue, 30 Sep 2014 10:50:27 +0100
Subject: [PATCH] RHEL: v2v: Disable the --qemu-boot / -oo qemu-boot option Subject: [PATCH] RHEL: v2v: Disable the --qemu-boot / -oo qemu-boot option
@ -43,7 +43,7 @@ index 49f00754..bdf12c5d 100644
=item B<-o null> =item B<-o null>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 3cfb0948..600de391 100644 index e228fb33..35886561 100644
--- a/docs/virt-v2v.pod --- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod
@@ -160,11 +160,6 @@ Since F<guest-domain.xml> contains the path(s) to the guest disk @@ -160,11 +160,6 @@ Since F<guest-domain.xml> contains the path(s) to the guest disk
@ -58,7 +58,7 @@ index 3cfb0948..600de391 100644
=head1 OPTIONS =head1 OPTIONS
=over 4 =over 4
@@ -546,9 +541,6 @@ This is similar to I<-o local>, except that a shell script is written @@ -549,9 +544,6 @@ This is similar to I<-o local>, except that a shell script is written
which you can use to boot the guest in qemu. The converted disks and which you can use to boot the guest in qemu. The converted disks and
shell script are written to the directory specified by I<-os>. shell script are written to the directory specified by I<-os>.
@ -68,7 +68,7 @@ index 3cfb0948..600de391 100644
=item B<-o> B<vdsm> =item B<-o> B<vdsm>
Set the output method to I<vdsm>. Set the output method to I<vdsm>.
@@ -606,11 +598,6 @@ For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID @@ -622,11 +614,6 @@ For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID
which is saved on each Cinder volume in the C<virt_v2v_guest_id> which is saved on each Cinder volume in the C<virt_v2v_guest_id>
volume property. volume property.
@ -77,9 +77,9 @@ index 3cfb0948..600de391 100644
-When using I<-o qemu> only, this boots the guest immediately after -When using I<-o qemu> only, this boots the guest immediately after
-virt-v2v finishes. -virt-v2v finishes.
- -
=item B<-oo verify-server-certificate> =item B<-oo os->*B<=>*
=item B<-oo verify-server-certificate=>C<true|false> For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional
diff --git a/output/output_qemu.ml b/output/output_qemu.ml diff --git a/output/output_qemu.ml b/output/output_qemu.ml
index 909b6e10..37371aad 100644 index 909b6e10..37371aad 100644
--- a/output/output_qemu.ml --- a/output/output_qemu.ml

View File

@ -1,4 +1,4 @@
From 99614f4fb8d044b9a850d8e7934524b4e7450473 Mon Sep 17 00:00:00 2001 From 92630606fcd96402742b56f7ba51c50828cff4b3 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 24 Apr 2015 09:45:41 -0400 Date: Fri, 24 Apr 2015 09:45:41 -0400
Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu

View File

@ -1,4 +1,4 @@
From 67e67669418624469b001328dddd10337b9bfa95 Mon Sep 17 00:00:00 2001 From c81f440ff00ca0dfafccbfad46b9d8707d96c7f9 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 2 Mar 2017 14:21:37 +0100 Date: Thu, 2 Mar 2017 14:21:37 +0100
Subject: [PATCH] RHEL: v2v: -i disk: force VNC as display (RHBZ#1372671) Subject: [PATCH] RHEL: v2v: -i disk: force VNC as display (RHBZ#1372671)

View File

@ -1,4 +1,4 @@
From aa3915841987509eda99faf2548cc3ee429d825b Mon Sep 17 00:00:00 2001 From c97ccc32ceb443f01950f2d8745413deb6848afa Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com> From: Pino Toscano <ptoscano@redhat.com>
Date: Tue, 26 Mar 2019 09:42:25 +0100 Date: Tue, 26 Mar 2019 09:42:25 +0100
Subject: [PATCH] RHEL: point to KB for supported v2v hypervisors/guests Subject: [PATCH] RHEL: point to KB for supported v2v hypervisors/guests

View File

@ -1,4 +1,4 @@
From 35c4a9f5c9f92fe15055ec337a94ad9f743706d6 Mon Sep 17 00:00:00 2001 From fe169b7a7647d3dbf723ce07f5da37f697677e06 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 8 Jul 2024 09:35:54 +0100 Date: Mon, 8 Jul 2024 09:35:54 +0100
Subject: [PATCH] RHEL: Remove input from Xen Subject: [PATCH] RHEL: Remove input from Xen
@ -229,7 +229,7 @@ index 0417e89f..00000000
- -
-Copyright (C) 2009-2025 Red Hat Inc. -Copyright (C) 2009-2025 Red Hat Inc.
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 600de391..fd4362fc 100644 index 35886561..8e31fd0b 100644
--- a/docs/virt-v2v.pod --- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod
@@ -12,7 +12,7 @@ virt-v2v - Convert a guest to use KVM @@ -12,7 +12,7 @@ virt-v2v - Convert a guest to use KVM
@ -277,7 +277,7 @@ index 600de391..fd4362fc 100644
=item B<-if> format =item B<-if> format
@@ -867,7 +859,7 @@ bandwidth. Virt-v2v should be able to copy guest data at gigabit @@ -883,7 +875,7 @@ bandwidth. Virt-v2v should be able to copy guest data at gigabit
ethernet speeds or greater. ethernet speeds or greater.
Ensure that the network connections between servers (conversion Ensure that the network connections between servers (conversion
@ -286,7 +286,7 @@ index 600de391..fd4362fc 100644
possible. possible.
=head2 Disk space =head2 Disk space
@@ -1166,38 +1158,6 @@ changes to the Windows Registry and filesystem. @@ -1182,38 +1174,6 @@ changes to the Windows Registry and filesystem.
=head1 NOTES =head1 NOTES

View File

@ -1,4 +1,4 @@
From f246ed3ee4928d45f778d3d9ed25bccbf6f8c13c Mon Sep 17 00:00:00 2001 From 72a651dfa3de1dfff58b7454860cf872d0baedd3 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 30 Jun 2021 11:15:52 +0100 Date: Wed, 30 Jun 2021 11:15:52 +0100
Subject: [PATCH] RHEL: Remove -o glance Subject: [PATCH] RHEL: Remove -o glance
@ -100,7 +100,7 @@ index 9bef76ea..04595816 100644
=head1 AUTHOR =head1 AUTHOR
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index fd4362fc..3cedc823 100644 index 8e31fd0b..fde60a8c 100644
--- a/docs/virt-v2v.pod --- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod
@@ -439,14 +439,6 @@ See L</Networks and bridges> below. @@ -439,14 +439,6 @@ See L</Networks and bridges> below.
@ -118,7 +118,7 @@ index fd4362fc..3cedc823 100644
=item B<-o> B<kubevirt> =item B<-o> B<kubevirt>
Set the output method to I<kubevirt>. B<Note the way this mode works Set the output method to I<kubevirt>. B<Note the way this mode works
@@ -881,11 +873,6 @@ and output methods may use disk space, as outlined in the table below. @@ -897,11 +889,6 @@ and output methods may use disk space, as outlined in the table below.
This temporarily places a full copy of the uncompressed source disks This temporarily places a full copy of the uncompressed source disks
in C<$VIRT_V2V_TMPDIR> (or F</var/tmp>). in C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).
@ -130,7 +130,7 @@ index fd4362fc..3cedc823 100644
=item I<-o local> =item I<-o local>
=item I<-o qemu> =item I<-o qemu>
@@ -1037,13 +1024,6 @@ See also L</Starting the libvirt system instance>. @@ -1053,13 +1040,6 @@ See also L</Starting the libvirt system instance>.
Because of how Cinder volumes are presented as F</dev> block devices, Because of how Cinder volumes are presented as F</dev> block devices,
using I<-o openstack> normally requires that virt-v2v is run as root. using I<-o openstack> normally requires that virt-v2v is run as root.

View File

@ -1,4 +1,4 @@
From 3e6fd182fb537a6a057b119a15b4dcf04ce3aacd Mon Sep 17 00:00:00 2001 From 26291b59b8735fc1efc8be282067bd1c18d747f3 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 5 Jul 2022 11:58:09 +0100 Date: Tue, 5 Jul 2022 11:58:09 +0100
Subject: [PATCH] RHEL: tests: Remove btrfs test Subject: [PATCH] RHEL: tests: Remove btrfs test
@ -9,7 +9,7 @@ RHEL does not have btrfs so this test always fails.
1 file changed, 1 deletion(-) 1 file changed, 1 deletion(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am diff --git a/tests/Makefile.am b/tests/Makefile.am
index 62237092..51d84bc9 100644 index 3a8bab3c..f9c748ed 100644
--- a/tests/Makefile.am --- a/tests/Makefile.am
+++ b/tests/Makefile.am +++ b/tests/Makefile.am
@@ -64,7 +64,6 @@ TESTS = \ @@ -64,7 +64,6 @@ TESTS = \

View File

@ -1,4 +1,4 @@
From c7c4c87c7cade4f79048e4fd7e03f548e8d5e4ca Mon Sep 17 00:00:00 2001 From f26534ee1cfec5fe3d02e437d8340cf11dd48b54 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 28 Apr 2023 12:28:19 +0100 Date: Fri, 28 Apr 2023 12:28:19 +0100
Subject: [PATCH] RHEL: Remove --block-driver option Subject: [PATCH] RHEL: Remove --block-driver option
@ -37,7 +37,7 @@ index 6c02a99c..3d0d1b28 100644
=item B<--colours> =item B<--colours>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 3cedc823..f0a2f231 100644 index fde60a8c..0e68de10 100644
--- a/docs/virt-v2v.pod --- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod
@@ -212,16 +212,6 @@ The options are silently ignored for other input methods. @@ -212,16 +212,6 @@ The options are silently ignored for other input methods.
@ -101,7 +101,7 @@ index 604a662d..a91ee39d 100644
ks = opthandle.ks; ks = opthandle.ks;
network_map; network_map;
diff --git a/tests/Makefile.am b/tests/Makefile.am diff --git a/tests/Makefile.am b/tests/Makefile.am
index 51d84bc9..f64316fd 100644 index f9c748ed..c0aa8498 100644
--- a/tests/Makefile.am --- a/tests/Makefile.am
+++ b/tests/Makefile.am +++ b/tests/Makefile.am
@@ -57,7 +57,6 @@ TESTS_ENVIRONMENT = $(top_builddir)/run --test @@ -57,7 +57,6 @@ TESTS_ENVIRONMENT = $(top_builddir)/run --test

View File

@ -1,4 +1,4 @@
From eee5f0c29ee2b06b721e1ccfe0f85fb7193825f3 Mon Sep 17 00:00:00 2001 From fe727ba294110fe49244760176751d605288e246 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 8 Jul 2024 09:56:54 +0100 Date: Mon, 8 Jul 2024 09:56:54 +0100
Subject: [PATCH] RHEL: Remove -o ovirt, -o ovirt-upload and -o vdsm modes Subject: [PATCH] RHEL: Remove -o ovirt, -o ovirt-upload and -o vdsm modes
@ -360,7 +360,7 @@ index 6ba04ad0..00000000
- -
-Copyright (C) 2009-2025 Red Hat Inc. -Copyright (C) 2009-2025 Red Hat Inc.
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index f0a2f231..19ec1619 100644 index 0e68de10..b63da9f3 100644
--- a/docs/virt-v2v.pod --- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod
@@ -14,9 +14,9 @@ virt-v2v - Convert a guest to use KVM @@ -14,9 +14,9 @@ virt-v2v - Convert a guest to use KVM
@ -407,7 +407,7 @@ index f0a2f231..19ec1619 100644
=head2 Convert from ESXi hypervisor over SSH to local libvirt =head2 Convert from ESXi hypervisor over SSH to local libvirt
You have an ESXi hypervisor called C<esxi.example.com> with SSH access You have an ESXi hypervisor called C<esxi.example.com> with SSH access
@@ -487,26 +470,6 @@ no metadata is written. @@ -490,26 +473,6 @@ no metadata is written.
Set the output method to OpenStack. See L<virt-v2v-output-openstack(1)>. Set the output method to OpenStack. See L<virt-v2v-output-openstack(1)>.
@ -434,7 +434,7 @@ index f0a2f231..19ec1619 100644
=item B<-o> B<qemu> =item B<-o> B<qemu>
Set the output method to I<qemu>. Set the output method to I<qemu>.
@@ -515,15 +478,6 @@ This is similar to I<-o local>, except that a shell script is written @@ -518,15 +481,6 @@ This is similar to I<-o local>, except that a shell script is written
which you can use to boot the guest in qemu. The converted disks and which you can use to boot the guest in qemu. The converted disks and
shell script are written to the directory specified by I<-os>. shell script are written to the directory specified by I<-os>.
@ -450,7 +450,7 @@ index f0a2f231..19ec1619 100644
=item B<-oa> B<sparse> =item B<-oa> B<sparse>
=item B<-oa> B<preallocated> =item B<-oa> B<preallocated>
@@ -586,117 +540,11 @@ For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional @@ -594,117 +548,11 @@ For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set optional
OpenStack authentication. For example I<-oo os-username=>NAME is OpenStack authentication. For example I<-oo os-username=>NAME is
equivalent to C<openstack --os-username=NAME>. equivalent to C<openstack --os-username=NAME>.
@ -565,10 +565,10 @@ index f0a2f231..19ec1619 100644
-For backward compatibility the default is I<ovirtexp>, but this may change in -For backward compatibility the default is I<ovirtexp>, but this may change in
-the future. -the future.
- -
=item B<-op> file =item B<-oo verify-server-certificate>
Supply a file containing a password to be used when connecting to the =item B<-oo verify-server-certificate=>C<true|false>
@@ -714,28 +562,6 @@ For I<-o libvirt>, this is a libvirt directory pool @@ -730,28 +578,6 @@ For I<-o libvirt>, this is a libvirt directory pool
For I<-o local> and I<-o qemu>, this is a directory name. For I<-o local> and I<-o qemu>, this is a directory name.
The directory must exist. The directory must exist.
@ -597,7 +597,7 @@ index f0a2f231..19ec1619 100644
=item B<--parallel> N =item B<--parallel> N
Enable parallel copying if the guest has multiple disks. I<N> is the Enable parallel copying if the guest has multiple disks. I<N> is the
@@ -975,26 +801,6 @@ require either root or a special user: @@ -991,26 +817,6 @@ require either root or a special user:
=over 4 =over 4
@ -624,7 +624,7 @@ index f0a2f231..19ec1619 100644
=item Writing to libvirt =item Writing to libvirt
When using I<-o libvirt>, you may need to run virt-v2v as root so that When using I<-o libvirt>, you may need to run virt-v2v as root so that
@@ -1541,7 +1347,6 @@ virt-v2v binary. Typical output looks like this: @@ -1557,7 +1363,6 @@ virt-v2v binary. Typical output looks like this:
virt-v2v virt-v2v
libguestfs-rewrite libguestfs-rewrite
colours-option colours-option
@ -3616,10 +3616,10 @@ index 093c9b9a..1f8259e3 100644
val output_modes : output_mode list val output_modes : output_mode list
diff --git a/tests/Makefile.am b/tests/Makefile.am diff --git a/tests/Makefile.am b/tests/Makefile.am
index f64316fd..58dc74b8 100644 index c0aa8498..df221b73 100644
--- a/tests/Makefile.am --- a/tests/Makefile.am
+++ b/tests/Makefile.am +++ b/tests/Makefile.am
@@ -98,12 +98,7 @@ TESTS = \ @@ -99,12 +99,7 @@ TESTS = \
test-o-local-qcow2-compressed.sh \ test-o-local-qcow2-compressed.sh \
test-o-null.sh \ test-o-null.sh \
test-o-openstack.sh \ test-o-openstack.sh \
@ -3632,7 +3632,7 @@ index f64316fd..58dc74b8 100644
test-oa-option-qcow2.sh \ test-oa-option-qcow2.sh \
test-oa-option-raw.sh \ test-oa-option-raw.sh \
test-of-option.sh \ test-of-option.sh \
@@ -292,17 +287,7 @@ EXTRA_DIST += \ @@ -294,17 +289,7 @@ EXTRA_DIST += \
test-o-local-qcow2-compressed.sh \ test-o-local-qcow2-compressed.sh \
test-o-null.sh \ test-o-null.sh \
test-o-openstack.sh \ test-o-openstack.sh \

View File

@ -1,4 +1,4 @@
From 192e435f741ae9d392553575a674f4cd6118ffe8 Mon Sep 17 00:00:00 2001 From 73632b2c2ab525059c788162d801a59f05161355 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 9 Jul 2024 11:30:09 +0100 Date: Tue, 9 Jul 2024 11:30:09 +0100
Subject: [PATCH] RHEL: Add warning about virt-v2v-in-place not being supported Subject: [PATCH] RHEL: Add warning about virt-v2v-in-place not being supported

View File

@ -7,7 +7,7 @@
Name: virt-v2v Name: virt-v2v
Epoch: 1 Epoch: 1
Version: 2.8.1 Version: 2.8.1
Release: 1%{?dist} Release: 2%{?dist}
Summary: Convert a virtual machine to run on KVM Summary: Convert a virtual machine to run on KVM
License: GPL-2.0-or-later AND LGPL-2.0-or-later License: GPL-2.0-or-later AND LGPL-2.0-or-later
@ -27,18 +27,24 @@ Source3: copy-patches.sh
# https://github.com/libguestfs/virt-v2v/commits/rhel-10.1 # https://github.com/libguestfs/virt-v2v/commits/rhel-10.1
# Patches. # Patches.
Patch0001: 0001-RHEL-Fixes-for-libguestfs-winsupport.patch Patch0001: 0001-vddk-Remove-io-vddk-noextents-option.patch
Patch0002: 0002-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch Patch0002: 0002-curl-ssh-vddk-file-Add-nbdkit-count-filter.patch
Patch0003: 0003-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch Patch0003: 0003-docs-Move-oo-verify-server-certificate-docs-to-alpha.patch
Patch0004: 0004-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch Patch0004: 0004-o-kubevirt-Add-oo-disk-to-allow-disk-names-to-be-ove.patch
Patch0005: 0005-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch Patch0005: 0005-output-Add-optional-create-parameter.patch
Patch0006: 0006-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch Patch0006: 0006-o-kubevirt-Add-oo-create-false-to-avoid-disk-creatio.patch
Patch0007: 0007-RHEL-Remove-input-from-Xen.patch Patch0007: 0007-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0008: 0008-RHEL-Remove-o-glance.patch Patch0008: 0008-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0009: 0009-RHEL-tests-Remove-btrfs-test.patch Patch0009: 0009-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0010: 0010-RHEL-Remove-block-driver-option.patch Patch0010: 0010-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0011: 0011-RHEL-Remove-o-ovirt-o-ovirt-upload-and-o-vdsm-modes.patch Patch0011: 0011-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0012: 0012-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch Patch0012: 0012-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0013: 0013-RHEL-Remove-input-from-Xen.patch
Patch0014: 0014-RHEL-Remove-o-glance.patch
Patch0015: 0015-RHEL-tests-Remove-btrfs-test.patch
Patch0016: 0016-RHEL-Remove-block-driver-option.patch
Patch0017: 0017-RHEL-Remove-o-ovirt-o-ovirt-upload-and-o-vdsm-modes.patch
Patch0018: 0018-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch
%if !0%{?rhel} %if !0%{?rhel}
# libguestfs hasn't been built on i686 for a while since there is no # libguestfs hasn't been built on i686 for a while since there is no
@ -329,7 +335,7 @@ done
%changelog %changelog
* Thu Jun 19 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.8.1-1 * Wed Jul 09 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.8.1-2
- Rebase to virt-v2v 2.8.1 - Rebase to virt-v2v 2.8.1
related: RHEL-81735 related: RHEL-81735
- Fix virt-v2v -v --install dnf5 error - Fix virt-v2v -v --install dnf5 error
@ -344,8 +350,6 @@ done
resolves: RHEL-88860 resolves: RHEL-88860
- Print better mountpoint stats in debug output - Print better mountpoint stats in debug output
resolves: RHEL-88862 resolves: RHEL-88862
- Add virt-v2v -io vddk-noextents=true so we can test noextents
resolves: RHEL-88864
- Remove several ancient, deprecated options - Remove several ancient, deprecated options
resolves: RHEL-88867 resolves: RHEL-88867
- virt-v2v-inspector is failing on snapshots of running VMs - virt-v2v-inspector is failing on snapshots of running VMs
@ -362,6 +366,10 @@ done
resolves: RHEL-99745 resolves: RHEL-99745
- Fix xfs_repair out of memory error - Fix xfs_repair out of memory error
resolves: RHEL-99313 resolves: RHEL-99313
- Remove virt-v2v -io vddk-noextents=true option
resolves: RHEL-102619
- Add -o kubevirt -oo disk and -oo create options
resolves: RHEL-101599
* Tue Feb 11 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.7.1-4 * Tue Feb 11 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.7.1-4
- Rebase to virt-v2v 2.7.1 - Rebase to virt-v2v 2.7.1