[PATCH 07/10] qemuAgentGetOSInfo: Convert to virTypedParamList

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

 



Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
 src/qemu/qemu_agent.c  |  9 ++-----
 src/qemu/qemu_agent.h  |  4 +---
 src/qemu/qemu_driver.c |  2 +-
 tests/qemuagenttest.c  | 54 ++++++++++++++++++++----------------------
 4 files changed, 30 insertions(+), 39 deletions(-)

diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index e158b3d7ab..fcfe50dd9e 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -2257,9 +2257,7 @@ qemuAgentGetUsers(qemuAgent *agent,
  */
 int
 qemuAgentGetOSInfo(qemuAgent *agent,
-                   virTypedParameterPtr *params,
-                   int *nparams,
-                   int *maxparams,
+                   virTypedParamList *list,
                    bool report_unsupported)
 {
     g_autoptr(virJSONValue) cmd = NULL;
@@ -2284,10 +2282,7 @@ qemuAgentGetOSInfo(qemuAgent *agent,
     do { \
         const char *result; \
         if ((result = virJSONValueObjectGetString(data, agent_string_))) { \
-            if (virTypedParamsAddString(params, nparams, maxparams, \
-                                        param_string_, result) < 0) { \
-                return -1; \
-            } \
+            virTypedParamListAddString(list, result, param_string_); \
         } \
     } while (0)
     OSINFO_ADD_PARAM("id", "os.id");
diff --git a/src/qemu/qemu_agent.h b/src/qemu/qemu_agent.h
index 3f25f0e5a6..ac2c8506a2 100644
--- a/src/qemu/qemu_agent.h
+++ b/src/qemu/qemu_agent.h
@@ -163,9 +163,7 @@ int qemuAgentGetUsers(qemuAgent *mon,
                       bool report_unsupported);

 int qemuAgentGetOSInfo(qemuAgent *mon,
-                       virTypedParameterPtr *params,
-                       int *nparams,
-                       int *maxparams,
+                       virTypedParamList *list,
                        bool report_unsupported);

 int qemuAgentGetTimezone(qemuAgent *mon,
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 53be46ce0a..201ac89de6 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -19404,7 +19404,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom,
         goto exitagent;

     if (supportedTypes & VIR_DOMAIN_GUEST_INFO_OS &&
-        qemuAgentGetOSInfo(agent, params, nparams, &maxparams, report_unsupported) == -1)
+        qemuAgentGetOSInfo(agent, list, report_unsupported) == -1)
         goto exitagent;

     if (supportedTypes & VIR_DOMAIN_GUEST_INFO_TIMEZONE &&
diff --git a/tests/qemuagenttest.c b/tests/qemuagenttest.c
index 5fd4d70a70..93f88083fe 100644
--- a/tests/qemuagenttest.c
+++ b/tests/qemuagenttest.c
@@ -1191,30 +1191,31 @@ testQemuAgentOSInfo(const void *data)
 {
     virDomainXMLOption *xmlopt = (virDomainXMLOption *)data;
     g_autoptr(qemuMonitorTest) test = qemuMonitorTestNewAgent(xmlopt);
-    virTypedParameterPtr params = NULL;
-    int nparams = 0;
-    int maxparams = 0;
-    int ret = -1;
+    g_autoptr(virTypedParamList) list = virTypedParamListNew();
+    virTypedParameterPtr params;
+    size_t nparams;

     if (!test)
         return -1;

     if (qemuMonitorTestAddAgentSyncResponse(test) < 0)
-        goto cleanup;
+        return -1;

     if (qemuMonitorTestAddItem(test, "guest-get-osinfo",
                                testQemuAgentOSInfoResponse) < 0)
-        goto cleanup;
+        return -1;

     /* get osinfo */
-    if (qemuAgentGetOSInfo(qemuMonitorTestGetAgent(test),
-                           &params, &nparams, &maxparams, true) < 0)
-        goto cleanup;
+    if (qemuAgentGetOSInfo(qemuMonitorTestGetAgent(test), list, true) < 0)
+        return -1;
+
+    if (virTypedParamListFetch(list, &params, &nparams) < 0)
+        return -1;

     if (nparams != 8) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "Expected 8 params, got %d", nparams);
-        goto cleanup;
+                       "Expected 8 params, got %zu", nparams);
+        return -1;
     }
 #define VALIDATE_PARAM(param_name_, expected_) \
     do { \
@@ -1222,12 +1223,12 @@ testQemuAgentOSInfo(const void *data)
         if (virTypedParamsGetString(params, nparams, param_name_, &value_) < 0 || \
             value_ == NULL) { \
             virReportError(VIR_ERR_INTERNAL_ERROR, "missing param '%s'", param_name_); \
-            goto cleanup; \
+            return -1; \
         } \
         if (STRNEQ(value_, expected_)) { \
             virReportError(VIR_ERR_INTERNAL_ERROR, \
                            "Expected name '%s', got '%s'", expected_, value_); \
-            goto cleanup; \
+            return -1; \
         } \
     } while (0)

@@ -1239,24 +1240,25 @@ testQemuAgentOSInfo(const void *data)
     VALIDATE_PARAM("os.kernel-release", "3.10.0-862.14.4.el7.x86_64");
     VALIDATE_PARAM("os.kernel-version", "#1 SMP Wed Sep 26 15:12:11 UTC 2018");
     VALIDATE_PARAM("os.machine", "x86_64");
-    virTypedParamsFree(params, nparams);
-    params = NULL;
-    nparams = 0;
-    maxparams = 0;
+
+    g_clear_pointer(&list, virTypedParamListFree);
+    list = virTypedParamListNew();

     if (qemuMonitorTestAddItem(test, "guest-get-osinfo",
                                testQemuAgentOSInfoResponse2) < 0)
-        goto cleanup;
+        return -1;

     /* get users with domain */
-    if (qemuAgentGetOSInfo(qemuMonitorTestGetAgent(test),
-                           &params, &nparams, &maxparams, true) < 0)
-        goto cleanup;
+    if (qemuAgentGetOSInfo(qemuMonitorTestGetAgent(test), list, true) < 0)
+        return -1;
+
+    if (virTypedParamListFetch(list, &params, &nparams) < 0)
+        return -1;

     if (nparams != 10) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "Expected 10 params, got %d", nparams);
-        goto cleanup;
+                       "Expected 10 params, got %zu", nparams);
+        return -1;
     }

     VALIDATE_PARAM("os.id", "mswindows");
@@ -1270,11 +1272,7 @@ testQemuAgentOSInfo(const void *data)
     VALIDATE_PARAM("os.kernel-version", "6.1");
     VALIDATE_PARAM("os.machine", "x86_64");

-    ret = 0;
-
- cleanup:
-    virTypedParamsFree(params, nparams);
-    return ret;
+    return 0;
 }

 static const char testQemuAgentTimezoneResponse1[] =
-- 
2.48.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