[libvirt] [PATCH 0/8] Cleanup improper VIR_ERR_NO_SUPPORT use

Daniel P. Berrange berrange at redhat.com
Wed Aug 24 21:55:42 UTC 2011


On Tue, Aug 23, 2011 at 05:39:37PM +0800, Osier Yang wrote:
> Error code VIR_ERR_NO_SUPPORT will be translated to "this function
> is not supported by the connection driver", however, it's used
> across the whole projects, this patch is trying to cleanup all
> the improper use in the source tree.
> 
> The modification can be grouped to 3 following groups:
> 
> 1) The error intends to tell user it's invalid operation.
> 
>      s/VIR_ERR_NO_SUPPORT/VIR_ERR_OPERATION_INVALID.

Most of these changes are wrong. Operation invalid is
defined as:

    VIR_ERR_OPERATION_INVALID = 55,     /* operation is not applicable at this
                                           time */

In other words, the object is in the wrong state for the
operation be requested.  For example, attempting to invoke
'virDomainSuspend' on a guest that is not currently running
would imply OPERATION_INVALID.

For arguments that aren't implemented, or are incorrect
or not possible on this platform, then one of the other
codes like ARGUMENT_UNSUPPORTED or CONFIG_UNSUPPORTED
or even just INTERNAL_ERROR

> 2) The error intends to tell the configuration of domain
>    is not supported.
> 
>      s/VIR_ERR_NO_SUPPORT/VIR_ERR_CONFIG_UNSUPPORTED/
> 
> 3) The error intends to tell the function is not implemented
>    on some platform.
> 
>      * s/VIR_ERR_NO_SUPPORT/VIR_ERR_OPERATION_INVALID/
>      * and add error strings

This is not correct. On platforms where a driver method is
registered, but stubbed out to a no-op, then we should still
be reporting NO_SUPPORT.  Ideally we would have not actually
registered the driver method at all on that platform, but it
is simpler to register it and make it a no-op stub and then
raise NO_SUPPORT.


Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list