From be01dbdb765e3c823faf00959509ca075abf366e Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 16 Mar 2020 09:04:53 +0100 Subject: [PATCH] qemuDomainGetGuestInfo: Suppress non-fatal errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't report cases when the guest information is not requested explicitly and not present either. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_driver.c | 45 +++++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 97c71f913e..570dc059e9 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -22985,6 +22985,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom, int maxparams = 0; g_autofree char *hostname = NULL; unsigned int supportedTypes; + bool report_unsupported = types != 0; int rc; size_t nfs = 0; qemuAgentFSInfoPtr *agentfsinfo = NULL; @@ -23015,37 +23016,31 @@ qemuDomainGetGuestInfo(virDomainPtr dom, * categories were explicitly requested (i.e. 'types' is 0), ignore * 'unsupported' errors and gather as much information as we can. In all * other cases, abort on error. */ - if (supportedTypes & VIR_DOMAIN_GUEST_INFO_USERS) { - rc = qemuAgentGetUsers(agent, params, nparams, &maxparams, true); - if (rc < 0 && !(rc == -2 && types == 0)) - goto exitagent; - } - if (supportedTypes & VIR_DOMAIN_GUEST_INFO_OS) { - rc = qemuAgentGetOSInfo(agent, params, nparams, &maxparams, true); - if (rc < 0 && !(rc == -2 && types == 0)) - goto exitagent; - } - if (supportedTypes & VIR_DOMAIN_GUEST_INFO_TIMEZONE) { - rc = qemuAgentGetTimezone(agent, params, nparams, &maxparams, true); - if (rc < 0 && !(rc == -2 && types == 0)) - goto exitagent; - } - if (supportedTypes & VIR_DOMAIN_GUEST_INFO_HOSTNAME) { - rc = qemuAgentGetHostname(agent, &hostname, true); - if (rc < 0 && !(rc == -2 && types == 0)) - goto exitagent; - } + if (supportedTypes & VIR_DOMAIN_GUEST_INFO_USERS && + qemuAgentGetUsers(agent, params, nparams, &maxparams, report_unsupported) == -1) + goto exitagent; + + if (supportedTypes & VIR_DOMAIN_GUEST_INFO_OS && + qemuAgentGetOSInfo(agent, params, nparams, &maxparams, report_unsupported) == -1) + goto exitagent; + + if (supportedTypes & VIR_DOMAIN_GUEST_INFO_TIMEZONE && + qemuAgentGetTimezone(agent, params, nparams, &maxparams, report_unsupported) == -1) + goto exitagent; + + if (supportedTypes & VIR_DOMAIN_GUEST_INFO_HOSTNAME && + qemuAgentGetHostname(agent, &hostname, report_unsupported) == -1) + goto exitagent; if (hostname && virTypedParamsAddString(params, nparams, &maxparams, "hostname", hostname) < 0) goto exitagent; if (supportedTypes & VIR_DOMAIN_GUEST_INFO_FILESYSTEM) { - rc = qemuAgentGetFSInfo(agent, &agentfsinfo, true); - if (rc < 0) { - if (!(rc == -2 && types == 0)) - goto exitagent; - } else { + rc = qemuAgentGetFSInfo(agent, &agentfsinfo, report_unsupported); + if (rc == -1) { + goto exitagent; + } else if (rc >= 0) { nfs = rc; } } -- GitLab