From 905d98c127a145a8dbc490eb3c2e93705889ef2a Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 10 Nov 2015 20:10:44 +0000 Subject: [PATCH] mllib, v2v: Allow open_guestfs to set the handle identifier. Extend open_guestfs to take an optional ?identifier parameter. Use this parameter in virt-v2v which is currently the only place where we use the handle identifier. --- mllib/common_utils.ml | 3 ++- mllib/common_utils.mli | 2 +- v2v/output_rhev.ml | 3 +-- v2v/output_vdsm.ml | 3 +-- v2v/v2v.ml | 3 +-- v2v/windows.ml | 3 +-- 6 files changed, 7 insertions(+), 10 deletions(-) diff --git a/mllib/common_utils.ml b/mllib/common_utils.ml index 52079d29c..13e9256e0 100644 --- a/mllib/common_utils.ml +++ b/mllib/common_utils.ml @@ -363,10 +363,11 @@ let info fs = (* Common function to create a new Guestfs handle, with common options * (e.g. debug, tracing) already set. *) -let open_guestfs () = +let open_guestfs ?identifier () = let g = new Guestfs.guestfs () in if trace () then g#set_trace true; if verbose () then g#set_verbose true; + may g#set_identifier identifier; g (* All the OCaml virt-* programs use this wrapper to catch exceptions diff --git a/mllib/common_utils.mli b/mllib/common_utils.mli index d8f63d53d..44b8c932e 100644 --- a/mllib/common_utils.mli +++ b/mllib/common_utils.mli @@ -152,7 +152,7 @@ val warning : ('a, unit, string, unit) format4 -> 'a val info : ('a, unit, string, unit) format4 -> 'a (** Standard info function. Note: Use full sentences for this. *) -val open_guestfs : unit -> Guestfs.guestfs +val open_guestfs : ?identifier:string -> unit -> Guestfs.guestfs (** Common function to create a new Guestfs handle, with common options (e.g. debug, tracing) already set. *) diff --git a/v2v/output_rhev.ml b/v2v/output_rhev.ml index 2878e139f..2b8d9891b 100644 --- a/v2v/output_rhev.ml +++ b/v2v/output_rhev.ml @@ -262,8 +262,7 @@ object ?clustersize path format size = Changeuid.func changeuid_t ( fun () -> - let g = open_guestfs () in - g#set_identifier "rhev_disk_create"; + let g = open_guestfs ~identifier:"rhev_disk_create" () in (* For qcow2, override v2v-supplied compat option, because RHEL 6 * nodes cannot handle qcow2 v3 (RHBZ#1145582). *) diff --git a/v2v/output_vdsm.ml b/v2v/output_vdsm.ml index 079b47fa8..3c667f34f 100644 --- a/v2v/output_vdsm.ml +++ b/v2v/output_vdsm.ml @@ -156,8 +156,7 @@ object method disk_create ?backingfile ?backingformat ?preallocation ?compat ?clustersize path format size = - let g = open_guestfs () in - g#set_identifier "vdsm_disk_create"; + let g = open_guestfs ~identifier:"vdsm_disk_create" () in (* For qcow2, override v2v-supplied compat option, because RHEL 6 * nodes cannot handle qcow2 v3 (RHBZ#1145582). *) diff --git a/v2v/v2v.ml b/v2v/v2v.ml index 7e8b459fa..f01a79070 100644 --- a/v2v/v2v.ml +++ b/v2v/v2v.ml @@ -74,8 +74,7 @@ let rec main () = | In_place -> message (f_"Opening the source VM") ); - let g = open_guestfs () in - g#set_identifier "v2v"; + let g = open_guestfs ~identifier:"v2v" () in g#set_network true; (match conversion_mode with | Copying (overlays, _) -> populate_overlays g overlays diff --git a/v2v/windows.ml b/v2v/windows.ml index d3bc5d9c4..b7447a518 100644 --- a/v2v/windows.ml +++ b/v2v/windows.ml @@ -72,8 +72,7 @@ let rec copy_virtio_drivers g inspect virtio_win driverdir = ) else if is_regular_file virtio_win then ( try - let g2 = open_guestfs () in - g2#set_identifier "virtio_win"; + let g2 = open_guestfs ~identifier:"virtio_win" () in g2#add_drive_opts virtio_win ~readonly:true; g2#launch (); let vio_root = "/" in