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:
parent
3d0203709f
commit
52fd07c9f0
@ -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;
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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 &&
|
||||
|
@ -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), \
|
||||
¶ms, &nparams, &maxparams_, true) < 0) \
|
||||
goto cleanup; \
|
||||
return -1; \
|
||||
if (qemuAgentGetTimezone(qemuMonitorTestGetAgent(test), list, true) < 0) \
|
||||
return -1; \
|
||||
if (virTypedParamListFetch(list, ¶ms, &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;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user