On Fri, Mar 10, 2006 at 02:57:57PM -0800, Gareth S Bestor wrote:
>> Of course, using the xml-rpc code, we now have access to
rich fault
>> information. Xend never actually returns errors for things and instead
>> throws exceptions.
>
> the new error code tries at least to extract the error message when
>an HTTP POST or GEt fails with an error code, but the XML-RPC should
>give a far more reliable framework for error handling.
Nice segway... I've been recently pinged a few times by our Xen CIM
consumers about the lack of good errors coming out of our providers (which
in turn are limited by what we get back from libxm today), especially in
regards to conditions that might cause a create() operation to fail. Do you
have a sense today of what errors we might expect to get reported back from
libvirt?
I think the prerequisite read is the following page where I tried to
write down how I planned and implemented error handling:
http://libvirt.org/errors.html
it's not coming from nowhere, it's actually the model used by libxml2
"structured" error handling the latest evolution of error processing in
that library. It's not completely broken as people seems to be satisfied
now with it (and its set of users is quite diverse :-)
Not that this will constitute any sort of meaningful
'requirements' with
which to write code, but the following is a list of errors that my Xen CIM
consumers handle today for the likes VMWare. I am trying to get more info
on under what specific circumstance(s) these are generated...
ERR_SUCCESS
ERR_UNABLE_TO_VERIFY_STATE
ERR_OUT_OF_DISK_SPACE
ERR_BAD_PARAMETER
ERR_VM_CONTROL_OP_FAILED
ERR_INVALID_PARM_NUM
ERR_CANNOT_ACCESS_DISK_FILE
ERR_UNKNOWN
ERR_VIRTUAL_DISK_CREATE_FAILED
ERR_VM_STUCK
ERR_CREDENTIALS_NOT_SET
ERR_UNACCEPTED_CREDENTIALS
ERR_OUT_OF_MEMORY
ERR_WRONG_STATE_FOR_OP
ERR_VM_NOT_FOUND
ERR_HOST_NOT_FOUND
ERR_ACCESS_DENIED
ERR_ALREADY_EXIST
ERR_OPERATION_FAILED
ERR_UNDOABLE_DISK_NOT_SUPPORTED
ERR_VMM_CMD_FORMAT_ERROR
ERR_COMMUNICATION_NOT_ESTABLISHED
ERR_FILE_COPY_FAILED
ERR_NAME_TOO_LONG
ERR_OS_NOT_SUPPORTED
ERR_MOUNT_FAILED_DIR_NOT_EMPTY
ERR_CANT_DISMOUNT_BOOT_OR_SYSTEM
ERR_FILE_IN_USE
That look actually a bit short to me for such a complete tool ;-)
I think error reporting is an area where we will definitely want to
drive
clients' requirements down into the likes of libvirt. Thnx.
Well you can consult libvirt current list of errors in
http://libvirt.org/html/libvirt-virterror.html#virErrorNumber
if we can get more details from the Xend internals then the
VIR_ERR_GET_FAILED and VIR_ERR_POST_FAILED could be replaced by
more precise informations. Also keep in mind that I would like
as much as possible to keep genericity in the API among the different
back-ends (and if know of a way to invite the WMWare folks to help here
I would be grateful :-).
Daniel
--
Daniel Veillard | Red Hat
http://redhat.com/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/