mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-30 01:43:23 +00:00
Check for qemu guest agent availability after getting the job
This way checks requiring the job can be done in qemuDomainAgentAvailable.
This commit is contained in:
parent
155ca616eb
commit
c8b80b49f6
@ -1939,16 +1939,16 @@ static int qemuDomainShutdownFlags(virDomainPtr dom, unsigned int flags)
|
||||
if (virDomainShutdownFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
agentForced = agentRequested && !acpiRequested;
|
||||
if (!qemuDomainAgentAvailable(priv, agentForced)) {
|
||||
if (agentForced)
|
||||
goto cleanup;
|
||||
goto endjob;
|
||||
useAgent = false;
|
||||
}
|
||||
|
||||
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!virDomainObjIsActive(vm)) {
|
||||
virReportError(VIR_ERR_OPERATION_INVALID,
|
||||
"%s", _("domain is not running"));
|
||||
@ -2037,9 +2037,7 @@ qemuDomainReboot(virDomainPtr dom, unsigned int flags)
|
||||
priv->agent))
|
||||
useAgent = true;
|
||||
|
||||
if (useAgent && !qemuDomainAgentAvailable(priv, true)) {
|
||||
goto cleanup;
|
||||
} else {
|
||||
if (!useAgent) {
|
||||
#if WITH_YAJL
|
||||
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MONITOR_JSON)) {
|
||||
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NO_SHUTDOWN)) {
|
||||
@ -2060,6 +2058,9 @@ qemuDomainReboot(virDomainPtr dom, unsigned int flags)
|
||||
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (useAgent && !qemuDomainAgentAvailable(priv, true))
|
||||
goto endjob;
|
||||
|
||||
if (!virDomainObjIsActive(vm)) {
|
||||
virReportError(VIR_ERR_OPERATION_INVALID,
|
||||
"%s", _("domain is not running"));
|
||||
@ -17611,12 +17612,12 @@ qemuDomainPMSuspendForDuration(virDomainPtr dom,
|
||||
}
|
||||
}
|
||||
|
||||
if (!qemuDomainAgentAvailable(priv, true))
|
||||
goto cleanup;
|
||||
|
||||
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!qemuDomainAgentAvailable(priv, true))
|
||||
goto endjob;
|
||||
|
||||
if (!virDomainObjIsActive(vm)) {
|
||||
virReportError(VIR_ERR_OPERATION_INVALID,
|
||||
"%s", _("domain is not running"));
|
||||
@ -17731,12 +17732,12 @@ qemuDomainQemuAgentCommand(virDomainPtr domain,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!qemuDomainAgentAvailable(priv, true))
|
||||
goto cleanup;
|
||||
|
||||
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!qemuDomainAgentAvailable(priv, true))
|
||||
goto endjob;
|
||||
|
||||
if (!virDomainObjIsActive(vm)) {
|
||||
virReportError(VIR_ERR_OPERATION_INVALID,
|
||||
"%s", _("domain is not running"));
|
||||
@ -17840,12 +17841,12 @@ qemuDomainFSTrim(virDomainPtr dom,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!qemuDomainAgentAvailable(priv, true))
|
||||
goto cleanup;
|
||||
|
||||
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!qemuDomainAgentAvailable(priv, true))
|
||||
goto endjob;
|
||||
|
||||
if (!virDomainObjIsActive(vm)) {
|
||||
virReportError(VIR_ERR_OPERATION_INVALID,
|
||||
"%s", _("domain is not running"));
|
||||
|
Loading…
Reference in New Issue
Block a user