New upstream development version 1.45.90 (preview of 2.0)

This commit is contained in:
Richard W.M. Jones 2021-09-21 14:53:40 +01:00
parent c8d08693ef
commit 4e3368f10c
15 changed files with 197 additions and 673 deletions

View File

@ -0,0 +1,33 @@
From f417ca536219b151284a5a0e28698bfa19a5c160 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 1/8] RHEL: v2v: Select correct qemu binary for -o qemu mode
(RHBZ#1147313).
RHEL does not have qemu-system-x86_64 (etc), and in addition the
qemu binary is located in /usr/libexec. Encode the path to this
binary directly in the script.
Note that we don't support people running qemu directly like this.
It's just for quick testing of converted VMs, and to help us with
support cases.
---
output/output.ml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/output/output.ml b/output/output.ml
index 9c2d8853..92b03525 100644
--- a/output/output.ml
+++ b/output/output.ml
@@ -1413,7 +1413,7 @@ and qemu_finalize dir source inspect target_meta
* module deals with shell and qemu comma quoting.
*)
let cmd = Qemuopts.create () in
- Qemuopts.set_binary_by_arch cmd (Some guestcaps.gcaps_arch);
+ Qemuopts.set_binary cmd "/usr/libexec/qemu-kvm";
let flag = Qemuopts.flag cmd
and arg = Qemuopts.arg cmd
--
2.31.1

View File

@ -1,123 +0,0 @@
From 4d5509a98823cc0b8930678716b862adbd2c0b81 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 6 Aug 2021 13:01:28 +0100
Subject: [PATCH 01/11] Revert "v2v: Remove -o rhv-upload -oa preallocated"
This reverts commit 18084f90d9dd9092831cb3487039328981796291.
---
v2v/cmdline.ml | 2 +-
v2v/output_rhv_upload.ml | 22 ++++++++++++++++++++--
v2v/output_rhv_upload.mli | 7 ++++---
v2v/rhv-upload-transfer.py | 1 +
4 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/v2v/cmdline.ml b/v2v/cmdline.ml
index 79d943df..5e7c01f8 100644
--- a/v2v/cmdline.ml
+++ b/v2v/cmdline.ml
@@ -699,7 +699,7 @@ read the man page virt-v2v(1).
| Some os -> os in
if qemu_boot then
error_option_cannot_be_used_in_output_mode "rhv-upload" "--qemu-boot";
- Output_rhv_upload.output_rhv_upload output_conn
+ Output_rhv_upload.output_rhv_upload output_alloc output_conn
output_password os
rhv_options,
output_format, output_alloc
diff --git a/v2v/output_rhv_upload.ml b/v2v/output_rhv_upload.ml
index 6a632eaa..50baa595 100644
--- a/v2v/output_rhv_upload.ml
+++ b/v2v/output_rhv_upload.ml
@@ -146,11 +146,22 @@ let error_unless_nbdkit_compiled_with_selinux config =
error (f_"nbdkit was compiled without SELinux support. You will have to recompile nbdkit with libselinux-devel installed, or else set SELinux to Permissive mode while doing the conversion.")
)
+(* Output sparse must be sparse. We may be able to
+ * lift this limitation in future, but it requires changes on the
+ * RHV side. See TODO file for details. XXX
+ *)
+let error_current_limitation required_param =
+ error (f_"rhv-upload: currently you must use %s. This restriction will be loosened in a future version.") required_param
+
+let error_unless_output_alloc_sparse output_alloc =
+ if output_alloc <> Sparse then
+ error_current_limitation "-oa sparse"
+
let json_optstring = function
| Some s -> JSON.String s
| None -> JSON.Null
-class output_rhv_upload output_conn
+class output_rhv_upload output_alloc output_conn
output_password output_storage
rhv_options =
(* Create a temporary directory which will be deleted on exit. *)
@@ -189,6 +200,9 @@ class output_rhv_upload output_conn
"output_conn", JSON.String output_conn;
"output_password", JSON.String output_password;
"output_storage", JSON.String output_storage;
+ "output_sparse", JSON.Bool (match output_alloc with
+ | Sparse -> true
+ | Preallocated -> false);
"rhv_cafile", json_optstring rhv_options.rhv_cafile;
"rhv_cluster",
JSON.String (Option.default "Default" rhv_options.rhv_cluster);
@@ -257,6 +271,7 @@ object
error_unless_nbdkit_min_version config;
error_unless_nbdkit_python_plugin_working plugin_script;
error_unless_nbdkit_compiled_with_selinux config;
+ error_unless_output_alloc_sparse output_alloc;
(* Python code prechecks. *)
let json_params = match rhv_options.rhv_disk_uuids with
@@ -282,6 +297,9 @@ object
method as_options =
"-o rhv-upload" ^
+ (match output_alloc with
+ | Sparse -> "" (* default, don't need to print it *)
+ | Preallocated -> " -oa preallocated") ^
sprintf " -oc %s -op %s -os %s"
output_conn output_password output_storage
@@ -449,7 +467,7 @@ object
(* Create the metadata. *)
let ovf =
Create_ovf.create_ovf source inspect target_meta targets
- Sparse sd_uuid disk_uuids vol_uuids vm_uuid
+ output_alloc sd_uuid disk_uuids vol_uuids vm_uuid
OVirt in
let ovf = DOM.doc_to_string ovf in
diff --git a/v2v/output_rhv_upload.mli b/v2v/output_rhv_upload.mli
index 01507dff..eb85a57d 100644
--- a/v2v/output_rhv_upload.mli
+++ b/v2v/output_rhv_upload.mli
@@ -25,8 +25,9 @@ val print_output_options : unit -> unit
val parse_output_options : (string * string) list -> rhv_options
(** Print and parse rhv-upload -oo options. *)
-val output_rhv_upload : string -> string -> string -> rhv_options ->
- Types.output
-(** [output_rhv_upload output_conn output_password output_storage rhv_options]
+val output_rhv_upload : Types.output_allocation -> string -> string ->
+ string -> rhv_options -> Types.output
+(** [output_rhv_upload output_alloc output_conn output_password output_storage
+ rhv_options]
creates and returns a new {!Types.output} object specialized for writing
output to oVirt or RHV directly via RHV APIs. *)
diff --git a/v2v/rhv-upload-transfer.py b/v2v/rhv-upload-transfer.py
index cf4f8807..5aebcd1d 100644
--- a/v2v/rhv-upload-transfer.py
+++ b/v2v/rhv-upload-transfer.py
@@ -111,6 +111,7 @@ def create_disk(connection):
# size, based on qemu-img measure of the overlay.
initial_size=params['disk_size'],
provisioned_size=params['disk_size'],
+ # XXX Ignores params['output_sparse'].
# Handling this properly will be complex, see:
# https://www.redhat.com/archives/libguestfs/2018-March/msg00177.html
sparse=True,
--
2.31.1

View File

@ -1,7 +1,7 @@
From bb55b78b68e6e8039734eb1d7af22b455f8fbdc2 Mon Sep 17 00:00:00 2001
From 00490feb06496ad4bf22dbc5493a7cf186476e9f 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 04/11] RHEL: v2v: Disable the --qemu-boot option
Subject: [PATCH 2/8] RHEL: v2v: Disable the --qemu-boot / -oo qemu-boot option
(RHBZ#1147313).
This cannot work because there is no Gtk or SDL output mode
@ -11,9 +11,10 @@ In addition you will have to edit the -display option in the
qemu script.
---
docs/virt-v2v-output-local.pod | 6 ++----
docs/virt-v2v.pod | 13 -------------
v2v/cmdline.ml | 3 ++-
3 files changed, 4 insertions(+), 18 deletions(-)
docs/virt-v2v.pod | 12 ------------
output/output.ml | 3 +++
v2v/v2v.ml | 2 --
4 files changed, 5 insertions(+), 18 deletions(-)
diff --git a/docs/virt-v2v-output-local.pod b/docs/virt-v2v-output-local.pod
index a5f155cb..3a2e6238 100644
@ -43,7 +44,7 @@ index a5f155cb..3a2e6238 100644
=item B<-o json -os> C<DIRECTORY>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index bdf4d716..83f6fd4d 100644
index b25d678d..0a47b611 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -141,11 +141,6 @@ Since F<guest-domain.xml> contains the path(s) to the guest disk
@ -53,54 +54,59 @@ index bdf4d716..83f6fd4d 100644
-To convert a local disk image and immediately boot it in local
-qemu, do:
-
- virt-v2v -i disk disk.img -o qemu -os /var/tmp --qemu-boot
- virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot
-
=head1 OPTIONS
=over 4
@@ -528,9 +523,6 @@ This is similar to I<-o local>, except that a shell script is written
@@ -511,9 +506,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
shell script are written to the directory specified by I<-os>.
-When using this output mode, you can also specify the I<--qemu-boot>
-When using this output mode, you can also specify the I<-oo qemu-boot>
-option which boots the guest under qemu immediately.
-
=item B<-o> B<rhev>
This is the same as I<-o rhv>.
@@ -775,11 +767,6 @@ Print information about the source guest and stop. This option is
@@ -769,10 +761,6 @@ Print information about the source guest and stop. This option is
useful when you are setting up network and bridge maps.
See L</Networks and bridges>.
-=item B<--qemu-boot>
-
-When using I<-o qemu> only, this boots the guest immediately after
-virt-v2v finishes.
-This is the same as I<-oo qemu-boot>.
-
=item B<-q>
=item B<--quiet>
diff --git a/v2v/cmdline.ml b/v2v/cmdline.ml
index 5e7c01f8..ac10ec31 100644
--- a/v2v/cmdline.ml
+++ b/v2v/cmdline.ml
@@ -276,7 +276,6 @@ let parse_cmdline () =
s_"Same as -ip filename";
[ L"print-source" ], Getopt.Set print_source,
s_"Print source and stop";
- [ L"qemu-boot" ], Getopt.Set qemu_boot, s_"Boot in qemu (-o qemu only)";
[ L"root" ], Getopt.String ("ask|... ", set_root_choice),
s_"How to choose root filesystem";
[ L"vddk-config" ], Getopt.String ("filename", set_input_option_compat "vddk-config"),
@@ -652,6 +651,8 @@ read the man page virt-v2v(1).
| Some d when not (is_directory d) ->
error (f_"-os %s: output directory does not exist or is not a directory") d
| Some d -> d in
+ if qemu_boot then
+ error (f_"-o qemu: the --qemu-boot option cannot be used in RHEL");
Output_qemu.output_qemu os qemu_boot,
output_format, output_alloc
diff --git a/output/output.ml b/output/output.ml
index 92b03525..1414a521 100644
--- a/output/output.ml
+++ b/output/output.ml
@@ -1346,6 +1346,9 @@ and qemu_parse_options cmdline =
) cmdline.output_options;
let qemu_boot = !qemu_boot in
+ if qemu_boot then
+ error (f_"-o qemu: the -oo qemu-boot option cannot be used in RHEL");
+
(* -os must be set to a directory. *)
let output_storage =
match cmdline.output_storage with
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index a88e0509..1104295c 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -218,8 +218,6 @@ let rec main () =
s_"Same as -ip filename";
[ L"print-source" ], Getopt.Set print_source,
s_"Print source and stop";
- [ L"qemu-boot" ], Getopt.Unit (fun () -> add_o_option "-oo" "qemu-boot"),
- s_"Boot in qemu (-o qemu only)";
[ L"root" ], Getopt.String ("ask|... ", add_conv_option "--root"),
s_"How to choose root filesystem";
[ L"vddk-config" ], Getopt.String ("filename", set_input_option_compat "vddk-config"),
--
2.31.1

View File

@ -1,90 +0,0 @@
From abe3c7539b6221e8ab3cc35ee3d58b1aa06bbef4 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 14 May 2018 10:16:58 +0100
Subject: [PATCH 02/11] RHEL: v2v: rhv-upload: Remove restriction on -oa
sparse.
See: https://bugzilla.redhat.com/show_bug.cgi?id=1565681
and the v2v-devel private thread "Do we already support migration using FC?"
---
docs/virt-v2v-output-rhv.pod | 8 +-------
v2v/output_rhv_upload.ml | 10 +---------
v2v/rhv-upload-transfer.py | 4 +---
3 files changed, 3 insertions(+), 19 deletions(-)
diff --git a/docs/virt-v2v-output-rhv.pod b/docs/virt-v2v-output-rhv.pod
index dc6b2c0a..7b8fdc0f 100644
--- a/docs/virt-v2v-output-rhv.pod
+++ b/docs/virt-v2v-output-rhv.pod
@@ -5,7 +5,7 @@ virt-v2v-output-rhv - Using virt-v2v to convert guests to oVirt or RHV
=head1 SYNOPSIS
virt-v2v [-i* options] -o rhv-upload [-oc ENGINE_URL] -os STORAGE
- [-op PASSWORD] [-of raw]
+ [-op PASSWORD]
[-oo rhv-cafile=FILE]
[-oo rhv-cluster=CLUSTER]
[-oo rhv-direct]
@@ -79,12 +79,6 @@ username is not specified then virt-v2v defaults to using
C<admin@internal> which is the typical superuser account for oVirt
instances.
-=item I<-of raw>
-
-Currently you must use I<-of raw> and you cannot use I<-oa preallocated>.
-
-These restrictions will be loosened in a future version.
-
=item I<-op> F<password-file>
A file containing a password to be used when connecting to the oVirt
diff --git a/v2v/output_rhv_upload.ml b/v2v/output_rhv_upload.ml
index 50baa595..be5e9851 100644
--- a/v2v/output_rhv_upload.ml
+++ b/v2v/output_rhv_upload.ml
@@ -146,17 +146,10 @@ let error_unless_nbdkit_compiled_with_selinux config =
error (f_"nbdkit was compiled without SELinux support. You will have to recompile nbdkit with libselinux-devel installed, or else set SELinux to Permissive mode while doing the conversion.")
)
-(* Output sparse must be sparse. We may be able to
- * lift this limitation in future, but it requires changes on the
- * RHV side. See TODO file for details. XXX
- *)
+(* Output format must be raw. *)
let error_current_limitation required_param =
error (f_"rhv-upload: currently you must use %s. This restriction will be loosened in a future version.") required_param
-let error_unless_output_alloc_sparse output_alloc =
- if output_alloc <> Sparse then
- error_current_limitation "-oa sparse"
-
let json_optstring = function
| Some s -> JSON.String s
| None -> JSON.Null
@@ -271,7 +264,6 @@ object
error_unless_nbdkit_min_version config;
error_unless_nbdkit_python_plugin_working plugin_script;
error_unless_nbdkit_compiled_with_selinux config;
- error_unless_output_alloc_sparse output_alloc;
(* Python code prechecks. *)
let json_params = match rhv_options.rhv_disk_uuids with
diff --git a/v2v/rhv-upload-transfer.py b/v2v/rhv-upload-transfer.py
index 5aebcd1d..f38cd9c0 100644
--- a/v2v/rhv-upload-transfer.py
+++ b/v2v/rhv-upload-transfer.py
@@ -111,10 +111,8 @@ def create_disk(connection):
# size, based on qemu-img measure of the overlay.
initial_size=params['disk_size'],
provisioned_size=params['disk_size'],
- # XXX Ignores params['output_sparse'].
- # Handling this properly will be complex, see:
# https://www.redhat.com/archives/libguestfs/2018-March/msg00177.html
- sparse=True,
+ sparse=params['output_sparse'],
storage_domains=[
types.StorageDomain(
name=params['output_storage'],
--
2.31.1

View File

@ -1,17 +1,17 @@
From 49385571ce5967f8d9a102e935f201ee9c22326d Mon Sep 17 00:00:00 2001
From 539e158e5dffdb0324a89b2a059b44ae51d2cc29 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 05/11] RHEL: Fix list of supported sound cards to match RHEL
Subject: [PATCH 3/8] RHEL: Fix list of supported sound cards to match RHEL
qemu (RHBZ#1176493).
---
v2v/utils.ml | 5 +++--
lib/utils.ml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/v2v/utils.ml b/v2v/utils.ml
index 7136e4be..a6c359f0 100644
--- a/v2v/utils.ml
+++ b/v2v/utils.ml
diff --git a/lib/utils.ml b/lib/utils.ml
index 1eac3f3f..a478fc33 100644
--- a/lib/utils.ml
+++ b/lib/utils.ml
@@ -59,13 +59,14 @@ let kvm_arch = function
(* Does qemu support the given sound card? *)
let qemu_supports_sound_card = function

View File

@ -1,33 +0,0 @@
From 0839ba57487b73cfb684ea495280db5d946f667a 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 03/11] RHEL: v2v: Select correct qemu binary for -o qemu mode
(RHBZ#1147313).
RHEL does not have qemu-system-x86_64 (etc), and in addition the
qemu binary is located in /usr/libexec. Encode the path to this
binary directly in the script.
Note that we don't support people running qemu directly like this.
It's just for quick testing of converted VMs, and to help us with
support cases.
---
v2v/output_qemu.ml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/v2v/output_qemu.ml b/v2v/output_qemu.ml
index 12c56836..7391eda0 100644
--- a/v2v/output_qemu.ml
+++ b/v2v/output_qemu.ml
@@ -79,7 +79,7 @@ object
* module deals with shell and qemu comma quoting.
*)
let cmd = Qemuopts.create () in
- Qemuopts.set_binary_by_arch cmd (Some guestcaps.gcaps_arch);
+ Qemuopts.set_binary cmd "/usr/libexec/qemu-kvm";
let flag = Qemuopts.flag cmd
and arg = Qemuopts.arg cmd
--
2.31.1

View File

@ -1,15 +1,42 @@
From db2150a5d790c35fb23c6d9d6b29e602482ce555 Mon Sep 17 00:00:00 2001
From b4bab3eda2afabadcbf2e07501eab2049d1a3133 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 06/11] RHEL: Fix tests for libguestfs-winsupport.
Subject: [PATCH 4/8] RHEL: Fixes for libguestfs-winsupport.
It doesn't let us use guestfish for arbitrary Windows edits.
In tests we cannot use guestfish for arbitrary Windows edits.
In virt-v2v helpers we must set the program name to virt-v2v.
---
convert/convert.ml | 1 +
convert/windows_virtio.ml | 1 +
test-data/phony-guests/make-windows-img.sh | 1 +
tests/test-v2v-virtio-win-iso.sh | 8 +++++++-
tests/test-v2v-windows-conversion.sh | 8 +++++++-
3 files changed, 15 insertions(+), 2 deletions(-)
5 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/convert/convert.ml b/convert/convert.ml
index 07c7aee9..a4b0c60e 100644
--- a/convert/convert.ml
+++ b/convert/convert.ml
@@ -190,6 +190,7 @@ helper-v2v-convert V2VDIR
message (f_"Opening the source");
let g = open_guestfs ~identifier:"v2v" () in
+ g#set_program "virt-v2v";
g#set_memsize (g#get_memsize () * 2);
(* Setting the number of vCPUs allows parallel mkinitrd, but make
* sure this is not too large because each vCPU consumes guest RAM.
diff --git a/convert/windows_virtio.ml b/convert/windows_virtio.ml
index f843dae2..6623d03d 100644
--- a/convert/windows_virtio.ml
+++ b/convert/windows_virtio.ml
@@ -356,6 +356,7 @@ and copy_from_virtio_win g inspect srcdir destdir filter missing =
let g2 =
try
let g2 = open_guestfs ~identifier:"virtio_win" () in
+ g#set_program "virt-v2v";
g2#add_drive_opts virtio_win ~readonly:true;
g2#launch ();
g2
diff --git a/test-data/phony-guests/make-windows-img.sh b/test-data/phony-guests/make-windows-img.sh
index 30908a91..73cf5144 100755
--- a/test-data/phony-guests/make-windows-img.sh

View File

@ -0,0 +1,26 @@
From 4022a90a8974147000fb5053d7596066db1b82b9 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 5/8] RHEL: v2v: -i disk: force VNC as display (RHBZ#1372671)
The SDL output mode is not supported in RHEL's qemu-kvm.
---
input/input.ml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/input/input.ml b/input/input.ml
index a8416eaf..9175a531 100644
--- a/input/input.ml
+++ b/input/input.ml
@@ -270,7 +270,7 @@ and disk_source cmdline args =
s_features = [ "acpi"; "apic"; "pae" ];
s_firmware = UnknownFirmware; (* causes virt-v2v to autodetect *)
s_display =
- Some { s_display_type = Window; s_keymap = None; s_password = None;
+ Some { s_display_type = VNC; s_keymap = None; s_password = None;
s_listen = LNoListen; s_port = None };
s_video = None;
s_sound = None;
--
2.31.1

View File

@ -1,7 +1,7 @@
From aa5cf3ba5d10400ee6d6c63dd77c711b6fdec116 Mon Sep 17 00:00:00 2001
From 7f77cb4a56eb8dcd26db9e81e0fb2f41777129c3 Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Wed, 8 Mar 2017 11:03:40 +0100
Subject: [PATCH 09/11] RHEL: v2v: do not mention SUSE Xen hosts (RHBZ#1430203)
Subject: [PATCH 6/8] RHEL: v2v: do not mention SUSE Xen hosts (RHBZ#1430203)
They are not supported in RHEL.
---

View File

@ -1,7 +1,7 @@
From ccaae02ef3f081b544eca82f3652ca50ac5566a9 Mon Sep 17 00:00:00 2001
From a4db166d7a5c480c765ee74340463db800533c73 Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Tue, 26 Mar 2019 09:42:25 +0100
Subject: [PATCH 10/11] RHEL: point to KB for supported v2v hypervisors/guests
Subject: [PATCH 7/8] RHEL: point to KB for supported v2v hypervisors/guests
---
docs/virt-v2v-support.pod | 104 ++------------------------------------

View File

@ -1,288 +0,0 @@
From 3b69cfa365c7b014ca81b09e857ab294cff04914 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 14 Jan 2016 11:53:42 -0500
Subject: [PATCH 07/11] RHEL: v2v: Disable the virt-v2v --in-place option.
This disables the virt-v2v --in-place option which we do not
wish to support in RHEL.
(See commit d0069559a939e47e5f29973ed9a69a13f0b58301).
---
docs/test-v2v-docs.sh | 1 +
docs/virt-v2v.pod | 50 +----------------
tests/Makefile.am | 2 -
tests/test-v2v-in-place.sh | 108 -------------------------------------
v2v/cmdline.ml | 8 +--
5 files changed, 8 insertions(+), 161 deletions(-)
delete mode 100755 tests/test-v2v-in-place.sh
diff --git a/docs/test-v2v-docs.sh b/docs/test-v2v-docs.sh
index 465df26f..ae1a6c68 100755
--- a/docs/test-v2v-docs.sh
+++ b/docs/test-v2v-docs.sh
@@ -30,6 +30,7 @@ $srcdir/../podcheck.pl virt-v2v.pod virt-v2v \
--debug-overlay,\
--ic,\
--if,\
+--in-place,\
--io,\
--ip,\
--it,\
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 83f6fd4d..719a95b5 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -8,10 +8,6 @@ virt-v2v - Convert a guest to use KVM
[-o mode] [other -o* options]
[guest|filename]
- virt-v2v --in-place
- [-i mode] [other -i* options]
- [guest|filename]
-
=head1 DESCRIPTION
Virt-v2v converts a single guest from a foreign hypervisor to run on
@@ -39,9 +35,6 @@ these sides of virt-v2v are documented separately in this manual.
Virt-v2v normally copies from the input to the output, called "copying
mode". In this case the source guest is always left unchanged.
-In-place conversion (I<--in-place>) only uses the I<-i*> options and
-modifies the source guest in-place. (See L</In-place conversion>
-below.)
=head2 Other virt-v2v topics
@@ -292,20 +285,6 @@ For I<-i disk> only, this specifies the format of the input disk
image. For other input methods you should specify the input
format in the metadata.
-=item B<--in-place>
-
-Do not create an output virtual machine in the target hypervisor.
-Instead, adjust the guest OS in the source VM to run in the input
-hypervisor.
-
-This mode is meant for integration with other toolsets, which take the
-responsibility of converting the VM configuration, providing for
-rollback in case of errors, transforming the storage, etc.
-
-See L</In-place conversion> below.
-
-Conflicts with all I<-o *> options.
-
=item B<-io> OPTION=VALUE
Set input option(s) related to the current input mode or transport.
@@ -1298,8 +1277,8 @@ have at least 100 available inodes.
=head3 Minimum free space check in the host
You must have sufficient free space in the host directory used to
-store large temporary overlays (except in I<--in-place> mode). To
-find out which directory this is, use:
+store large temporary overlays. To find out
+which directory this is, use:
$ df -h "`guestfish get-cachedir`"
Filesystem Size Used Avail Use% Mounted on
@@ -1437,31 +1416,6 @@ that instead.
</devices>
</domain>
-=head2 In-place conversion
-
-It is also possible to use virt-v2v in scenarios where a foreign VM
-has already been imported into a KVM-based hypervisor, but still needs
-adjustments in the guest to make it run in the new virtual hardware.
-
-In that case it is assumed that a third-party tool has created the
-target VM in the supported KVM-based hypervisor based on the source VM
-configuration and contents, but using virtual devices more appropriate
-for KVM (e.g. virtio storage and network, etc.).
-
-Then, to make the guest OS boot and run in the changed environment,
-one can use:
-
- virt-v2v -ic qemu:///system converted_vm --in-place
-
-Virt-v2v will analyze the configuration of C<converted_vm> in the
-C<qemu:///system> libvirt instance, and apply various fixups to the
-guest OS configuration to make it match the VM configuration. This
-may include installing virtio drivers, configuring the bootloader, the
-mountpoints, the network interfaces, and so on.
-
-Should an error occur during the operation, virt-v2v exits with an
-error code leaving the VM in an undefined state.
-
=head2 Machine readable output
The I<--machine-readable> option can be used to make the output more
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 41d38d30..9bbd86d6 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -77,7 +77,6 @@ TESTS = \
test-v2v-floppy.sh \
test-v2v-i-disk.sh \
test-v2v-i-ova.sh \
- test-v2v-in-place.sh \
test-v2v-mac.sh \
test-v2v-machine-readable.sh \
test-v2v-networks-and-bridges.sh \
@@ -226,7 +225,6 @@ EXTRA_DIST += \
test-v2v-i-vmx-3.vmx \
test-v2v-i-vmx-4.vmx \
test-v2v-i-vmx-5.vmx \
- test-v2v-in-place.sh \
test-v2v-it-vddk-io-query.sh \
test-v2v-machine-readable.sh \
test-v2v-mac-expected.xml \
diff --git a/tests/test-v2v-in-place.sh b/tests/test-v2v-in-place.sh
deleted file mode 100755
index 9da8fa63..00000000
--- a/tests/test-v2v-in-place.sh
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/bin/bash -
-# libguestfs virt-v2v test script
-# Copyright (C) 2014 Red Hat Inc.
-# Copyright (C) 2015 Parallels IP Holdings GmbH.
-#
-# 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 --in-place.
-
-unset CDPATH
-export LANG=C
-set -e
-
-source ./functions.sh
-set -e
-set -x
-
-skip_if_skipped
-requires test -f ../test-data/phony-guests/windows.img
-
-img_base="$abs_top_builddir/test-data/phony-guests/windows.img"
-
-export VIRT_TOOLS_DATA_DIR="$srcdir/../test-data/fake-virt-tools"
-export VIRTIO_WIN="$srcdir/../test-data/fake-virtio-win"
-
-d=$PWD/test-v2v-in-place.d
-rm -rf $d
-cleanup_fn rm -r $d
-mkdir $d
-
-img="$d/test.qcow2"
-rm -f $img
-qemu-img create -f qcow2 -b $img_base -o compat=1.1,backing_fmt=raw $img
-md5="$(do_md5 $img_base)"
-
-libvirt_xml="$d/test.xml"
-rm -f $libvirt_xml
-n=windows-overlay
-cat > $libvirt_xml <<EOF
-<node>
- <domain type='test'>
- <name>$n</name>
- <memory>1048576</memory>
- <os>
- <type>hvm</type>
- <boot dev='hd'/>
- </os>
- <devices>
- <disk type='file' device='disk'>
- <driver name='qemu' type='qcow2'/>
- <source file='$img'/>
- <target dev='vda' bus='virtio'/>
- </disk>
- </devices>
- </domain>
-</node>
-EOF
-
-$VG virt-v2v --debug-gc -i libvirt -ic "test://$libvirt_xml" $n --in-place
-
-# Test that the drivers have been copied over into the guest
-script="$d/test.fish"
-expected="$d/expected"
-response="$d/response"
-
-mktest ()
-{
- local cmd="$1" exp="$2"
-
- echo "echo '$cmd'" >> "$script"
- echo "$cmd" >> "$expected"
-
- echo "$cmd" >> "$script"
- echo "$exp" >> "$expected"
-}
-
-:> "$script"
-:> "$expected"
-
-firstboot_dir="/Program Files/Guestfs/Firstboot"
-mktest "is-dir \"$firstboot_dir\"" true
-mktest "is-file \"$firstboot_dir/firstboot.bat\"" true
-mktest "is-dir \"$firstboot_dir/scripts\"" true
-virtio_dir="/Windows/Drivers/VirtIO"
-mktest "is-dir \"$virtio_dir\"" true
-for drv in netkvm qxl vioscsi viostor; do
- for sfx in cat inf sys; do
- mktest "is-file \"$virtio_dir/$drv.$sfx\"" true
- done
-done
-
-guestfish --ro -a "$img" -i < "$script" > "$response"
-diff -u "$expected" "$response"
-
-# Test the base image remained untouched
-test "$md5" = "$(do_md5 $img_base)"
diff --git a/v2v/cmdline.ml b/v2v/cmdline.ml
index ac10ec31..01314580 100644
--- a/v2v/cmdline.ml
+++ b/v2v/cmdline.ml
@@ -246,8 +246,7 @@ let parse_cmdline () =
s_"Use password from file to connect to input hypervisor";
[ M"it" ], Getopt.String ("transport", set_string_option_once "-it" input_transport),
s_"Input transport";
- [ L"in-place" ], Getopt.Set in_place,
- s_"Only tune the guest in the input VM";
+ [ L"in-place" ], Getopt.Set in_place, Getopt.hidden_option_description;
[ L"mac" ], Getopt.String ("mac:network|bridge|ip:out", add_mac),
s_"Map NIC to network or bridge or assign static IP";
[ S 'n'; L"network" ], Getopt.String ("in:out", add_network),
@@ -386,7 +385,6 @@ read the man page virt-v2v(1).
pr "vddk\n";
pr "colours-option\n";
pr "vdsm-compat-option\n";
- pr "in-place\n";
pr "io/oo\n";
pr "mac-option\n";
pr "bandwidth-option\n";
@@ -556,6 +554,10 @@ read the man page virt-v2v(1).
error (f_"only -it ssh can be used here") in
Input_vmx.input_vmx input_password input_transport arg in
+ (* Prevent use of --in-place option in RHEL. *)
+ if in_place then
+ error (f_"--in-place cannot be used in RHEL");
+
(* Common error message. *)
let error_option_cannot_be_used_in_output_mode mode opt =
error (f_"-o %s: %s option cannot be used in this output mode") mode opt
--
2.31.1

View File

@ -1,16 +1,15 @@
From 7edb403ee54153c64205915c0bd1d177c0094ee0 Mon Sep 17 00:00:00 2001
From f801f4a34f9b136e2cb5af3b936948f1ecb88154 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 11/11] RHEL 9: Disable -o glance
Subject: [PATCH 8/8] RHEL 9: Disable -o glance
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1977539
---
docs/virt-v2v-output-openstack.pod | 56 ++----------------------------
docs/virt-v2v.pod | 22 ------------
docs/virt-v2v.pod | 20 -----------
output/output.ml | 3 +-
tests/test-v2v-o-glance.sh | 3 ++
v2v/cmdline.ml | 3 --
v2v/output_glance.ml | 2 +-
5 files changed, 6 insertions(+), 80 deletions(-)
4 files changed, 7 insertions(+), 75 deletions(-)
diff --git a/docs/virt-v2v-output-openstack.pod b/docs/virt-v2v-output-openstack.pod
index f5a3abad..1ab356e8 100644
@ -100,16 +99,10 @@ index f5a3abad..1ab356e8 100644
=head1 AUTHOR
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 719a95b5..2f4fe86c 100644
index 0a47b611..c70bfef5 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -422,20 +422,10 @@ interested in looking at the metadata.
This option is not compatible with I<-o libvirt> since it would create
a faulty guest (one with no disks).
-This option is not compatible with I<-o glance> for technical reasons.
-
=item B<-o> B<disk>
@@ -432,14 +432,6 @@ See L</Networks and bridges> below.
This is the same as I<-o local>.
@ -124,7 +117,7 @@ index 719a95b5..2f4fe86c 100644
=item B<-o> B<json>
Set the output method to I<json>.
@@ -1148,11 +1138,6 @@ and output methods may use disk space, as outlined in the table below.
@@ -1163,11 +1155,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
in C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).
@ -136,7 +129,7 @@ index 719a95b5..2f4fe86c 100644
=item I<-o local>
=item I<-o qemu>
@@ -1337,13 +1322,6 @@ instance.
@@ -1352,13 +1339,6 @@ instance.
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.
@ -150,6 +143,20 @@ index 719a95b5..2f4fe86c 100644
=item Writing to block devices
This normally requires root. See the next section.
diff --git a/output/output.ml b/output/output.ml
index 1414a521..69768ff1 100644
--- a/output/output.ml
+++ b/output/output.ml
@@ -75,7 +75,8 @@ let rec main () =
error (f_"%s option used more than once on the command line") "-om";
match mode with
| "disk" -> output_mode := Some `Disk
- | "glance" -> output_mode := Some `Glance
+ | "glance" ->
+ error(f_"-o glance option has been removed from RHEL 9")
| "json" -> output_mode := Some `Json
| "libvirt" -> output_mode := Some `Libvirt
| "null" -> output_mode := Some `Null
diff --git a/tests/test-v2v-o-glance.sh b/tests/test-v2v-o-glance.sh
index c0db9115..074b5e16 100755
--- a/tests/test-v2v-o-glance.sh
@ -164,37 +171,6 @@ index c0db9115..074b5e16 100755
source ./functions.sh
set -e
set -x
diff --git a/v2v/cmdline.ml b/v2v/cmdline.ml
index 01314580..e6c86b6f 100644
--- a/v2v/cmdline.ml
+++ b/v2v/cmdline.ml
@@ -170,7 +170,6 @@ let parse_cmdline () =
if !output_mode <> `Not_set then
error (f_"%s option used more than once on the command line") "-o";
match mode with
- | "glance" -> output_mode := `Glance
| "libvirt" -> output_mode := `Libvirt
| "disk" | "local" -> output_mode := `Local
| "json" -> output_mode := `JSON
@@ -323,8 +322,6 @@ let parse_cmdline () =
virt-v2v -i disk disk.img -o local -os /var/tmp
- virt-v2v -i disk disk.img -o glance
-
There is a companion front-end called \"virt-p2v\" which comes as an
ISO or CD image that can be booted on physical machines.
diff --git a/v2v/output_glance.ml b/v2v/output_glance.ml
index 8c5426b9..3fce4e7a 100644
--- a/v2v/output_glance.ml
+++ b/v2v/output_glance.ml
@@ -100,4 +100,4 @@ object
end
let output_glance = new output_glance
-let () = Modules_list.register_output_module "glance"
+(* let () = Modules_list.register_output_module "glance" *)
--
2.31.1

View File

@ -1,26 +0,0 @@
From e57a5dafc00b3b5737824977aad0feb0ec497a1f 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 08/11] RHEL: v2v: -i disk: force VNC as display (RHBZ#1372671)
The SDL output mode is not supported in RHEL's qemu-kvm.
---
v2v/input_disk.ml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/v2v/input_disk.ml b/v2v/input_disk.ml
index b3acb5f6..5b39dbe2 100644
--- a/v2v/input_disk.ml
+++ b/v2v/input_disk.ml
@@ -88,7 +88,7 @@ class input_disk input_format disk = object
s_features = [ "acpi"; "apic"; "pae" ];
s_firmware = UnknownFirmware; (* causes virt-v2v to autodetect *)
s_display =
- Some { s_display_type = Window; s_keymap = None; s_password = None;
+ Some { s_display_type = VNC; s_keymap = None; s_password = None;
s_listen = LNoListen; s_port = None };
s_video = None;
s_sound = None;
--
2.31.1

View File

@ -1,2 +1,2 @@
SHA512 (virt-v2v-1.45.3.tar.gz) = 24606acb039e630d8cbe4befe232bf9f3e8a2064e931d9064adc59704d34b67269933e2b24cb9f996c31b8c16b4e4f2ebdd7f40c9d29bb0f4a9f3df98d8edf34
SHA512 (virt-v2v-1.45.3.tar.gz.sig) = efbeb0b925b403e6973936a89125b169c7522fc5073a0b8978326de861819a3b8756e219a381e3eac3ee40d97cc16919286a797557e6391e301a0871b38628e7
SHA512 (virt-v2v-1.45.90.tar.gz) = bbe5a6cbe949609c93bdbca0853aae6b9ca87882e49420a763440aab986bdd90a000181e9ec9b1271a42d052749e579f810a4c0122a5dbfa37ff81681147aacd
SHA512 (virt-v2v-1.45.90.tar.gz.sig) = 445b0a1f1db0abc86f3be31e39e9430536f5d62d73f56d88abf27c58ef554db7b0844f92ef1ae267dd27d5be9f5b80aadf1f7e6b1267c732f99a219639f7db9a

View File

@ -14,7 +14,7 @@
Name: virt-v2v
Epoch: 1
Version: 1.45.3
Version: 1.45.90
Release: 1%{?dist}
Summary: Convert a virtual machine to run on KVM
@ -50,17 +50,14 @@ ExclusiveArch: x86_64
# Downstream (RHEL-only) patches.
%if 0%{?rhel}
Patch9001: 0001-Revert-v2v-Remove-o-rhv-upload-oa-preallocated.patch
Patch9002: 0002-RHEL-v2v-rhv-upload-Remove-restriction-on-oa-sparse.patch
Patch9003: 0003-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch9004: 0004-RHEL-v2v-Disable-the-qemu-boot-option-RHBZ-1147313.patch
Patch9005: 0005-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch9006: 0006-RHEL-Fix-tests-for-libguestfs-winsupport.patch
Patch9007: 0007-RHEL-v2v-Disable-the-virt-v2v-in-place-option.patch
Patch9008: 0008-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch9009: 0009-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
Patch9010: 0010-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch9011: 0011-RHEL-9-Disable-o-glance.patch
Patch9001: 0001-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch9002: 0002-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch9003: 0003-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch9004: 0004-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch9005: 0005-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch9006: 0006-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
Patch9007: 0007-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch9008: 0008-RHEL-9-Disable-o-glance.patch
%endif
%if 0%{patches_touch_autotools}
@ -71,16 +68,17 @@ BuildRequires: make
BuildRequires: /usr/bin/pod2man
BuildRequires: gcc
BuildRequires: ocaml >= 4.01
BuildRequires: libguestfs-devel >= 1:1.42
BuildRequires: libguestfs-devel >= 1:1.42
BuildRequires: augeas-devel
BuildRequires: bash-completion
BuildRequires: file-devel
BuildRequires: gettext-devel
BuildRequires: jansson-devel
BuildRequires: libnbd-devel
BuildRequires: libosinfo-devel
BuildRequires: libvirt-devel
BuildRequires: libvirt-daemon-kvm
BuildRequires: libvirt-devel
BuildRequires: libxml2-devel
BuildRequires: pcre-devel
BuildRequires: perl(Sys::Guestfs)
@ -90,6 +88,7 @@ BuildRequires: xorriso
BuildRequires: ocaml-findlib-devel
BuildRequires: ocaml-libguestfs-devel
BuildRequires: ocaml-libnbd-devel
BuildRequires: ocaml-fileutils-devel
BuildRequires: ocaml-gettext-devel
%if !0%{?rhel}
@ -117,7 +116,7 @@ Requires: gawk
Requires: gzip
Requires: unzip
Requires: curl
Requires: /usr/bin/virsh
Requires: %{_bindir}/virsh
# Ensure the UEFI firmware is available, to properly convert
# EFI guests (RHBZ#1429643).
@ -128,14 +127,25 @@ Requires: edk2-ovmf
Requires: edk2-aarch64
%endif
# Needed for -it vddk, and -o rhv-upload.
Requires: nbdkit
Requires: libnbd >= 1.8.2-2.el9
Requires: %{_bindir}/qemu-nbd
Requires: %{_bindir}/nbdcopy
Requires: %{_bindir}/nbdinfo
Requires: nbdkit-server >= 1.26.5-1.el9
Requires: nbdkit-curl-plugin
Requires: nbdkit-file-plugin
Requires: nbdkit-nbd-plugin
Requires: nbdkit-null-plugin
Requires: nbdkit-python-plugin
Requires: nbdkit-ssh-plugin
%ifarch x86_64
Requires: nbdkit-vddk-plugin
%endif
Requires: nbdkit-cacheextents-filter
Requires: nbdkit-cow-filter >= 1.26.5-1.el9
Requires: nbdkit-rate-filter
Requires: nbdkit-readahead-filter
Requires: nbdkit-retry-filter
# For rhsrvany.exe, used to install firstboot scripts in Windows guests.
Requires: mingw32-srvany >= 1.0-13
@ -258,6 +268,9 @@ popd
%files -f %{name}.lang
%license COPYING
%doc README
%{_bindir}/helper-v2v-convert
%{_bindir}/helper-v2v-input
%{_bindir}/helper-v2v-output
%{_bindir}/virt-v2v
%{_mandir}/man1/virt-v2v.1*
%{_mandir}/man1/virt-v2v-hacking.1*
@ -287,6 +300,9 @@ popd
%changelog
* Tue Sep 21 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.90-1
- New upstream development version 1.45.90 (preview of 2.0)
* Fri Aug 06 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.3-1
- New upstream development version 1.45.3.
- Rebase RHEL patches.