[Libguestfs] [PATCH v3 06/13] v2v: factor out determining the guest firmware

Richard W.M. Jones rjones at redhat.com
Tue Oct 20 14:09:26 UTC 2015


On Tue, Oct 20, 2015 at 04:08:14PM +0300, Roman Kagan wrote:
> Signed-off-by: Roman Kagan <rkagan at virtuozzo.com>
> ---
>  v2v/v2v.ml | 45 +++++++++++++++++++++++++--------------------
>  1 file changed, 25 insertions(+), 20 deletions(-)
> 
> diff --git a/v2v/v2v.ml b/v2v/v2v.ml
> index 633c29f..afffde2 100644
> --- a/v2v/v2v.ml
> +++ b/v2v/v2v.ml
> @@ -103,26 +103,7 @@ let rec main () =
>    g#shutdown ();
>    g#close ();
>  
> -  (* Does the guest require UEFI on the target? *)
> -  message (f_"Checking if the guest needs BIOS or UEFI to boot");
> -  let target_firmware =
> -    match source.s_firmware with
> -    | BIOS -> TargetBIOS
> -    | UEFI -> TargetUEFI
> -    | UnknownFirmware ->
> -       if inspect.i_uefi then TargetUEFI else TargetBIOS in
> -  let supported_firmware = output#supported_firmware in
> -  if not (List.mem target_firmware supported_firmware) then
> -    error (f_"this guest cannot run on the target, because the target does not support %s firmware (supported firmware on target: %s)")
> -          (string_of_target_firmware target_firmware)
> -          (String.concat " "
> -            (List.map string_of_target_firmware supported_firmware));
> -
> -  output#check_target_firmware guestcaps target_firmware;
> -
> -  (match target_firmware with
> -   | TargetBIOS -> ()
> -   | TargetUEFI -> info (f_"This guest requires UEFI on the target to boot."));
> +  let target_firmware = get_target_firmware inspect guestcaps source output in
>  
>    message (f_"Assigning disks to buses");
>    let target_buses = target_bus_assignment source targets guestcaps in
> @@ -820,6 +801,30 @@ and do_convert g inspect source keep_serial_console =
>  
>    guestcaps
>  
> +and get_target_firmware inspect guestcaps source output =
> +  (* Does the guest require UEFI on the target? *)
> +  message (f_"Checking if the guest needs BIOS or UEFI to boot");
> +  let target_firmware =
> +    match source.s_firmware with
> +    | BIOS -> TargetBIOS
> +    | UEFI -> TargetUEFI
> +    | UnknownFirmware ->
> +       if inspect.i_uefi then TargetUEFI else TargetBIOS in
> +  let supported_firmware = output#supported_firmware in
> +  if not (List.mem target_firmware supported_firmware) then
> +    error (f_"this guest cannot run on the target, because the target does not support %s firmware (supported firmware on target: %s)")
> +          (string_of_target_firmware target_firmware)
> +          (String.concat " "
> +            (List.map string_of_target_firmware supported_firmware));
> +
> +  output#check_target_firmware guestcaps target_firmware;
> +
> +  (match target_firmware with
> +   | TargetBIOS -> ()
> +   | TargetUEFI -> info (f_"This guest requires UEFI on the target to boot."));
> +
> +  target_firmware
> +
>  (* Update the target_actual_size field in the target structure. *)
>  and actual_target_size target =
>    { target with target_actual_size = du target.target_file }

Straight refactor, ACK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW




More information about the Libguestfs mailing list