[Libguestfs] [PATCH] v2v: ova: Make OVA directory public readable to work around libvirt bug (RHBZ#1375157).

Richard W.M. Jones rjones at redhat.com
Mon Sep 12 10:53:26 UTC 2016


Only do this if running as root and if the backend is set
to libvirt.
---
 v2v/input_ova.ml | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/v2v/input_ova.ml b/v2v/input_ova.ml
index 4f848e2..bb9cb1b 100644
--- a/v2v/input_ova.ml
+++ b/v2v/input_ova.ml
@@ -104,6 +104,19 @@ object
     (* Exploded path must be absolute (RHBZ#1155121). *)
     let exploded = absolute_path exploded in
 
+    (* If virt-v2v is running as root, and the backend is libvirt, then
+     * we have to chmod the directory to 0755 and files to 0644
+     * so it is readable by qemu.qemu.  This is libvirt bug RHBZ#890291.
+     *)
+    if Unix.geteuid () = 0 then (
+      let libguestfs_backend = (open_guestfs ())#get_backend () in
+      if libguestfs_backend = "libvirt" then (
+        warning (f_"making OVA directory public readable to workaround libvirt bug https://bugzilla.redhat.com/890291");
+        let cmd = [ "chmod"; "-R"; "go=u,go-w"; exploded ] in
+        ignore (run_command cmd)
+      )
+    );
+
     (* Find files in [dir] ending with [ext]. *)
     let find_files dir ext =
       let rec loop = function
-- 
2.7.4




More information about the Libguestfs mailing list