]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuAgentGetOSInfo: Convert to virTypedParamList
authorPeter Krempa <pkrempa@redhat.com>
Wed, 26 Feb 2025 13:42:03 +0000 (14:42 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 3 Mar 2025 14:08:20 +0000 (15:08 +0100)
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_agent.c
src/qemu/qemu_agent.h
src/qemu/qemu_driver.c
tests/qemuagenttest.c

index 5630782cda43f29a9ae26300b599f4afa254d01e..add6d2d4d3006472b4642749dac34fca72b9eec5 100644 (file)
@@ -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");
index 3f25f0e5a650e87e58fb02d0eefb9330b5800984..ac2c8506a2fd88ad7152f98c8111fced07d8c01f 100644 (file)
@@ -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,
index 53be46ce0af4c0ed5606f745165c50e36c9691e4..201ac89de65d49bafb117f24aeac46cd3460dee1 100644 (file)
@@ -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 &&
index 5fd4d70a70a4b9529f164d8fcef2da0ef66bfc87..93f88083fe2c4ff44326375bafba9fe33699672f 100644 (file)
@@ -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[] =