Fix RHV JSON transfer bug
resolves: RHEL-32105
This commit is contained in:
parent
6ab70ffd53
commit
1d87979efe
@ -0,0 +1,70 @@
|
|||||||
|
From a659b334f5b72b8a9843b1813a97114adc62a543 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||||
|
Date: Fri, 15 Mar 2024 11:34:26 +0000
|
||||||
|
Subject: [PATCH] tests/test-v2v-o-kubevirt-windows.sh: Set fake virtio-win
|
||||||
|
|
||||||
|
When converting this phony Windows guest we didn't set the VIRTIO_WIN
|
||||||
|
environment variable. As a result the test output could change (and
|
||||||
|
break) depending on if the virtio-win package was installed or not.
|
||||||
|
|
||||||
|
Point VIRTIO_WIN to the fake virtio-win directory (as we do with other
|
||||||
|
Windows tests). We also need to modify the test output since the fake
|
||||||
|
virtio-win does contain enough for virt-v2v to think that virtio
|
||||||
|
driver installation was successful.
|
||||||
|
|
||||||
|
Fixes: commit af1f7b571fb21fdbfa2974ee54a22b4fdcbc886a
|
||||||
|
---
|
||||||
|
tests/test-v2v-o-kubevirt-windows.sh | 6 +++++-
|
||||||
|
tests/test-v2v-o-kubevirt-windows.yaml.expected | 10 ++++++++++
|
||||||
|
2 files changed, 15 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tests/test-v2v-o-kubevirt-windows.sh b/tests/test-v2v-o-kubevirt-windows.sh
|
||||||
|
index 93e4d5e9..d672b9ab 100755
|
||||||
|
--- a/tests/test-v2v-o-kubevirt-windows.sh
|
||||||
|
+++ b/tests/test-v2v-o-kubevirt-windows.sh
|
||||||
|
@@ -32,6 +32,7 @@ libvirt_uri="test://$abs_top_builddir/test-data/phony-guests/guests.xml"
|
||||||
|
windows=../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=test-v2v-o-kubevirt-windows.d
|
||||||
|
rm -rf $d
|
||||||
|
@@ -49,7 +50,10 @@ cat $d/test.yaml
|
||||||
|
test -f $d/test-sda
|
||||||
|
|
||||||
|
# Remove some parts of the yaml which change between runs.
|
||||||
|
-sed -i -e 's/^\(# generated by virt-v2v\).*/\1/' $d/test.yaml
|
||||||
|
+sed -i \
|
||||||
|
+ -e 's/^\(# generated by virt-v2v\).*/\1/' \
|
||||||
|
+ -e 's,\(path: \).*/\(test-sda\),\1\2,' \
|
||||||
|
+ $d/test.yaml
|
||||||
|
|
||||||
|
# Compare yaml to the expected output.
|
||||||
|
diff -u test-v2v-o-kubevirt-windows.yaml.expected $d/test.yaml
|
||||||
|
diff --git a/tests/test-v2v-o-kubevirt-windows.yaml.expected b/tests/test-v2v-o-kubevirt-windows.yaml.expected
|
||||||
|
index 88f25cf1..0b12eaa9 100644
|
||||||
|
--- a/tests/test-v2v-o-kubevirt-windows.yaml.expected
|
||||||
|
+++ b/tests/test-v2v-o-kubevirt-windows.yaml.expected
|
||||||
|
@@ -25,11 +25,21 @@ spec:
|
||||||
|
cpu:
|
||||||
|
cores: 1
|
||||||
|
devices:
|
||||||
|
+ rng: {}
|
||||||
|
+ disks:
|
||||||
|
+ - disk:
|
||||||
|
+ bus: virtio
|
||||||
|
+ name: disk-0
|
||||||
|
interfaces:
|
||||||
|
- name: net_default
|
||||||
|
masquerade: {}
|
||||||
|
macAddress: 00:11:22:33:44:55
|
||||||
|
model: virtio
|
||||||
|
+ volumes:
|
||||||
|
+ - hostDisk:
|
||||||
|
+ path: test-sda
|
||||||
|
+ type: Disk
|
||||||
|
+ name: disk-0
|
||||||
|
networks:
|
||||||
|
- networkName: default
|
||||||
|
name: net_default
|
@ -0,0 +1,62 @@
|
|||||||
|
From cfeebf0f121e21b8a96092330e02cc9875ee2af4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nir Soffer <nsoffer@redhat.com>
|
||||||
|
Date: Fri, 5 Apr 2024 22:56:40 +0300
|
||||||
|
Subject: [PATCH] -o rhv-upload: Add context if parsing params fails (#47)
|
||||||
|
|
||||||
|
If parsing params fail we get unhelpful error:
|
||||||
|
|
||||||
|
virt-v2v: error: internal error: invalid argument:
|
||||||
|
/tmp/v2v.CtVpBL/v2vtransfer.json: JSON parse error: end of file expected
|
||||||
|
near 'e'
|
||||||
|
|
||||||
|
Change the parsing code to read the entire json text and include it in
|
||||||
|
the error message. This will make it clear why the json could not be
|
||||||
|
parsed, and help to find the root cause for having invalid json.
|
||||||
|
|
||||||
|
Example error:
|
||||||
|
|
||||||
|
$ cat out.params0.json
|
||||||
|
This is not a json document
|
||||||
|
|
||||||
|
$ python output/rhv-upload-transfer.py out.params0.json
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/nsoffer/src/virt-v2v/output/rhv-upload-transfer.py", line 261, in <module>
|
||||||
|
raise RuntimeError(f"Cannot parse params {data!r}: {e}").with_traceback(
|
||||||
|
File "/home/nsoffer/src/virt-v2v/output/rhv-upload-transfer.py", line 259, in <module>
|
||||||
|
params = json.loads(data)
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/lib64/python3.12/json/__init__.py", line 346, in loads
|
||||||
|
return _default_decoder.decode(s)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/lib64/python3.12/json/decoder.py", line 337, in decode
|
||||||
|
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/lib64/python3.12/json/decoder.py", line 355, in raw_decode
|
||||||
|
raise JSONDecodeError("Expecting value", s, err.value) from None
|
||||||
|
RuntimeError: Cannot parse params 'This is not a json document\n': Expecting value: line 1 column 1 (char 0)
|
||||||
|
|
||||||
|
Related to #46
|
||||||
|
---
|
||||||
|
output/rhv-upload-transfer.py | 9 ++++++++-
|
||||||
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/output/rhv-upload-transfer.py b/output/rhv-upload-transfer.py
|
||||||
|
index 626eff77..1504b076 100644
|
||||||
|
--- a/output/rhv-upload-transfer.py
|
||||||
|
+++ b/output/rhv-upload-transfer.py
|
||||||
|
@@ -249,7 +249,14 @@ if len(sys.argv) != 2:
|
||||||
|
|
||||||
|
# Parameters are passed in via a JSON document.
|
||||||
|
with open(sys.argv[1], 'r') as fp:
|
||||||
|
- params = json.load(fp)
|
||||||
|
+ data = fp.read()
|
||||||
|
+
|
||||||
|
+try:
|
||||||
|
+ params = json.loads(data)
|
||||||
|
+except ValueError as e:
|
||||||
|
+ raise RuntimeError(f"Cannot parse params {data!r}: {e}").with_traceback(
|
||||||
|
+ e.__traceback__
|
||||||
|
+ ) from None
|
||||||
|
|
||||||
|
# What is passed in is a password file, read the actual password.
|
||||||
|
with open(params['output_password'], 'r') as fp:
|
24
0004-o-rhv-upload-clarify-debug-message.patch
Normal file
24
0004-o-rhv-upload-clarify-debug-message.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
From d8f09872a694836edce4685c605c09ba5ece9c31 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||||
|
Date: Fri, 5 Apr 2024 21:52:48 +0100
|
||||||
|
Subject: [PATCH] -o rhv-upload: clarify debug message
|
||||||
|
|
||||||
|
Thanks: Nir Soffer
|
||||||
|
Related: https://github.com/libguestfs/virt-v2v/issues/46
|
||||||
|
---
|
||||||
|
output/rhv-upload-transfer.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/output/rhv-upload-transfer.py b/output/rhv-upload-transfer.py
|
||||||
|
index 1504b076..7530f73e 100644
|
||||||
|
--- a/output/rhv-upload-transfer.py
|
||||||
|
+++ b/output/rhv-upload-transfer.py
|
||||||
|
@@ -45,7 +45,7 @@ def find_host(connection):
|
||||||
|
vdsm_id = f.readline().strip()
|
||||||
|
except Exception as e:
|
||||||
|
# This is most likely not an oVirt host.
|
||||||
|
- debug("cannot read /etc/vdsm/vdsm.id, using any host: %s" % e)
|
||||||
|
+ debug("cannot read /etc/vdsm/vdsm.id, not running on an ovirt host [this is not an error]: original exception: %s" % e)
|
||||||
|
return None
|
||||||
|
|
||||||
|
debug("hw_id = %r" % vdsm_id)
|
34
0005-o-rhv-upload-Dump-the-JSON-before-parsing.patch
Normal file
34
0005-o-rhv-upload-Dump-the-JSON-before-parsing.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From 19ac262ceb03db2bf53a63302673d328737523de Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||||
|
Date: Fri, 5 Apr 2024 22:13:40 +0100
|
||||||
|
Subject: [PATCH] -o rhv-upload: Dump the JSON before parsing
|
||||||
|
|
||||||
|
Related: https://github.com/libguestfs/virt-v2v/issues/46
|
||||||
|
---
|
||||||
|
output/output_rhv_upload.ml | 6 ++++++
|
||||||
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/output/output_rhv_upload.ml b/output/output_rhv_upload.ml
|
||||||
|
index 3926cfee..7a148b1e 100644
|
||||||
|
--- a/output/output_rhv_upload.ml
|
||||||
|
+++ b/output/output_rhv_upload.ml
|
||||||
|
@@ -273,6 +273,9 @@ See also the virt-v2v-output-rhv(1) manual.");
|
||||||
|
if Python_script.run_command ~stdout_fd:fd
|
||||||
|
precheck_script json_params [] <> 0 then
|
||||||
|
error (f_"failed server prechecks, see earlier errors");
|
||||||
|
+ if verbose () then
|
||||||
|
+ debug "precheck output before parsing: %s"
|
||||||
|
+ (read_whole_file precheck_json);
|
||||||
|
let json = JSON_parser.json_parser_tree_parse_file precheck_json in
|
||||||
|
debug "precheck output parsed as: %s"
|
||||||
|
(JSON.string_of_doc ~fmt:JSON.Indented ["", json]);
|
||||||
|
@@ -396,6 +399,9 @@ See also the virt-v2v-output-rhv(1) manual.");
|
||||||
|
if Python_script.run_command ~stdout_fd:fd
|
||||||
|
transfer_script json_params [] <> 0 then
|
||||||
|
error (f_"failed to start transfer, see earlier errors");
|
||||||
|
+ if verbose () then
|
||||||
|
+ debug "transfer output before parsing: %s"
|
||||||
|
+ (read_whole_file transfer_json);
|
||||||
|
let json = JSON_parser.json_parser_tree_parse_file transfer_json in
|
||||||
|
debug "transfer output parsed as: %s"
|
||||||
|
(JSON.string_of_doc ~fmt:JSON.Indented ["", json]);
|
43
0006-o-rhv-upload-Output-outside-of-the-with-block.patch
Normal file
43
0006-o-rhv-upload-Output-outside-of-the-with-block.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From 0ea92cc02949f3e829744e6e62d861dfd8ff5607 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nir Soffer <nsoffer@redhat.com>
|
||||||
|
Date: Fri, 5 Apr 2024 23:50:27 +0300
|
||||||
|
Subject: [PATCH] -o rhv-upload: Output outside of the with block
|
||||||
|
|
||||||
|
We write the json inside a with block, so what actually happen is:
|
||||||
|
|
||||||
|
1. Computing the values
|
||||||
|
2. Dumping the json to stdout
|
||||||
|
3. Closing the connection
|
||||||
|
|
||||||
|
If some code in sdk.Connection.close() write something to stdout, it
|
||||||
|
will corrupt our json output. Avoid this by moving the output out of the
|
||||||
|
with block.
|
||||||
|
|
||||||
|
This will not prevent bad code to write something before the json. We
|
||||||
|
need to log bad json in the Ocaml code to reveal such issue.
|
||||||
|
---
|
||||||
|
output/rhv-upload-transfer.py | 14 +++++++-------
|
||||||
|
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/output/rhv-upload-transfer.py b/output/rhv-upload-transfer.py
|
||||||
|
index 7530f73e..349e0f59 100644
|
||||||
|
--- a/output/rhv-upload-transfer.py
|
||||||
|
+++ b/output/rhv-upload-transfer.py
|
||||||
|
@@ -285,10 +285,10 @@ with closing(connection):
|
||||||
|
transfer = create_transfer(connection, disk, host)
|
||||||
|
destination_url = get_transfer_url(transfer)
|
||||||
|
|
||||||
|
- # Send the destination URL, transfer ID, and host flag back to OCaml code.
|
||||||
|
- results = {
|
||||||
|
- "transfer_id": transfer.id,
|
||||||
|
- "destination_url": destination_url,
|
||||||
|
- "is_ovirt_host": host is not None,
|
||||||
|
- }
|
||||||
|
- json.dump(results, sys.stdout)
|
||||||
|
+# Send the destination URL, transfer ID, and host flag back to OCaml code.
|
||||||
|
+results = {
|
||||||
|
+ "transfer_id": transfer.id,
|
||||||
|
+ "destination_url": destination_url,
|
||||||
|
+ "is_ovirt_host": host is not None,
|
||||||
|
+}
|
||||||
|
+json.dump(results, sys.stdout)
|
47
0007-o-rhv-upload-Improve-host-id-logging.patch
Normal file
47
0007-o-rhv-upload-Improve-host-id-logging.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
From ff341481eb397d700c346d27c8a23f9732028e03 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nir Soffer <nsoffer@redhat.com>
|
||||||
|
Date: Sat, 6 Apr 2024 00:21:19 +0300
|
||||||
|
Subject: [PATCH] -o rhv-upload: Improve host id logging
|
||||||
|
|
||||||
|
This log[1] is proved confusing for developers:
|
||||||
|
|
||||||
|
cannot read /etc/vdsm/vdsm.id, using any host: [Errno 2] No such file or directory: '/etc/vdsm/vdsm.id'
|
||||||
|
|
||||||
|
This is actually a debug message, that can help RHV developers to
|
||||||
|
understand where virt-v2v was running. To make this more clear, in the
|
||||||
|
expected case when running on non-oVirt host, we log now:
|
||||||
|
|
||||||
|
not an oVirt host, using non-oVirt host
|
||||||
|
|
||||||
|
For any other error, we can degrade to remote transfer, but we want to
|
||||||
|
warn the user about this, so we log:
|
||||||
|
|
||||||
|
warning: cannot read host id, using non-oVirt host: [Errno 2] No such file or directory: '/etc/vdsm/vdsm.id'
|
||||||
|
|
||||||
|
[1] https://github.com/libguestfs/virt-v2v/issues/46#issuecomment-2039604719
|
||||||
|
|
||||||
|
RWMJ: Changed "any host" to "non-oVirt host" to make it clearer.
|
||||||
|
---
|
||||||
|
output/rhv-upload-transfer.py | 8 ++++++--
|
||||||
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/output/rhv-upload-transfer.py b/output/rhv-upload-transfer.py
|
||||||
|
index 349e0f59..ed96153b 100644
|
||||||
|
--- a/output/rhv-upload-transfer.py
|
||||||
|
+++ b/output/rhv-upload-transfer.py
|
||||||
|
@@ -43,9 +43,13 @@ def find_host(connection):
|
||||||
|
try:
|
||||||
|
with open("/etc/vdsm/vdsm.id") as f:
|
||||||
|
vdsm_id = f.readline().strip()
|
||||||
|
+ except FileNotFoundError:
|
||||||
|
+ # Expected condition when running on non-oVirt host.
|
||||||
|
+ debug("not an oVirt host, using non-oVirt host")
|
||||||
|
+ return None
|
||||||
|
except Exception as e:
|
||||||
|
- # This is most likely not an oVirt host.
|
||||||
|
- debug("cannot read /etc/vdsm/vdsm.id, not running on an ovirt host [this is not an error]: original exception: %s" % e)
|
||||||
|
+ # Unexpected but we can degrade to remote transfer.
|
||||||
|
+ debug(f"warning: cannot read host id, using non-oVirt host: {e}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
debug("hw_id = %r" % vdsm_id)
|
27
0008-o-rhv-upload-Don-t-share-transfer.json-49.patch
Normal file
27
0008-o-rhv-upload-Don-t-share-transfer.json-49.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
From 5672d89531ebe560aa4437a82009bdf6532983d1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nir Soffer <nsoffer@redhat.com>
|
||||||
|
Date: Sat, 6 Apr 2024 17:15:45 +0300
|
||||||
|
Subject: [PATCH] -o rhv-upload: Don't share transfer.json (#49)
|
||||||
|
|
||||||
|
Use unique v2vtransferN.json for every transfer, like like
|
||||||
|
out.paramsN.json. If we keep the temporary files after the import, the
|
||||||
|
content of the file can help debugging.
|
||||||
|
|
||||||
|
Related to #46
|
||||||
|
---
|
||||||
|
output/output_rhv_upload.ml | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/output/output_rhv_upload.ml b/output/output_rhv_upload.ml
|
||||||
|
index 7a148b1e..f8bff24f 100644
|
||||||
|
--- a/output/output_rhv_upload.ml
|
||||||
|
+++ b/output/output_rhv_upload.ml
|
||||||
|
@@ -394,7 +394,7 @@ See also the virt-v2v-output-rhv(1) manual.");
|
||||||
|
(fun chan -> output_string chan (JSON.string_of_doc json_params));
|
||||||
|
|
||||||
|
(* Start the transfer. *)
|
||||||
|
- let transfer_json = dir // "v2vtransfer.json" in
|
||||||
|
+ let transfer_json = dir // sprintf "v2vtransfer%d.json" i in
|
||||||
|
let fd = Unix.openfile transfer_json [O_WRONLY; O_CREAT] 0o600 in
|
||||||
|
if Python_script.run_command ~stdout_fd:fd
|
||||||
|
transfer_script json_params [] <> 0 then
|
@ -0,0 +1,34 @@
|
|||||||
|
From 089d9a235e0e8a959c6d85004e24f2cdb37681b4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thorsten Bolten <t.bolten@gmx.de>
|
||||||
|
Date: Sat, 6 Apr 2024 10:41:20 -0400
|
||||||
|
Subject: [PATCH] -o rhv-upload: Add O_TRUNC to truncate JSON file if it exists
|
||||||
|
|
||||||
|
Fixes: https://github.com/libguestfs/virt-v2v/issues/46
|
||||||
|
Thanks: Nir Soffer
|
||||||
|
---
|
||||||
|
output/output_rhv_upload.ml | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/output/output_rhv_upload.ml b/output/output_rhv_upload.ml
|
||||||
|
index f8bff24f..d6fde169 100644
|
||||||
|
--- a/output/output_rhv_upload.ml
|
||||||
|
+++ b/output/output_rhv_upload.ml
|
||||||
|
@@ -269,7 +269,7 @@ See also the virt-v2v-output-rhv(1) manual.");
|
||||||
|
("rhv_disk_uuids", JSON.List ids) :: json_params
|
||||||
|
in
|
||||||
|
let precheck_json = dir // "v2vprecheck.json" in
|
||||||
|
- let fd = Unix.openfile precheck_json [O_WRONLY; O_CREAT] 0o600 in
|
||||||
|
+ let fd = Unix.openfile precheck_json [O_WRONLY; O_CREAT; O_TRUNC] 0o600 in
|
||||||
|
if Python_script.run_command ~stdout_fd:fd
|
||||||
|
precheck_script json_params [] <> 0 then
|
||||||
|
error (f_"failed server prechecks, see earlier errors");
|
||||||
|
@@ -395,7 +395,8 @@ See also the virt-v2v-output-rhv(1) manual.");
|
||||||
|
|
||||||
|
(* Start the transfer. *)
|
||||||
|
let transfer_json = dir // sprintf "v2vtransfer%d.json" i in
|
||||||
|
- let fd = Unix.openfile transfer_json [O_WRONLY; O_CREAT] 0o600 in
|
||||||
|
+ let fd =
|
||||||
|
+ Unix.openfile transfer_json [O_WRONLY; O_CREAT; O_TRUNC] 0o600 in
|
||||||
|
if Python_script.run_command ~stdout_fd:fd
|
||||||
|
transfer_script json_params [] <> 0 then
|
||||||
|
error (f_"failed to start transfer, see earlier errors");
|
@ -1,4 +1,4 @@
|
|||||||
From 7b057cee3af616ef9ef5b8bab97d54d39065c77e Mon Sep 17 00:00:00 2001
|
From f61e293ba2051af2b9608a474e840594d6c26743 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
|
@ -1,4 +1,4 @@
|
|||||||
From d47834e168937dd038b8af396fa8a36529161e6b Mon Sep 17 00:00:00 2001
|
From 9a84eec09ed1ea7c6cc64475e6342cd0ba265d1a 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
|
@ -1,4 +1,4 @@
|
|||||||
From 737e3eef8091f516b03337cfb4e5744a02c1de94 Mon Sep 17 00:00:00 2001
|
From 1d939e6f8a3401bc2c15afd7157d9f4a6f0763b2 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
|
@ -1,4 +1,4 @@
|
|||||||
From cfadd50bbf1ae0aa27bd90bbd2fd49dd2d3b67f9 Mon Sep 17 00:00:00 2001
|
From 8c5b0a1fd9c95f3834499089aaefff2883de551e 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.
|
||||||
@ -12,9 +12,10 @@ https://bugzilla.redhat.com/show_bug.cgi?id=2187961#c1
|
|||||||
convert/convert.ml | 1 +
|
convert/convert.ml | 1 +
|
||||||
test-data/phony-guests/make-windows-img.sh | 1 +
|
test-data/phony-guests/make-windows-img.sh | 1 +
|
||||||
tests/test-v2v-block-driver.sh | 6 +++++-
|
tests/test-v2v-block-driver.sh | 6 +++++-
|
||||||
|
tests/test-v2v-in-place.sh | 8 +++++++-
|
||||||
tests/test-v2v-virtio-win-iso.sh | 8 +++++++-
|
tests/test-v2v-virtio-win-iso.sh | 8 +++++++-
|
||||||
tests/test-v2v-windows-conversion.sh | 8 +++++++-
|
tests/test-v2v-windows-conversion.sh | 8 +++++++-
|
||||||
5 files changed, 21 insertions(+), 3 deletions(-)
|
6 files changed, 28 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/convert/convert.ml b/convert/convert.ml
|
diff --git a/convert/convert.ml b/convert/convert.ml
|
||||||
index d1dfcae8..e424930c 100644
|
index d1dfcae8..e424930c 100644
|
||||||
@ -57,6 +58,32 @@ index db59a2cf..a0e56bed 100755
|
|||||||
is-dir $virtio_dir
|
is-dir $virtio_dir
|
||||||
is-file $virtio_dir/$drv.cat
|
is-file $virtio_dir/$drv.cat
|
||||||
is-file $virtio_dir/$drv.inf
|
is-file $virtio_dir/$drv.inf
|
||||||
|
diff --git a/tests/test-v2v-in-place.sh b/tests/test-v2v-in-place.sh
|
||||||
|
index 4373f140..2b31b0bb 100755
|
||||||
|
--- a/tests/test-v2v-in-place.sh
|
||||||
|
+++ b/tests/test-v2v-in-place.sh
|
||||||
|
@@ -89,6 +89,12 @@ mktest ()
|
||||||
|
:> "$script"
|
||||||
|
:> "$expected"
|
||||||
|
|
||||||
|
+cat >> "$script" <<EOF
|
||||||
|
+ set-program virt-testing
|
||||||
|
+ run
|
||||||
|
+ mount /dev/sda2 /
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
firstboot_dir="/Program Files/Guestfs/Firstboot"
|
||||||
|
mktest "is-dir \"$firstboot_dir\"" true
|
||||||
|
mktest "is-file \"$firstboot_dir/firstboot.bat\"" true
|
||||||
|
@@ -101,7 +107,7 @@ for drv in netkvm vioscsi viostor; do
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
-guestfish --ro -a "$img" -i < "$script" > "$response"
|
||||||
|
+guestfish --ro -a "$img" < "$script" > "$response"
|
||||||
|
diff -u "$expected" "$response"
|
||||||
|
|
||||||
|
# Test the base image remained untouched
|
||||||
diff --git a/tests/test-v2v-virtio-win-iso.sh b/tests/test-v2v-virtio-win-iso.sh
|
diff --git a/tests/test-v2v-virtio-win-iso.sh b/tests/test-v2v-virtio-win-iso.sh
|
||||||
index 69f6f414..b9b806fb 100755
|
index 69f6f414..b9b806fb 100755
|
||||||
--- a/tests/test-v2v-virtio-win-iso.sh
|
--- a/tests/test-v2v-virtio-win-iso.sh
|
@ -1,4 +1,4 @@
|
|||||||
From 50869ce4d489a53dc31e3d1b7ee89e880d36504f Mon Sep 17 00:00:00 2001
|
From 9822a20cc378dcdf201ad682cb81eeb4e3336297 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)
|
@ -1,4 +1,4 @@
|
|||||||
From 2a325cff391e69b8806f3bc60d7f36037bd61ac4 Mon Sep 17 00:00:00 2001
|
From 130ffc9b7ae3e8e11c342e7c90b6286ab21b881c Mon Sep 17 00:00:00 2001
|
||||||
From: Pino Toscano <ptoscano@redhat.com>
|
From: Pino Toscano <ptoscano@redhat.com>
|
||||||
Date: Wed, 8 Mar 2017 11:03:40 +0100
|
Date: Wed, 8 Mar 2017 11:03:40 +0100
|
||||||
Subject: [PATCH] RHEL: v2v: do not mention SUSE Xen hosts (RHBZ#1430203)
|
Subject: [PATCH] RHEL: v2v: do not mention SUSE Xen hosts (RHBZ#1430203)
|
@ -1,4 +1,4 @@
|
|||||||
From 9ca8c71e874eccb45e5a41ba993735837a3887dc Mon Sep 17 00:00:00 2001
|
From 1e0398f1f2bac2da9700a38a1ba7cb6f172d7c03 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
|
@ -1,4 +1,4 @@
|
|||||||
From 692bd4c371b6df59d351ae73f5d4a4890b0536a1 Mon Sep 17 00:00:00 2001
|
From 1bde50da68385498441ed6e6d7178e8828eb6b3d 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: Disable -o glance
|
Subject: [PATCH] RHEL: Disable -o glance
|
@ -1,4 +1,4 @@
|
|||||||
From 5d18e008239f0ea70dec028fc51a07cdd2766d3a Mon Sep 17 00:00:00 2001
|
From 3fefe2b16e9e17322e5a620851f6b263e216ee98 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 Dec 2021 11:56:05 +0000
|
Date: Thu, 2 Dec 2021 11:56:05 +0000
|
||||||
Subject: [PATCH] RHEL: Remove the --in-place option
|
Subject: [PATCH] RHEL: Remove the --in-place option
|
@ -1,4 +1,4 @@
|
|||||||
From 67ec9266d5f8fc639fde3cbf28c0032ea2155201 Mon Sep 17 00:00:00 2001
|
From 1565824fb019fc4fb86312439f1a44fc686ce73c 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:56:54 +0100
|
Date: Tue, 5 Jul 2022 11:56:54 +0100
|
||||||
Subject: [PATCH] RHEL 9: -oo compressed: Remove nbdcopy version check and test
|
Subject: [PATCH] RHEL 9: -oo compressed: Remove nbdcopy version check and test
|
@ -1,4 +1,4 @@
|
|||||||
From 598ebd44a74747e9db37304a0cea98bc7ba76c3a Mon Sep 17 00:00:00 2001
|
From 8bc5a15ceabe7a8b6a14faa48bd47f48d33535a3 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 9: tests: Remove btrfs test
|
Subject: [PATCH] RHEL 9: tests: Remove btrfs test
|
@ -1,4 +1,4 @@
|
|||||||
From 3cc70a76fe82d8a3cbf675648a2cf568d124c203 Mon Sep 17 00:00:00 2001
|
From 6aa2c1976bebf550149e27cd4463408ec476addf 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 9: Remove --block-driver option
|
Subject: [PATCH] RHEL 9: Remove --block-driver option
|
@ -16,7 +16,7 @@
|
|||||||
Name: virt-v2v
|
Name: virt-v2v
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 2.5.2
|
Version: 2.5.2
|
||||||
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
|
||||||
@ -37,18 +37,26 @@ Source3: copy-patches.sh
|
|||||||
|
|
||||||
# Patches.
|
# Patches.
|
||||||
Patch0001: 0001-tests-Don-t-rebuild-real_guests_scripts-after-clean.patch
|
Patch0001: 0001-tests-Don-t-rebuild-real_guests_scripts-after-clean.patch
|
||||||
Patch0002: 0002-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
|
Patch0002: 0002-tests-test-v2v-o-kubevirt-windows.sh-Set-fake-virtio.patch
|
||||||
Patch0003: 0003-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
|
Patch0003: 0003-o-rhv-upload-Add-context-if-parsing-params-fails-47.patch
|
||||||
Patch0004: 0004-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
|
Patch0004: 0004-o-rhv-upload-clarify-debug-message.patch
|
||||||
Patch0005: 0005-RHEL-Fixes-for-libguestfs-winsupport.patch
|
Patch0005: 0005-o-rhv-upload-Dump-the-JSON-before-parsing.patch
|
||||||
Patch0006: 0006-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
|
Patch0006: 0006-o-rhv-upload-Output-outside-of-the-with-block.patch
|
||||||
Patch0007: 0007-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
|
Patch0007: 0007-o-rhv-upload-Improve-host-id-logging.patch
|
||||||
Patch0008: 0008-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
|
Patch0008: 0008-o-rhv-upload-Don-t-share-transfer.json-49.patch
|
||||||
Patch0009: 0009-RHEL-Disable-o-glance.patch
|
Patch0009: 0009-o-rhv-upload-Add-O_TRUNC-to-truncate-JSON-file-if-it.patch
|
||||||
Patch0010: 0010-RHEL-Remove-the-in-place-option.patch
|
Patch0010: 0010-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
|
||||||
Patch0011: 0011-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch
|
Patch0011: 0011-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
|
||||||
Patch0012: 0012-RHEL-9-tests-Remove-btrfs-test.patch
|
Patch0012: 0012-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
|
||||||
Patch0013: 0013-RHEL-9-Remove-block-driver-option.patch
|
Patch0013: 0013-RHEL-Fixes-for-libguestfs-winsupport.patch
|
||||||
|
Patch0014: 0014-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
|
||||||
|
Patch0015: 0015-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
|
||||||
|
Patch0016: 0016-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
|
||||||
|
Patch0017: 0017-RHEL-Disable-o-glance.patch
|
||||||
|
Patch0018: 0018-RHEL-Remove-the-in-place-option.patch
|
||||||
|
Patch0019: 0019-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch
|
||||||
|
Patch0020: 0020-RHEL-9-tests-Remove-btrfs-test.patch
|
||||||
|
Patch0021: 0021-RHEL-9-Remove-block-driver-option.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
|
||||||
@ -353,10 +361,12 @@ make -C tests TESTS=test-v2v-fedora-luks-on-lvm-conversion.sh check
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Fri Mar 15 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.2-1
|
* Mon Apr 08 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.2-2
|
||||||
- Rebase to virt-v2v 2.5.2
|
- Rebase to virt-v2v 2.5.2
|
||||||
- Add missing firmware types and enhance -o kubevirt
|
- Add missing firmware types and enhance -o kubevirt
|
||||||
resolves: RHEL-28197
|
resolves: RHEL-28197
|
||||||
|
- Fix RHV JSON transfer bug
|
||||||
|
resolves: RHEL-32105
|
||||||
|
|
||||||
* Mon Jan 22 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.4.0-2
|
* Mon Jan 22 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.4.0-2
|
||||||
- Rebase to virt-v2v 2.4.0
|
- Rebase to virt-v2v 2.4.0
|
||||||
|
Loading…
Reference in New Issue
Block a user