From: Michal Privoznik Date: Wed, 6 May 2015 13:40:15 +0000 (+0200) Subject: qemuDomainShutdownFlags: check for domain activeness prior to guest presence X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=21e8fc36c6e74120fb9edfcd5d15b13bbf365263;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git 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 --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d173aa1d0..537797ea3 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) {