]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuAgentGetTimezone: 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 16a6eaa99802f0768d47c3506067a9f11ae33760..5630782cda43f29a9ae26300b599f4afa254d01e 100644 (file)
@@ -2311,9 +2311,7 @@ qemuAgentGetOSInfo(qemuAgent *agent,
  */
 int
 qemuAgentGetTimezone(qemuAgent *agent,
-                     virTypedParameterPtr *params,
-                     int *nparams,
-                     int *maxparams,
+                     virTypedParamList *list,
                      bool report_unsupported)
 {
     g_autoptr(virJSONValue) cmd = NULL;
@@ -2336,10 +2334,8 @@ qemuAgentGetTimezone(qemuAgent *agent,
         return -1;
     }
 
-    if ((name = virJSONValueObjectGetString(data, "zone")) &&
-        virTypedParamsAddString(params, nparams, maxparams,
-                                "timezone.name", name) < 0)
-        return -1;
+    if ((name = virJSONValueObjectGetString(data, "zone")))
+        virTypedParamListAddString(list, name, "timezone.name");
 
     if ((virJSONValueObjectGetNumberInt(data, "offset", &offset)) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -2347,9 +2343,7 @@ qemuAgentGetTimezone(qemuAgent *agent,
         return -1;
     }
 
-    if (virTypedParamsAddInt(params, nparams, maxparams,
-                             "timezone.offset", offset) < 0)
-        return -1;
+    virTypedParamListAddInt(list, offset, "timezone.offset");
 
     return 0;
 }
index cd17a98d3924c42fba8172a1a44f72f5d616abc6..3f25f0e5a650e87e58fb02d0eefb9330b5800984 100644 (file)
@@ -169,9 +169,7 @@ int qemuAgentGetOSInfo(qemuAgent *mon,
                        bool report_unsupported);
 
 int qemuAgentGetTimezone(qemuAgent *mon,
-                         virTypedParameterPtr *params,
-                         int *nparams,
-                         int *maxparams,
+                         virTypedParamList *list,
                          bool report_unsupported);
 
 void qemuAgentSetResponseTimeout(qemuAgent *mon,
index 0d88f182b874e8c24bbd4ad65d794dc388d85668..53be46ce0af4c0ed5606f745165c50e36c9691e4 100644 (file)
@@ -19408,7 +19408,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom,
         goto exitagent;
 
     if (supportedTypes & VIR_DOMAIN_GUEST_INFO_TIMEZONE &&
-        qemuAgentGetTimezone(agent, params, nparams, &maxparams, report_unsupported) == -1)
+        qemuAgentGetTimezone(agent, list, report_unsupported) == -1)
         goto exitagent;
 
     if (supportedTypes & VIR_DOMAIN_GUEST_INFO_HOSTNAME &&
index 566571cf1107b4bf14e06930b3cdd741e653ea0a..5fd4d70a70a4b9529f164d8fcef2da0ef66bfc87 100644 (file)
@@ -1291,57 +1291,54 @@ testQemuAgentTimezone(const void *data)
 {
     virDomainXMLOption *xmlopt = (virDomainXMLOption *)data;
     g_autoptr(qemuMonitorTest) test = qemuMonitorTestNewAgent(xmlopt);
-    virTypedParameterPtr params = NULL;
-    int nparams = 0;
-    int ret = -1;
 
     if (!test)
         return -1;
 
     if (qemuMonitorTestAddAgentSyncResponse(test) < 0)
-        goto cleanup;
+        return -1;
 
 #define VALIDATE_TIMEZONE(response_, expected_name_, expected_offset_) \
     do { \
-        int maxparams_ = 0; \
+        g_autoptr(virTypedParamList) list = virTypedParamListNew(); \
+        virTypedParameterPtr params; \
+        size_t nparams; \
         const char *name_ = NULL; \
         int offset_; \
         if (qemuMonitorTestAddItem(test, "guest-get-timezone", \
                                    response_) < 0) \
-            goto cleanup; \
-        virTypedParamsFree(params, nparams); \
-        params = NULL; \
-        nparams = 0; \
-        if (qemuAgentGetTimezone(qemuMonitorTestGetAgent(test), \
-                                 &params, &nparams, &maxparams_, true) < 0) \
-            goto cleanup; \
+            return -1; \
+        if (qemuAgentGetTimezone(qemuMonitorTestGetAgent(test), list, true) < 0) \
+            return -1; \
+        if (virTypedParamListFetch(list, &params, &nparams) < 0) \
+            return -1; \
         if (nparams != 2) { \
             virReportError(VIR_ERR_INTERNAL_ERROR, \
-                           "Expected 2 params, got %d", nparams); \
-            goto cleanup; \
+                           "Expected 2 params, got %zu", nparams); \
+            return -1; \
         } \
         if (virTypedParamsGetString(params, nparams, \
                                     "timezone.name", &name_) < 0) { \
             virReportError(VIR_ERR_INTERNAL_ERROR, "missing param '%s'", \
                            "tiemzone.name"); \
-            goto cleanup; \
+            return -1; \
         } \
         if (STRNEQ(name_, expected_name_)) { \
             virReportError(VIR_ERR_INTERNAL_ERROR, \
                            "Expected name '%s', got '%s'", expected_name_, name_); \
-            goto cleanup; \
+            return -1; \
         } \
         if (virTypedParamsGetInt(params, nparams, \
                                  "timezone.offset", &offset_) < 0) { \
             virReportError(VIR_ERR_INTERNAL_ERROR, "missing param '%s'", \
                            "tiemzone.offset"); \
-            goto cleanup; \
+            return -1; \
         } \
         if (offset_ != expected_offset_) { \
             virReportError(VIR_ERR_INTERNAL_ERROR, \
                            "Expected offset '%i', got '%i'", offset_, \
                            expected_offset_); \
-            goto cleanup; \
+            return -1; \
         } \
     } while (0)
 
@@ -1350,11 +1347,7 @@ testQemuAgentTimezone(const void *data)
     VALIDATE_TIMEZONE(testQemuAgentTimezoneResponse3, "NDT", -9000);
     VALIDATE_TIMEZONE(testQemuAgentTimezoneResponse4, "PDT", -25200);
 
-    ret = 0;
-
- cleanup:
-    virTypedParamsFree(params, nparams);
-    return ret;
+    return 0;
 }