]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
qemu: convert qemuLogOperation to take a qemuDomainLogContextPtr
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 12 Nov 2015 13:02:46 +0000 (13:02 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 26 Nov 2015 14:30:15 +0000 (14:30 +0000)
Instead of writing directly to a log file descriptor, change
qemuLogOperation to use qemuDomainLogContextWrite().

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/qemu/qemu_process.c

index 435f5ee4a345a45db7f4b879571bd0708c8f56df..bec62eb591a704d77ea6eddc5f9a7500629afb87 100644 (file)
@@ -4082,40 +4082,33 @@ qemuPrepareNVRAM(virQEMUDriverConfigPtr cfg,
 static void
 qemuLogOperation(virDomainObjPtr vm,
                  const char *msg,
-                 int logfd,
-                 virCommandPtr cmd)
+                 virCommandPtr cmd,
+                 qemuDomainLogContextPtr logCtxt)
 {
     char *timestamp;
-    char *logline;
     qemuDomainObjPrivatePtr priv = vm->privateData;
     int qemuVersion = virQEMUCapsGetVersion(priv->qemuCaps);
     const char *package = virQEMUCapsGetPackage(priv->qemuCaps);
-    char ebuf[1024];
 
     if ((timestamp = virTimeStringNow()) == NULL)
-        goto error;
-
-    if (virAsprintf(&logline, "%s: %s %s, qemu version: %d.%d.%d%s\n",
-                    timestamp, msg, VIR_LOG_VERSION_STRING,
-                    (qemuVersion / 1000000) % 1000, (qemuVersion / 1000) % 1000, qemuVersion % 1000,
-                    package ? package : "") < 0)
-        goto error;
+        goto cleanup;
 
-    if (safewrite(logfd, logline, strlen(logline)) < 0)
-        goto error;
+    if (qemuDomainLogContextWrite(logCtxt, "%s: %s %s, qemu version: %d.%d.%d%s\n",
+                                  timestamp, msg, VIR_LOG_VERSION_STRING,
+                                  (qemuVersion / 1000000) % 1000,
+                                  (qemuVersion / 1000) % 1000,
+                                  qemuVersion % 1000,
+                                  package ? package : "") < 0)
+        goto cleanup;
 
-    if (cmd)
-        virCommandWriteArgLog(cmd, logfd);
+    if (cmd) {
+        char *args = virCommandToString(cmd);
+        qemuDomainLogContextWrite(logCtxt, "%s\n", args);
+        VIR_FREE(args);
+    }
 
  cleanup:
     VIR_FREE(timestamp);
-    VIR_FREE(logline);
-    return;
-
- error:
-    VIR_WARN("Unable to write banner to logfile: %s",
-             virStrerror(errno, ebuf, sizeof(ebuf)));
-    goto cleanup;
 }
 
 
@@ -4778,7 +4771,7 @@ qemuProcessLaunch(virConnectPtr conn,
                              VIR_HOOK_SUBOP_BEGIN) < 0)
         goto cleanup;
 
-    qemuLogOperation(vm, "starting up", logfile, cmd);
+    qemuLogOperation(vm, "starting up", cmd, logCtxt);
 
     qemuDomainObjCheckTaint(driver, vm, logCtxt);