[Libguestfs] [PATCH v5 1/7] v2v: require libvirt

Pino Toscano ptoscano at redhat.com
Mon May 20 11:56:12 UTC 2019


While there are input modes that do not use libvirt, making libvirt
mandatory for virt-v2v slightly simplifies the code now, and allow for
further improvements/integration with libvirt later on.
---
 Makefile.am           |  2 ++
 v2v/Makefile.am       | 20 ++++++--------------
 v2v/libvirt_utils-c.c | 22 ----------------------
 v2v/v2v.ml            | 12 +++---------
 4 files changed, 11 insertions(+), 45 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 0067d7b7b..cf9ca512e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -169,10 +169,12 @@ SUBDIRS += get-kernel
 SUBDIRS += resize
 SUBDIRS += sparsify
 SUBDIRS += sysprep
+if HAVE_LIBVIRT
 SUBDIRS += v2v
 if HAVE_OCAML_PKG_LIBVIRT
 SUBDIRS += v2v/test-harness
 endif
+endif
 if HAVE_FUSE
 SUBDIRS += dib
 endif
diff --git a/v2v/Makefile.am b/v2v/Makefile.am
index 1c37d20b4..52b61bbe3 100644
--- a/v2v/Makefile.am
+++ b/v2v/Makefile.am
@@ -423,6 +423,7 @@ stamp-virt-v2v-support.pod: virt-v2v-support.pod
 TESTS_ENVIRONMENT = $(top_builddir)/run --test
 
 TESTS = \
+	test-v2v-copy-to-local.sh \
 	test-v2v-docs.sh \
 	test-v2v-python-syntax.sh \
 	test-v2v-i-ova-bad-sha1.sh \
@@ -442,29 +443,19 @@ TESTS = \
 	test-v2v-o-vdsm-oo-query.sh \
 	test-v2v-bad-networks-and-bridges.sh
 
-if HAVE_LIBVIRT
-TESTS += \
-	test-v2v-copy-to-local.sh
-endif
-
 if HAVE_OCAML_PKG_OUNIT
 TESTS += v2v_unit_tests var_expander_tests
 endif
 
 if ENABLE_APPLIANCE
-TESTS += \
-	test-v2v-i-ova.sh \
-	test-v2v-i-disk.sh \
-	test-v2v-machine-readable.sh \
-	test-v2v-virtio-win-iso.sh \
-	test-v2v-windows-conversion.sh
-
-if HAVE_LIBVIRT
 TESTS += \
 	test-v2v-cdrom.sh \
 	test-v2v-floppy.sh \
+	test-v2v-i-disk.sh \
+	test-v2v-i-ova.sh \
 	test-v2v-in-place.sh \
 	test-v2v-mac.sh \
+	test-v2v-machine-readable.sh \
 	test-v2v-networks-and-bridges.sh \
 	test-v2v-no-copy.sh \
 	test-v2v-o-glance.sh \
@@ -482,9 +473,10 @@ TESTS += \
 	test-v2v-print-estimate.sh \
 	test-v2v-print-source.sh \
 	test-v2v-sound.sh \
+	test-v2v-virtio-win-iso.sh \
+	test-v2v-windows-conversion.sh
 	$(SLOW_TESTS) \
 	$(ROOT_TESTS)
-endif
 endif ENABLE_APPLIANCE
 
 # The VMDK file is used for some -i ova tests.
diff --git a/v2v/libvirt_utils-c.c b/v2v/libvirt_utils-c.c
index 0e365eac7..5ca0d5363 100644
--- a/v2v/libvirt_utils-c.c
+++ b/v2v/libvirt_utils-c.c
@@ -35,18 +35,14 @@
 #include <caml/memory.h>
 #include <caml/mlvalues.h>
 
-#ifdef HAVE_LIBVIRT
 #include <libvirt/libvirt.h>
 #include <libvirt/virterror.h>
-#endif
 
 #include "guestfs.h"
 #include "guestfs-utils.h"
 
 #pragma GCC diagnostic ignored "-Wmissing-prototypes"
 
-#ifdef HAVE_LIBVIRT
-
 #define ERROR_MESSAGE_LEN 512
 
 static void
@@ -519,21 +515,3 @@ v2v_libvirt_get_version (value unitv)
 
   CAMLreturn (rv);
 }
-
-#else /* !HAVE_LIBVIRT */
-
-#define NO_LIBVIRT(proto)                                               \
-  proto __attribute__((noreturn));                                      \
-  proto                                                                 \
-  {                                                                     \
-    caml_invalid_argument ("virt-v2v was compiled without libvirt support"); \
-  }
-
-NO_LIBVIRT (value v2v_dumpxml (value connv, value domv))
-NO_LIBVIRT (value v2v_pool_dumpxml (value connv, value poolv))
-NO_LIBVIRT (value v2v_vol_dumpxml (value connv, value poolnamev, value volnamev))
-NO_LIBVIRT (value v2v_capabilities (value connv, value unitv))
-NO_LIBVIRT (value v2v_domain_exists (value connv, value domnamev))
-NO_LIBVIRT (value v2v_libvirt_get_version (value unitv))
-
-#endif /* !HAVE_LIBVIRT */
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 277d8f2c7..c056aa787 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -59,16 +59,10 @@ let rec main () =
         prog Guestfs_config.package_name Guestfs_config.package_version_full
         Guestfs_config.host_cpu;
 
-  (* Print the libvirt version if debugging.  Note that if
-   * we're configured --without-libvirt, then this will throw
-   * an exception, but some conversions should still be possible,
-   * hence the try block.
-   *)
+  (* Print the libvirt version if debugging. *)
   if verbose () then (
-    try
-      let major, minor, release = Libvirt_utils.libvirt_get_version () in
-      debug "libvirt version: %d.%d.%d" major minor release
-    with _ -> ()
+    let major, minor, release = Libvirt_utils.libvirt_get_version () in
+    debug "libvirt version: %d.%d.%d" major minor release
   );
 
   (* Perform pre-flight checks on the input and output objects. *)
-- 
2.21.0




More information about the Libguestfs mailing list