[libvirt] [PATCH] virsh: Show errors reported by nonAPI functions

Daniel Veillard veillard at redhat.com
Thu Feb 25 12:24:31 UTC 2010


On Wed, Feb 24, 2010 at 12:55:17PM -0500, Cole Robinson wrote:
> Only API calls trigger the error callback, which is required for
> proper virsh error reporting. Since we use non API functions from
> util/, make sure we properly report these errors.
> 
> Fixes lack of error message from 'virsh create idontexit.xml'
> 
> Signed-off-by: Cole Robinson <crobinso at redhat.com>
> ---
>  tools/virsh.c |   12 ++++++++++--
>  1 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/virsh.c b/tools/virsh.c
> index 5fdbbe5..74e3fad 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -352,8 +352,16 @@ virshErrorHandler(void *unused ATTRIBUTE_UNUSED, virErrorPtr error)
>  static void
>  virshReportError(vshControl *ctl)
>  {
> -    if (last_error == NULL)
> -        return;
> +    if (last_error == NULL) {
> +        /* Calling directly into libvirt util functions won't trigger the
> +         * error callback (which sets last_error), so check it ourselves.
> +         *
> +         * If the returned error has CODE_OK, this most likely means that
> +         * no error was ever raised, so just ignore */
> +        last_error = virSaveLastError();
> +        if (!last_error || last_error->code == VIR_ERR_OK)
> +            return NULL;
> +    }
>  
>      if (last_error->code == VIR_ERR_OK) {
>          vshError(ctl, "%s", _("unknown error"));

  Looks fine, ACK,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list