mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
qemuAgentGetTimezone: expose 'report_unsupported' argument
Use qemuAgentCommandFull so that callers of qemuAgentGetTimezone can suppress error reports if the function is not supported by the guest agent. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
d8ac171718
commit
b126477685
@ -2458,29 +2458,30 @@ qemuAgentGetOSInfo(qemuAgentPtr agent,
|
||||
}
|
||||
|
||||
/* Returns: 0 on success
|
||||
* -2 when agent command is not supported by the agent
|
||||
* -1 otherwise
|
||||
* -2 when agent command is not supported by the agent and
|
||||
* 'report_unsupported' is false (libvirt error is not reported)
|
||||
* -1 otherwise (libvirt error is reported)
|
||||
*/
|
||||
int
|
||||
qemuAgentGetTimezone(qemuAgentPtr agent,
|
||||
virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams)
|
||||
int *maxparams,
|
||||
bool report_unsupported)
|
||||
{
|
||||
g_autoptr(virJSONValue) cmd = NULL;
|
||||
g_autoptr(virJSONValue) reply = NULL;
|
||||
virJSONValuePtr data = NULL;
|
||||
const char *name;
|
||||
int offset;
|
||||
int rc;
|
||||
|
||||
if (!(cmd = qemuAgentMakeCommand("guest-get-timezone", NULL)))
|
||||
return -1;
|
||||
|
||||
if (qemuAgentCommand(agent, cmd, &reply, agent->timeout) < 0) {
|
||||
if (qemuAgentErrorCommandUnsupported(reply))
|
||||
return -2;
|
||||
return -1;
|
||||
}
|
||||
if ((rc = qemuAgentCommandFull(agent, cmd, &reply, agent->timeout,
|
||||
report_unsupported)) < 0)
|
||||
return rc;
|
||||
|
||||
if (!(data = virJSONValueObjectGetObject(reply, "return"))) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
|
@ -163,7 +163,8 @@ int qemuAgentGetOSInfo(qemuAgentPtr mon,
|
||||
int qemuAgentGetTimezone(qemuAgentPtr mon,
|
||||
virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams);
|
||||
int *maxparams,
|
||||
bool report_unsupported);
|
||||
|
||||
void qemuAgentSetResponseTimeout(qemuAgentPtr mon,
|
||||
int timeout);
|
||||
|
@ -23026,7 +23026,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom,
|
||||
goto exitagent;
|
||||
}
|
||||
if (supportedTypes & VIR_DOMAIN_GUEST_INFO_TIMEZONE) {
|
||||
rc = qemuAgentGetTimezone(agent, params, nparams, &maxparams);
|
||||
rc = qemuAgentGetTimezone(agent, params, nparams, &maxparams, true);
|
||||
if (rc < 0 && !(rc == -2 && types == 0))
|
||||
goto exitagent;
|
||||
}
|
||||
|
@ -1244,7 +1244,7 @@ testQemuAgentTimezone(const void *data)
|
||||
response_) < 0) \
|
||||
goto cleanup; \
|
||||
if (qemuAgentGetTimezone(qemuMonitorTestGetAgent(test), \
|
||||
¶ms_, &nparams_, &maxparams_) < 0) \
|
||||
¶ms_, &nparams_, &maxparams_, true) < 0) \
|
||||
goto cleanup; \
|
||||
if (nparams_ != 2) { \
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, \
|
||||
|
Loading…
Reference in New Issue
Block a user