1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-20 06:50:22 +03:00

qemuAgentGetTimezone: Convert to virTypedParamList

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2025-02-26 14:42:03 +01:00
parent 3d0203709f
commit 52fd07c9f0
4 changed files with 22 additions and 37 deletions

View 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;
}

View 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,

View 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 &&

View 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;
}