[Libguestfs] [PATCH] v2v: move open_guestfs to Types

Pino Toscano ptoscano at redhat.com
Wed Oct 21 13:53:32 UTC 2015


Move most of open_guestfs to Types, so a common function to open a
Guestfs handle is available.  Since it does not do all the things the
old open_guestfs did, the two operations have been moved to the only
place requiring them.

This function has been placed in Types and not Utils, as will be needed
by other functions in Types; Utils uses Types, so this avoids a circular
dependency.
---
 v2v/types.ml  | 10 ++++++++++
 v2v/types.mli |  5 +++++
 v2v/v2v.ml    | 11 ++---------
 3 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/v2v/types.ml b/v2v/types.ml
index cc417bc..a295172 100644
--- a/v2v/types.ml
+++ b/v2v/types.ml
@@ -18,6 +18,9 @@
 
 open Printf
 
+open Common_gettext.Gettext
+open Common_utils
+
 (* Types.  See types.mli for documentation. *)
 
 type source = {
@@ -379,6 +382,13 @@ let string_of_target_buses buses =
   string_of_target_bus_slots "ide" buses.target_ide_bus ^
   string_of_target_bus_slots "scsi" buses.target_scsi_bus
 
+let open_guestfs () =
+  (* Open the guestfs handle. *)
+  let g = new Guestfs.guestfs () in
+  if trace () then g#set_trace true;
+  if verbose () then g#set_verbose true;
+  g
+
 class virtual input = object
   method virtual as_options : string
   method virtual source : unit -> source
diff --git a/v2v/types.mli b/v2v/types.mli
index 55fb09a..9e8932e 100644
--- a/v2v/types.mli
+++ b/v2v/types.mli
@@ -253,3 +253,8 @@ type output_allocation = Sparse | Preallocated
 
 type vmtype = Desktop | Server
 (** Type of [--vmtype] option. *)
+
+val open_guestfs : unit -> Guestfs.guestfs
+(* Create a new Guestfs handle, with common options (e.g. debug, tracing)
+ * already set.
+ *)
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 333ece0..88ae409 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -76,6 +76,8 @@ let rec main () =
   );
 
   let g = open_guestfs () in
+  g#set_identifier "v2v";
+  g#set_network true;
   (match conversion_mode with
    | Copying (overlays, _) -> populate_overlays g overlays
    | In_place -> populate_disks g source.s_disks
@@ -284,15 +286,6 @@ and init_targets overlays source output output_format =
 
   output#prepare_targets source targets
 
-and open_guestfs () =
-  (* Open the guestfs handle. *)
-  let g = new G.guestfs () in
-  g#set_identifier "v2v";
-  if trace () then g#set_trace true;
-  if verbose () then g#set_verbose true;
-  g#set_network true;
-  g
-
 and populate_overlays g overlays =
   (* Populate guestfs handle with qcow2 overlays. *)
   List.iter (
-- 
2.1.0




More information about the Libguestfs mailing list