mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-12 15:52:55 +00:00
Introduce new VIR_ERR_AGENT_UNRESPONSIVE error code
Currently, when guest agent is configured but not responsive (e.g. due to appropriate service not running in the guest) we return VIR_ERR_INTERNAL_ERROR. Both are wrong. Therefore we need to introduce new error code to reflect this case.
This commit is contained in:
parent
1fe6d219cb
commit
aa3e8bd4ca
@ -283,6 +283,8 @@ typedef enum {
|
||||
VIR_ERR_OPERATION_UNSUPPORTED = 84, /* The requested operation is not
|
||||
supported */
|
||||
VIR_ERR_SSH = 85, /* error in ssh transport driver */
|
||||
VIR_ERR_AGENT_UNRESPONSIVE = 86, /* guest agent is unresponsive,
|
||||
not running or not usable */
|
||||
} virErrorNumber;
|
||||
|
||||
/**
|
||||
|
@ -880,7 +880,7 @@ static int qemuAgentSend(qemuAgentPtr mon,
|
||||
if ((timeout && virCondWaitUntil(&mon->notify, &mon->lock, then) < 0) ||
|
||||
(!timeout && virCondWait(&mon->notify, &mon->lock) < 0)) {
|
||||
if (errno == ETIMEDOUT) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
|
||||
_("Guest agent not available for now"));
|
||||
ret = -2;
|
||||
} else {
|
||||
|
@ -1734,8 +1734,9 @@ static int qemuDomainShutdownFlags(virDomainPtr dom, unsigned int flags) {
|
||||
|
||||
if (useAgent) {
|
||||
if (priv->agentError) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("QEMU guest agent is not available due to an error"));
|
||||
virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
|
||||
_("QEMU guest agent is not "
|
||||
"available due to an error"));
|
||||
goto cleanup;
|
||||
}
|
||||
if (!priv->agent) {
|
||||
@ -1815,8 +1816,9 @@ qemuDomainReboot(virDomainPtr dom, unsigned int flags)
|
||||
|
||||
if (useAgent) {
|
||||
if (priv->agentError) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("QEMU guest agent is not available due to an error"));
|
||||
virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
|
||||
_("QEMU guest agent is not "
|
||||
"available due to an error"));
|
||||
goto cleanup;
|
||||
}
|
||||
if (!priv->agent) {
|
||||
@ -10391,7 +10393,7 @@ qemuDomainSnapshotFSFreeze(struct qemud_driver *driver,
|
||||
int freezed;
|
||||
|
||||
if (priv->agentError) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
|
||||
_("QEMU guest agent is not "
|
||||
"available due to an error"));
|
||||
return -1;
|
||||
@ -10419,7 +10421,7 @@ qemuDomainSnapshotFSThaw(struct qemud_driver *driver,
|
||||
|
||||
if (priv->agentError) {
|
||||
if (report)
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
|
||||
_("QEMU guest agent is not "
|
||||
"available due to an error"));
|
||||
return -1;
|
||||
@ -13708,8 +13710,9 @@ qemuDomainPMSuspendForDuration(virDomainPtr dom,
|
||||
}
|
||||
|
||||
if (priv->agentError) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("QEMU guest agent is not available due to an error"));
|
||||
virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
|
||||
_("QEMU guest agent is not "
|
||||
"available due to an error"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -13849,8 +13852,9 @@ qemuDomainAgentCommand(virDomainPtr domain,
|
||||
}
|
||||
|
||||
if (priv->agentError) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("QEMU guest agent is not available due to an error"));
|
||||
virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s",
|
||||
_("QEMU guest agent is not "
|
||||
"available due to an error"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
@ -1199,6 +1199,13 @@ virErrorMsg(virErrorNumber error, const char *info)
|
||||
errmsg = _("SSH transport error");
|
||||
else
|
||||
errmsg = _("SSH transport error: %s");
|
||||
break;
|
||||
case VIR_ERR_AGENT_UNRESPONSIVE:
|
||||
if (info == NULL)
|
||||
errmsg = _("Guest agent is not responding");
|
||||
else
|
||||
errmsg = _("Guest agent is not responding: %s");
|
||||
break;
|
||||
}
|
||||
return errmsg;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user