On Mon, Dec 03, 2012 at 14:46:51 +0100, Peter Krempa wrote:
Libvirt's helper API's when called directly don't raise
the error so
that virsh remembers it. Subsequent calls to libvirt API's might reset
the error.
In case of schedinfo virDomainFree() in the cleanup section resets the
error when virTypedParameterAssignFromStr() fails.
This patch adds function vshSaveLibvirtError() that can be called after
calling libvirt helper APIs to ensure the error is remembered.
---
tools/virsh-domain.c | 8 ++++++--
tools/virsh.c | 9 +++++++++
tools/virsh.h | 1 +
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 73ebba9..1f7aff7 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -3512,8 +3512,10 @@ cmdSchedInfoUpdate(vshControl *ctl, const vshCmd *cmd,
if (virTypedParameterAssign(&(params[nparams++]),
param->field,
param->type,
- val) < 0)
+ val) < 0) {
+ vshSaveLibvirtError();
goto cleanup;
+ }
continue;
}
Looks like there must be a lot of similar issues in other areas of virsh.
ACK,
Jirka