[PATCH 03/10] hypervisor: drop qemu specific args in domainLogContextNew

Praveen K Paladugu posted 10 patches 2 days, 11 hours ago
There is a newer version of this series
[PATCH 03/10] hypervisor: drop qemu specific args in domainLogContextNew
Posted by Praveen K Paladugu 2 days, 11 hours ago
Drop Qemu specific arguments from domainLogContextNew and replace them
with hypervisor agnostic ones.

Signed-off-by: Praveen K Paladugu <praveenkpaladugu@gmail.com>
---
 src/hypervisor/domain_logcontext.c | 20 ++++++++++++--------
 src/hypervisor/domain_logcontext.h |  8 ++++++--
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/src/hypervisor/domain_logcontext.c b/src/hypervisor/domain_logcontext.c
index 3776d68ab9..41d1bbdf64 100644
--- a/src/hypervisor/domain_logcontext.c
+++ b/src/hypervisor/domain_logcontext.c
@@ -23,6 +23,8 @@
 #include "virlog.h"
 #include "virstring.h"
 #include "virutil.h"
+#include "virfile.h"
+#include "virerror.h"
 
 #include <fcntl.h>
 
@@ -78,26 +80,28 @@ domainLogContextFinalize(GObject *object)
 
 
 domainLogContext *
-domainLogContextNew(virQEMUDriver *driver,
+domainLogContextNew(bool stdioLogD,
+                    char *logDir,
+                    const char *driver_name,
                     virDomainObj *vm,
+                    bool privileged,
                     const char *basename)
 {
-    g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
     domainLogContext *ctxt = DOMAIN_LOG_CONTEXT(g_object_new(DOMAIN_TYPE_LOG_CONTEXT, NULL));
 
-    VIR_DEBUG("Context new %p stdioLogD=%d", ctxt, cfg->stdioLogD);
+    VIR_DEBUG("Context new %p stdioLogD=%d", ctxt, stdioLogD);
     ctxt->writefd = -1;
     ctxt->readfd = -1;
 
-    ctxt->path = g_strdup_printf("%s/%s.log", cfg->logDir, basename);
+    ctxt->path = g_strdup_printf("%s/%s.log", logDir, basename);
 
-    if (cfg->stdioLogD) {
-        ctxt->manager = virLogManagerNew(driver->privileged);
+    if (stdioLogD) {
+        ctxt->manager = virLogManagerNew(privileged);
         if (!ctxt->manager)
             goto error;
 
         ctxt->writefd = virLogManagerDomainOpenLogFile(ctxt->manager,
-                                                       "qemu",
+                                                       driver_name,
                                                        vm->def->uuid,
                                                        vm->def->name,
                                                        ctxt->path,
@@ -121,7 +125,7 @@ domainLogContextNew(virQEMUDriver *driver,
         /* For unprivileged startup we must truncate the file since
          * we can't rely on logrotate. We don't use O_TRUNC since
          * it is better for SELinux policy if we truncate afterwards */
-        if (!driver->privileged &&
+        if (!privileged &&
             ftruncate(ctxt->writefd, 0) < 0) {
             virReportSystemError(errno, _("failed to truncate %1$s"),
                                  ctxt->path);
diff --git a/src/hypervisor/domain_logcontext.h b/src/hypervisor/domain_logcontext.h
index 8bb7c3d217..07c93fcf65 100644
--- a/src/hypervisor/domain_logcontext.h
+++ b/src/hypervisor/domain_logcontext.h
@@ -19,14 +19,18 @@
 #pragma once
 
 #include <glib-object.h>
-#include "qemu_conf.h"
 #include "logging/log_manager.h"
+#include "virconftypes.h"
+#include "domain_conf.h"
 
 #define DOMAIN_TYPE_LOG_CONTEXT domain_log_context_get_type()
 G_DECLARE_FINAL_TYPE(domainLogContext, domain_log_context, DOMAIN, LOG_CONTEXT, GObject);
 
-domainLogContext *domainLogContextNew(virQEMUDriver *driver,
+domainLogContext *domainLogContextNew(bool stdioLogD,
+                                      char *logDir,
+                                      const char *driver_name,
                                       virDomainObj *vm,
+                                      bool privileged,
                                       const char *basename);
 int domainLogContextWrite(domainLogContext *ctxt,
                           const char *fmt, ...) G_GNUC_PRINTF(2, 3);
-- 
2.47.0