Re: [libvirt] PATCH: Improve error reporting for operations on inactive domains

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Apr 17, 2009 at 12:39:42PM +0100, Daniel P. Berrange wrote:
> If you try todo an operation on an inactive QEMU guest which is not 
> applicable, eg ask to pause an inactive guest, then you currently get
> a useless message
> 
>   # virsh suspend demo
>   error: Failed to suspend domain demo
>   error: invalid domain pointer in no domain with matching id -1
> 
> There are two issues here
> 
>  - The QEMU driver is mistakenly doing a lookup-by-id when locating the 
>    guest in question. It should in fact do lookup-by-uuid for all APIs
>    since that's the best unique identifier. 
>  - It was using VIR_ERR_INVALID_DOMAIN code instead of VIR_ERR_NO_DOMAIN
>    code, hence the 'invalid domain pointer' bogus message.
> 
> This patch changes all QEMU APIs to lookup based on UUID, and use the
> correct VIR_ERR_NO_DOMAIN code when reporting failures.

   sounds good

> You now get to see the real useful error message later in the API where
> it validates whether the guest is running or not
> 
>   # virsh suspend demo
>   error: Failed to suspend domain demo
>   error: operation failed: domain is not running
> 
> One thing I'm wondering, is whether we should introduce an explicit error
> code for operations that are not applicable.

  yes that would make sense.

> eg, instead of giving VIR_ERR_OPERATION_FAILED, we could give back a code
> like VIR_ERR_OPERATION_INVALID.  This would let callers distinguish 
> real failure of the operation, vs the fact that it simply isn't applicable
> for inactive guests.

  from an application building perspective yes we should really do that,
an user may be able to infer that the domain wasn't started and need
this as a preliminary step. I hope applications will be able to gather
the 2 errors to recover properly from the failure in an automated
fashion.

Patch looks fine, I also checked the virDomainIsActive() check was
present too because going from Id->UUID lookup means we now succeed
in the lookup on inactive domains.

 ACK, looks fine to me

Daniel

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

--
Libvir-list mailing list
Libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]