From 21e8fc36c6e74120fb9edfcd5d15b13bbf365263 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Wed, 6 May 2015 15:40:15 +0200 Subject: [PATCH] qemuDomainShutdownFlags: check for domain activeness prior to guest presence Running shutdown with mode agent on a shutoff domain gives cryptic error message: virsh # shutdown --mode agent gentoo error: Failed to shutdown domain gentoo error: Guest agent is not responding: QEMU guest agent is not connected After this patch, the error is more clear: virsh # shutdown --mode agent gentoo error: Failed to shutdown domain gentoo error: Requested operation is not valid: domain is not running Reported-by: Martin Kletzander Signed-off-by: Michal Privoznik --- src/qemu/qemu_driver.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d173aa1d0d..537797ea3c 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1990,6 +1990,12 @@ static int qemuDomainShutdownFlags(virDomainPtr dom, unsigned int flags) if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) goto cleanup; + if (!virDomainObjIsActive(vm)) { + virReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("domain is not running")); + goto endjob; + } + agentForced = agentRequested && !acpiRequested; if (!qemuDomainAgentAvailable(vm, agentForced)) { if (agentForced) @@ -1997,12 +2003,6 @@ static int qemuDomainShutdownFlags(virDomainPtr dom, unsigned int flags) useAgent = false; } - if (!virDomainObjIsActive(vm)) { - virReportError(VIR_ERR_OPERATION_INVALID, - "%s", _("domain is not running")); - goto endjob; - } - qemuDomainSetFakeReboot(driver, vm, isReboot); if (useAgent) {