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
Richard W.M. Jones
2015-Oct-21 18:32 UTC
Re: [Libguestfs] [PATCH] v2v: move open_guestfs to Types
On Wed, Oct 21, 2015 at 03:53:32PM +0200, Pino Toscano wrote:> 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.ACK. Rich.> 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 > > _______________________________________________ > Libguestfs mailing list > Libguestfs@redhat.com > https://www.redhat.com/mailman/listinfo/libguestfs-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top
Possibly Parallel Threads
- [PATCH v3 10/13] v2v: factor out opening and populating guestfs handle
- [PATCH 4/4] mllib, v2v: Allow open_guestfs to set the handle identifier.
- [PATCH] v2v: use open_guestfs everywhere
- Re: [PATCH] v2v: use open_guestfs everywhere
- [PATCH v4 0/3] v2v: add --in-place mode