Typically the transfer format is the same as the target format. But some outputs may want to override the transfer format but create disks using target format. This change does not affect existing outputs, but will using raw transfer format in rhv_upload when using qcow2 target format. --- v2v/types.ml | 1 + v2v/types.mli | 4 ++++ v2v/v2v.ml | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/v2v/types.ml b/v2v/types.ml index 977d9bda..8de48aec 100644 --- a/v2v/types.ml +++ b/v2v/types.ml @@ -529,6 +529,7 @@ class virtual output = object method virtual supported_firmware : target_firmware list method check_target_firmware (_ : guestcaps) (_ : target_firmware) = () method override_output_format (_ : overlay) = (None : string option) + method transfer_format t = t.target_format method virtual prepare_targets : string -> (string * overlay) list -> target_file list method disk_create = (open_guestfs ())#disk_create method disk_copied (_ : target) (_ : int) (_ : int) = () diff --git a/v2v/types.mli b/v2v/types.mli index 4c1d3595..9ceee8a2 100644 --- a/v2v/types.mli +++ b/v2v/types.mli @@ -488,6 +488,10 @@ class virtual output : object line (silently). It’s best not to do this, instead modify prepare_targets so it gives an error if the output format chosen is not supported by the target. *) + method transfer_format : target -> string + (** Typically the transfer format is same as the target format, but + some outputs may need to overide the transfer format, but create disk + using target format. *) method virtual prepare_targets : string -> (string * overlay) list -> target_file list (** Called after conversion but before copying to prepare (but {b not} create) the target file. The [(string * overlay list)] parameter diff --git a/v2v/v2v.ml b/v2v/v2v.ml index 03590c9e..f9d81460 100644 --- a/v2v/v2v.ml +++ b/v2v/v2v.ml @@ -739,7 +739,7 @@ and copy_targets cmdline targets input output = | TargetURI uri -> uri in [ "qemu-img"; "convert" ] @ (if not (quiet ()) then [ "-p" ] else []) @ - [ "-n"; "-f"; "qcow2"; "-O"; t.target_format ] @ + [ "-n"; "-f"; "qcow2"; "-O"; output#transfer_format t ] @ (if cmdline.compressed then [ "-c" ] else []) @ [ "-S"; "64k" ] @ [ overlay_file; filename ] in -- 2.21.0