mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
qemu: convert qemuLogOperation to take a qemuDomainLogContextPtr
Instead of writing directly to a log file descriptor, change qemuLogOperation to use qemuDomainLogContextWrite(). Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
@@ -4082,40 +4082,33 @@ qemuPrepareNVRAM(virQEMUDriverConfigPtr cfg,
|
|||||||
static void
|
static void
|
||||||
qemuLogOperation(virDomainObjPtr vm,
|
qemuLogOperation(virDomainObjPtr vm,
|
||||||
const char *msg,
|
const char *msg,
|
||||||
int logfd,
|
virCommandPtr cmd,
|
||||||
virCommandPtr cmd)
|
qemuDomainLogContextPtr logCtxt)
|
||||||
{
|
{
|
||||||
char *timestamp;
|
char *timestamp;
|
||||||
char *logline;
|
|
||||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
int qemuVersion = virQEMUCapsGetVersion(priv->qemuCaps);
|
int qemuVersion = virQEMUCapsGetVersion(priv->qemuCaps);
|
||||||
const char *package = virQEMUCapsGetPackage(priv->qemuCaps);
|
const char *package = virQEMUCapsGetPackage(priv->qemuCaps);
|
||||||
char ebuf[1024];
|
|
||||||
|
|
||||||
if ((timestamp = virTimeStringNow()) == NULL)
|
if ((timestamp = virTimeStringNow()) == NULL)
|
||||||
goto error;
|
goto cleanup;
|
||||||
|
|
||||||
if (virAsprintf(&logline, "%s: %s %s, qemu version: %d.%d.%d%s\n",
|
if (qemuDomainLogContextWrite(logCtxt, "%s: %s %s, qemu version: %d.%d.%d%s\n",
|
||||||
timestamp, msg, VIR_LOG_VERSION_STRING,
|
timestamp, msg, VIR_LOG_VERSION_STRING,
|
||||||
(qemuVersion / 1000000) % 1000, (qemuVersion / 1000) % 1000, qemuVersion % 1000,
|
(qemuVersion / 1000000) % 1000,
|
||||||
package ? package : "") < 0)
|
(qemuVersion / 1000) % 1000,
|
||||||
goto error;
|
qemuVersion % 1000,
|
||||||
|
package ? package : "") < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
if (safewrite(logfd, logline, strlen(logline)) < 0)
|
if (cmd) {
|
||||||
goto error;
|
char *args = virCommandToString(cmd);
|
||||||
|
qemuDomainLogContextWrite(logCtxt, "%s\n", args);
|
||||||
if (cmd)
|
VIR_FREE(args);
|
||||||
virCommandWriteArgLog(cmd, logfd);
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(timestamp);
|
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)
|
VIR_HOOK_SUBOP_BEGIN) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
qemuLogOperation(vm, "starting up", logfile, cmd);
|
qemuLogOperation(vm, "starting up", cmd, logCtxt);
|
||||||
|
|
||||||
qemuDomainObjCheckTaint(driver, vm, logCtxt);
|
qemuDomainObjCheckTaint(driver, vm, logCtxt);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user