[PATCH 07/12] qemuAgentGetHostname: expose 'report_unsupported' argument

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

 



Use qemuAgentCommandFull in qemuAgentGetHostname so that we can suppress
error reports if the caller will not require them. Callers for now
always require error reporting but will be fixed later.

Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
 src/qemu/qemu_agent.c  | 22 +++++++++++++++-------
 src/qemu/qemu_agent.h  |  3 ++-
 src/qemu/qemu_driver.c |  4 ++--
 3 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index 07aba2b45d..7de1fe496a 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -1716,24 +1716,32 @@ qemuAgentUpdateCPUInfo(unsigned int nvcpus,
 }


+/**
+ * qemuAgentGetHostname:
+ *
+ * Gets the guest hostname using the guest agent.
+ *
+ * Returns 0 on success and fills @hostname. On error -1 is returned with an
+ * error reported and if '@report_unsupported' is false -2 is returned if the
+ * guest agent does not support the command without reporting an error
+ */
 int
 qemuAgentGetHostname(qemuAgentPtr agent,
-                     char **hostname)
+                     char **hostname,
+                     bool report_unsupported)
 {
     g_autoptr(virJSONValue) cmd = qemuAgentMakeCommand("guest-get-host-name", NULL);
     g_autoptr(virJSONValue) reply = NULL;
     virJSONValuePtr data = NULL;
     const char *result = NULL;
+    int rc;

     if (!cmd)
         return -1;

-    if (qemuAgentCommand(agent, cmd, &reply, agent->timeout) < 0) {
-        if (qemuAgentErrorCommandUnsupported(reply))
-            return -2;
-
-        return -1;
-    }
+    if ((rc = qemuAgentCommandFull(agent, cmd, &reply, agent->timeout,
+                                   report_unsupported)) < 0)
+        return rc;

     if (!(data = virJSONValueObjectGet(reply, "return"))) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
diff --git a/src/qemu/qemu_agent.h b/src/qemu/qemu_agent.h
index 67fe9fcde9..7cf38d7091 100644
--- a/src/qemu/qemu_agent.h
+++ b/src/qemu/qemu_agent.h
@@ -129,7 +129,8 @@ int qemuAgentUpdateCPUInfo(unsigned int nvcpus,

 int
 qemuAgentGetHostname(qemuAgentPtr mon,
-                     char **hostname);
+                     char **hostname,
+                     bool report_unsupported);

 int qemuAgentGetTime(qemuAgentPtr mon,
                      long long *seconds,
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index f9a4cc2758..5e1f3efa7d 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -20128,7 +20128,7 @@ qemuDomainGetHostnameAgent(virQEMUDriverPtr driver,
         goto endjob;

     agent = qemuDomainObjEnterAgent(vm);
-    ignore_value(qemuAgentGetHostname(agent, hostname));
+    ignore_value(qemuAgentGetHostname(agent, hostname, true));
     qemuDomainObjExitAgent(vm, agent);

     ret = 0;
@@ -22922,7 +22922,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom,
             goto exitagent;
     }
     if (supportedTypes & VIR_DOMAIN_GUEST_INFO_HOSTNAME) {
-        rc = qemuAgentGetHostname(agent, &hostname);
+        rc = qemuAgentGetHostname(agent, &hostname, true);
         if (rc < 0 && !(rc == -2 && types == 0))
             goto exitagent;
     }
-- 
2.24.1





[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]

  Powered by Linux