[Pkg-libvirt-commits] [libguestfs] 67/146: p2v: show error dialog if virt-v2v fails (RHBZ#1167601)

Hilko Bengen bengen at moszumanska.debian.org
Sun Mar 29 17:00:34 UTC 2015


This is an automated email from the git hooks/post-receive script.

bengen pushed a commit to branch master
in repository libguestfs.

commit 9b7e35a19cc90729d752c6a61c845b99178d7d3e
Author: John Eckersberg <jeckersb at redhat.com>
Date:   Thu Dec 11 08:38:49 2014 -0500

    p2v: show error dialog if virt-v2v fails (RHBZ#1167601)
    
    Ensure the control connection exits with the same status code as
    virt-v2v, and return an error from start_conversion if virt-v2v
    failed.
    
    (cherry picked from commit 841aa0faf3b1495fd167e32b8105b0bc6faaea60)
---
 p2v/conversion.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/p2v/conversion.c b/p2v/conversion.c
index 9f5a3ad..4ff7ecc 100644
--- a/p2v/conversion.c
+++ b/p2v/conversion.c
@@ -100,6 +100,7 @@ start_conversion (struct config *config,
                   void (*notify_ui) (int type, const char *data))
 {
   int ret = -1;
+  int status;
   size_t i, len;
   size_t nr_disks = guestfs___count_strings (config->disks);
   struct data_conn data_conns[nr_disks];
@@ -276,7 +277,7 @@ start_conversion (struct config *config,
   if (mexp_printf (control_h, " ) | tee %s/virt-v2v-conversion-log.txt",
                    remote_dir) == -1)
     goto printf_fail;
-  if (mexp_printf (control_h, "; exit") == -1)
+  if (mexp_printf (control_h, "; exit $(< %s/status)", remote_dir) == -1)
     goto printf_fail;
   if (mexp_printf (control_h, "\n") == -1)
     goto printf_fail;
@@ -313,8 +314,18 @@ start_conversion (struct config *config,
 
   ret = 0;
  out:
-  if (control_h)
-    mexp_close (control_h);
+  if (control_h) {
+    if ((status = mexp_close (control_h)) == -1) {
+      set_conversion_error ("mexp_close: %m");
+      ret = -1;
+    } else if (ret == 0 &&
+               WIFEXITED (status) &&
+               WEXITSTATUS (status) != 0) {
+      set_conversion_error ("virt-v2v exited with status %d",
+                            WEXITSTATUS (status));
+      ret = -1;
+    }
+  }
   cleanup_data_conns (data_conns, nr_disks);
   return ret;
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-libvirt/libguestfs.git



More information about the Pkg-libvirt-commits mailing list