On Wed, Aug 16, 2006 at 03:30:30PM +0100, Daniel P. Berrange wrote:
The libvirt.c front-end can be compiled in 'pedantic' mode in
which case it
explicitly refuses operations with side-effects in read-only connections.
When doing so, however, it was not recording any error message so feedback
to the user was misleading / obsure. This patch adds an extra error code
VIR_ERR_READ_ONLY which is used when an operation is denied due to a read
only connection.
argh, I developped a similar patch independantly, using
"VIR_ERR_OPERATION_DENIED" instead, it also reports the operation name
and drop the #ifdef PEDANTIC , making it the default behaviour.
This patch also passes 'VIR_DRV_OPEN_QUIET' to the
'open' method so tell
the XenD driver not complain if it fails to open a HV connection. This is
because it was complaining whenever trying to open a test:///default
connection.
That should not conflict, yeah it's probably better to have the libvirt
front-end function report the connection error than letting the drivers
emit errors themselves. The only problem is that you won't detect hypervisor
connection failure say if you manage to connect with xend, because at least
one access method succeeded ...
Index: src/libvirt.c
===================================================================
RCS file: /data/cvs/libvirt/src/libvirt.c,v
retrieving revision 1.42
diff -c -r1.42 libvirt.c
*** src/libvirt.c 11 Aug 2006 14:40:04 -0000 1.42
--- src/libvirt.c 16 Aug 2006 15:17:43 -0000
***************
*** 240,246 ****
for (i = 0;i < MAX_DRIVERS;i++) {
if ((virDriverTab[i] != NULL) && (virDriverTab[i]->open != NULL)) {
! res = virDriverTab[i]->open(ret, name, 0);
/*
* For a default connect to Xen make sure we manage to contact
* all related drivers.
--- 240,246 ----
for (i = 0;i < MAX_DRIVERS;i++) {
if ((virDriverTab[i] != NULL) && (virDriverTab[i]->open != NULL)) {
! res = virDriverTab[i]->open(ret, name, VIR_DRV_OPEN_QUIET);
/*
* For a default connect to Xen make sure we manage to contact
* all related drivers.
Okay, I'm afraid everything else clashes with my own patch <grin/>
which is attached below. I also swapped a few function entry tests.
Daniel
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/