[Libguestfs] [PATCH] OCaml tools: use open_guestfs everywhere
Richard W.M. Jones
rjones at redhat.com
Tue Nov 10 11:56:20 UTC 2015
On Tue, Nov 10, 2015 at 11:43:22AM +0100, Pino Toscano wrote:
> Instead of creating Guestfs handles and manually apply common options
> (e.g. debug and trace), use the open_guestfs in Common_utils.
> This also applies the common options to handles which didn't set them
> before, so we can inspect also their messages if needed.
> ---
> builder/builder.ml | 8 ++------
> customize/customize_main.ml | 4 +---
> dib/dib.ml | 4 +---
> get-kernel/get_kernel.ml | 4 +---
> resize/resize.ml | 10 +++-------
> sparsify/cmdline.ml | 2 +-
> sparsify/copying.ml | 16 +++++-----------
> sparsify/in_place.ml | 4 +---
> sysprep/main.ml | 4 +---
> v2v/v2v.ml | 6 +++---
> 10 files changed, 19 insertions(+), 43 deletions(-)
>
> diff --git a/builder/builder.ml b/builder/builder.ml
> index feb6e0d..2c51550 100644
> --- a/builder/builder.ml
> +++ b/builder/builder.ml
> @@ -570,9 +570,7 @@ let main () =
> (human_size osize);
> let preallocation = if oformat = "qcow2" then Some "metadata" else None in
> let () =
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
> g#disk_create ?preallocation ofile oformat osize in
> let cmd =
> sprintf "virt-resize%s%s%s --output-format %s%s%s --unknown-filesystems error %s %s"
> @@ -626,9 +624,7 @@ let main () =
> (* Now mount the output disk so we can make changes. *)
> message (f_"Opening the new disk");
> let g =
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
>
> (match memsize with None -> () | Some memsize -> g#set_memsize memsize);
> (match smp with None -> () | Some smp -> g#set_smp smp);
> diff --git a/customize/customize_main.ml b/customize/customize_main.ml
> index 49d510c..e161e82 100644
> --- a/customize/customize_main.ml
> +++ b/customize/customize_main.ml
> @@ -165,9 +165,7 @@ read the man page virt-customize(1).
>
> (* Connect to libguestfs. *)
> let g =
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
>
> (match memsize with None -> () | Some memsize -> g#set_memsize memsize);
> (match smp with None -> () | Some smp -> g#set_smp smp);
> diff --git a/dib/dib.ml b/dib/dib.ml
> index caf13f2..1ae8876 100644
> --- a/dib/dib.ml
> +++ b/dib/dib.ml
> @@ -626,9 +626,7 @@ let main () =
> let is_ramdisk_build = is_ramdisk || StringSet.mem "ironic-agent" all_elements in
>
> let g, tmpdisk, tmpdiskfmt, drive_partition =
> - let g = new G.guestfs () in
> - if verbose () then g#set_verbose true;
> - if trace () then g#set_trace true;
> + let g = open_guestfs () in
>
> (match memsize with None -> () | Some memsize -> g#set_memsize memsize);
> (match smp with None -> () | Some smp -> g#set_smp smp);
> diff --git a/get-kernel/get_kernel.ml b/get-kernel/get_kernel.ml
> index 2bea559..59bd9d6 100644
> --- a/get-kernel/get_kernel.ml
> +++ b/get-kernel/get_kernel.ml
> @@ -182,9 +182,7 @@ let main () =
> let add, output, unversioned, prefix = parse_cmdline () in
>
> (* Connect to libguestfs. *)
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
> add g;
> g#launch ();
>
> diff --git a/resize/resize.ml b/resize/resize.ml
> index af7b37f..b2802c7 100644
> --- a/resize/resize.ml
> +++ b/resize/resize.ml
> @@ -284,7 +284,7 @@ read the man page virt-resize(1).
> printf "alignment\n";
> printf "align-first\n";
> printf "infile-uri\n";
> - let g = new G.guestfs () in
> + let g = open_guestfs () in
> g#add_drive "/dev/null";
> g#launch ();
> if g#feature_available [| "ntfsprogs"; "ntfs3g" |] then
> @@ -329,9 +329,7 @@ read the man page virt-resize(1).
>
> (* Add in and out disks to the handle and launch. *)
> let connect_both_disks () =
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
> let _, { URI.path = path; protocol = protocol;
> server = server; username = username;
> password = password } = infile in
> @@ -1295,9 +1293,7 @@ read the man page virt-resize(1).
> g#shutdown ();
> g#close ();
>
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
> (* The output disk is being created, so use cache=unsafe here. *)
> g#add_drive ?format:output_format ~readonly:false ~cachemode:"unsafe"
> outfile;
> diff --git a/sparsify/cmdline.ml b/sparsify/cmdline.ml
> index 17b5542..868456f 100644
> --- a/sparsify/cmdline.ml
> +++ b/sparsify/cmdline.ml
> @@ -107,7 +107,7 @@ read the man page virt-sparsify(1).
> printf "check-tmpdir\n";
> printf "in-place\n";
> printf "tmp-option\n";
> - let g = new Guestfs.guestfs () in
> + let g = open_guestfs () in
> g#add_drive "/dev/null";
> g#launch ();
> if g#feature_available [| "ntfsprogs"; "ntfs3g" |] then
> diff --git a/sparsify/copying.ml b/sparsify/copying.ml
> index ef196f6..bef0664 100644
> --- a/sparsify/copying.ml
> +++ b/sparsify/copying.ml
> @@ -60,7 +60,7 @@ let run indisk outdisk check_tmpdir compress convert
> | Some fmt -> fmt (* user specified input format, use that *)
> | None ->
> (* Don't know, so we must autodetect. *)
> - match (new G.guestfs ())#disk_format indisk with
> + match (open_guestfs ())#disk_format indisk with
> | "unknown" ->
> error (f_"cannot detect input disk format; use the --format parameter")
> | fmt -> fmt in
> @@ -79,9 +79,7 @@ let run indisk outdisk check_tmpdir compress convert
> let file = String.sub file 9 (String.length file - 9) in
> if not (Sys.file_exists file) then
> error (f_"--tmp prebuilt:file: %s: file does not exist") file;
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
> if g#disk_format file <> "qcow2" then
> error (f_"--tmp prebuilt:file: %s: file format is not qcow2") file;
> if not (g#disk_has_backing_file file) then
> @@ -97,7 +95,7 @@ let run indisk outdisk check_tmpdir compress convert
> | Prebuilt_file _ -> ()
> | Directory tmpdir ->
> (* Get virtual size of the input disk. *)
> - let virtual_size = (new G.guestfs ())#disk_virtual_size indisk in
> + let virtual_size = (open_guestfs ())#disk_virtual_size indisk in
> if verbose () then
> printf "input disk virtual size is %Ld bytes (%s)\n%!"
> virtual_size (human_size virtual_size);
> @@ -153,9 +151,7 @@ You can ignore this warning or change it to a hard failure using the
>
> (* Create 'tmp' with the indisk as the backing file. *)
> let create tmp =
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
> g#disk_create
> ~backingfile:indisk ?backingformat:format ~compat:"1.1"
> tmp "qcow2" Int64.minus_one
> @@ -180,9 +176,7 @@ You can ignore this warning or change it to a hard failure using the
>
> (* Connect to libguestfs. *)
> let g =
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
>
> (* Note that the temporary overlay disk is always qcow2 format. *)
> g#add_drive ~format:"qcow2" ~readonly:false ~cachemode:"unsafe" overlaydisk;
> diff --git a/sparsify/in_place.ml b/sparsify/in_place.ml
> index 3a2b32c..6a42a11 100644
> --- a/sparsify/in_place.ml
> +++ b/sparsify/in_place.ml
> @@ -31,9 +31,7 @@ module G = Guestfs
>
> let rec run disk format ignores machine_readable zeroes =
> (* Connect to libguestfs. *)
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
>
> (* Capture ^C and clean up gracefully. *)
> let quit = ref false in
> diff --git a/sysprep/main.ml b/sysprep/main.ml
> index 411c595..12d4b02 100644
> --- a/sysprep/main.ml
> +++ b/sysprep/main.ml
> @@ -211,9 +211,7 @@ read the man page virt-sysprep(1).
> message (f_"Examining the guest ...");
>
> (* Connect to libguestfs. *)
> - let g = new G.guestfs () in
> - if trace () then g#set_trace true;
> - if verbose () then g#set_verbose true;
> + let g = open_guestfs () in
> add g dryrun;
> g#launch ();
>
> diff --git a/v2v/v2v.ml b/v2v/v2v.ml
> index dabec7f..3610446 100644
> --- a/v2v/v2v.ml
> +++ b/v2v/v2v.ml
> @@ -236,12 +236,12 @@ and create_overlays src_disks =
> error (f_"qemu-img command failed, see earlier errors");
>
> (* Sanity check created overlay (see below). *)
> - if not ((new G.guestfs ())#disk_has_backing_file overlay_file) then
> + if not ((open_guestfs ())#disk_has_backing_file overlay_file) then
> error (f_"internal error: qemu-img did not create overlay with backing file");
>
> let sd = "sd" ^ drive_name i in
>
> - let vsize = (new G.guestfs ())#disk_virtual_size overlay_file in
> + let vsize = (open_guestfs ())#disk_virtual_size overlay_file in
>
> { ov_overlay_file = overlay_file; ov_sd = sd;
> ov_virtual_size = vsize; ov_source = source }
> @@ -780,7 +780,7 @@ and copy_targets targets input output output_alloc =
> * backing file. Just sanity check this here.
> *)
> let overlay_file = t.target_overlay.ov_overlay_file in
> - if not ((new G.guestfs ())#disk_has_backing_file overlay_file) then
> + if not ((open_guestfs ())#disk_has_backing_file overlay_file) then
> error (f_"internal error: qemu corrupted the overlay file");
>
> (* Give the input module a chance to adjust the parameters
Looks good - ACK.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v
More information about the Libguestfs
mailing list