qemuDomainObjPrivatePtr priv;
bool useAgent = false, agentRequested, acpiRequested;
bool isReboot = false;
+ bool agentForced;
int agentFlag = QEMU_AGENT_SHUTDOWN_POWERDOWN;
virCheckFlags(VIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN |
if (virDomainShutdownFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
- if (priv->agentError) {
- if (agentRequested && !acpiRequested) {
- virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
- _("QEMU guest agent is not "
- "available due to an error"));
+ agentForced = agentRequested && !acpiRequested;
+ if (!qemuDomainAgentAvailable(priv, agentForced)) {
+ if (agentForced)
goto cleanup;
- } else {
- useAgent = false;
- }
- }
-
- if (!priv->agent) {
- if (agentRequested && !acpiRequested) {
- virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
- _("QEMU guest agent is not configured"));
- goto cleanup;
- } else {
- useAgent = false;
- }
+ useAgent = false;
}
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
priv->agent))
useAgent = true;
- if (useAgent) {
- if (priv->agentError) {
- virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
- _("QEMU guest agent is not "
- "available due to an error"));
- goto cleanup;
- }
- if (!priv->agent) {
- virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
- _("QEMU guest agent is not configured"));
- goto cleanup;
- }
+ if (useAgent && !qemuDomainAgentAvailable(priv, true)) {
+ goto cleanup;
} else {
#if WITH_YAJL
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MONITOR_JSON)) {
goto endjob;
}
- if (priv->agentError) {
- virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
- _("QEMU guest agent is not "
- "available due to an error"));
- goto endjob;
- }
-
- if (!priv->agent) {
- virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
- _("QEMU guest agent is not configured"));
+ if (!qemuDomainAgentAvailable(priv, true))
goto endjob;
- }
if (nvcpus > vm->def->vcpus) {
virReportError(VIR_ERR_INVALID_ARG,
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0)
goto cleanup;
- if (priv->agentError) {
- virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
- _("QEMU guest agent is not "
- "available due to an error"));
- goto endjob;
- }
-
- if (!priv->agent) {
- virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
- _("QEMU guest agent is not configured"));
+ if (!qemuDomainAgentAvailable(priv, true))
goto endjob;
- }
if (!virDomainObjIsActive(vm)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
qemuDomainObjPrivatePtr priv = vm->privateData;
int freezed;
- if (priv->agentError) {
- virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
- _("QEMU guest agent is not "
- "available due to an error"));
- return -1;
- }
- if (!priv->agent) {
- virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
- _("QEMU guest agent is not configured"));
+ if (!qemuDomainAgentAvailable(priv, true))
return -1;
- }
qemuDomainObjEnterAgent(vm);
freezed = qemuAgentFSFreeze(priv->agent);
int thawed;
virErrorPtr err = NULL;
- if (priv->agentError) {
- if (report)
- virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
- _("QEMU guest agent is not "
- "available due to an error"));
- return -1;
- }
- if (!priv->agent) {
- if (report)
- virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
- _("QEMU guest agent is not configured"));
+ if (!qemuDomainAgentAvailable(priv, report))
return -1;
- }
qemuDomainObjEnterAgent(vm);
if (!report)
}
}
- if (priv->agentError) {
- virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
- _("QEMU guest agent is not "
- "available due to an error"));
- goto cleanup;
- }
-
- if (!priv->agent) {
- virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
- _("QEMU guest agent is not configured"));
+ if (!qemuDomainAgentAvailable(priv, true))
goto cleanup;
- }
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
goto cleanup;
goto cleanup;
}
- if (priv->agentError) {
- virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
- _("QEMU guest agent is not "
- "available due to an error"));
- goto cleanup;
- }
-
- if (!priv->agent) {
- virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
- _("QEMU guest agent is not configured"));
+ if (!qemuDomainAgentAvailable(priv, true))
goto cleanup;
- }
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
goto cleanup;
goto cleanup;
}
- if (!priv->agent) {
- virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s",
- _("QEMU guest agent is not configured"));
- goto cleanup;
- }
-
- if (priv->agentError) {
- virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
- _("QEMU guest agent is not "
- "available due to an error"));
+ if (!qemuDomainAgentAvailable(priv, true))
goto cleanup;
- }
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
goto cleanup;