[PATCH v2] vz: get additional error information from job correctly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Function logPrlEventErrorHelper is made void and now it only prints
an information (if any) from event.
If there is no addition information (i.e. an error returned when
asked), we don't rewrite original error code with secondary one.

Signed-off-by: Maxim Nestratov <mnestratov@xxxxxxxxxxxxx>
---
 src/vz/vz_sdk.c | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
index 99c5d4a..54c56e9 100644
--- a/src/vz/vz_sdk.c
+++ b/src/vz/vz_sdk.c
@@ -99,19 +99,13 @@ logPrlErrorHelper(PRL_RESULT err, const char *filename,
         }                                          \
     } while (0)
 
-static PRL_RESULT
+static void
 logPrlEventErrorHelper(PRL_HANDLE event, const char *filename,
                        const char *funcname, size_t linenr)
 {
-    PRL_RESULT ret, retCode;
     char *msg1 = NULL, *msg2 = NULL;
     PRL_UINT32 len = 0;
-    int err = -1;
 
-    if ((ret = PrlEvent_GetErrCode(event, &retCode))) {
-        logPrlError(ret);
-        return ret;
-    }
 
     PrlEvent_GetErrString(event, PRL_TRUE, PRL_FALSE, NULL, &len);
 
@@ -130,13 +124,9 @@ logPrlEventErrorHelper(PRL_HANDLE event, const char *filename,
     virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_INTERNAL_ERROR,
                          filename, funcname, linenr,
                          _("%s %s"), msg1, msg2);
-    err = 0;
-
  cleanup:
     VIR_FREE(msg1);
     VIR_FREE(msg2);
-
-    return err;
 }
 
 static PRL_RESULT
@@ -146,12 +136,12 @@ getJobResultHelper(PRL_HANDLE job, unsigned int timeout, PRL_HANDLE *result,
 {
     PRL_RESULT ret, retCode;
 
-    if ((ret = PrlJob_Wait(job, timeout))) {
+    if (PRL_FAILED(ret = PrlJob_Wait(job, timeout))) {
         logPrlErrorHelper(ret, filename, funcname, linenr);
         goto cleanup;
     }
 
-    if ((ret = PrlJob_GetRetCode(job, &retCode))) {
+    if (PRL_FAILED(ret = PrlJob_GetRetCode(job, &retCode))) {
         logPrlErrorHelper(ret, filename, funcname, linenr);
         goto cleanup;
     }
@@ -159,17 +149,26 @@ getJobResultHelper(PRL_HANDLE job, unsigned int timeout, PRL_HANDLE *result,
     if (retCode) {
         PRL_HANDLE err_handle;
 
+        ret = retCode;
+
         /* Sometimes it's possible to get additional error info. */
-        if ((ret = PrlJob_GetError(job, &err_handle))) {
+        if (PRL_FAILED(retCode = PrlJob_GetError(job, &err_handle))) {
             logPrlErrorHelper(ret, filename, funcname, linenr);
+            if (PRL_ERR_NO_DATA != retCode)
+                logPrlError(retCode);
             goto cleanup;
         }
 
-        if (logPrlEventErrorHelper(err_handle, filename, funcname, linenr))
-            logPrlErrorHelper(retCode, filename, funcname, linenr);
+        if (PRL_FAILED(retCode = PrlEvent_GetErrCode(err_handle, &retCode))) {
+            logPrlErrorHelper(ret, filename, funcname, linenr);
+            if (PRL_ERR_NO_DATA != retCode)
+                logPrlError(retCode);
+            goto cleanup;
+        }
+
+        logPrlEventErrorHelper(err_handle, filename, funcname, linenr);
 
         PrlHandle_Free(err_handle);
-        ret = retCode;
     } else {
         ret = PrlJob_GetResult(job, result);
         if (PRL_FAILED(ret)) {
-- 
2.4.3

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]