Re: [libvirt] [PATCH] xenapi: Improve error message on session failure

2011-06-10 Thread Daniel Veillard
On Tue, Jun 07, 2011 at 06:35:55AM -0600, Eric Blake wrote:
 On 06/07/2011 05:01 AM, Matthew Booth wrote:
  XenAPI session login can fail for a number of reasons, but currently no 
  specific
  reason is displayed to the user, e.g.:
  
  virsh -c XenAPI://citrix-xen.example.com/
  Enter username for citrix-xen.example.com: root
  Enter root's password for citrix-xen.example.com:
  error: authentication failed: (null)
  error: failed to connect to the hypervisor
  
  This patch displays the session error description on failure.
  ---
   src/xenapi/xenapi_driver.c |   20 ++--
   1 files changed, 18 insertions(+), 2 deletions(-)
 
 ACK.

pushed, thanks ! BTW the following line is for testing purposes

  COMMITED

Daniel

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

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


[libvirt] [PATCH] xenapi: Improve error message on session failure

2011-06-07 Thread Matthew Booth
XenAPI session login can fail for a number of reasons, but currently no specific
reason is displayed to the user, e.g.:

virsh -c XenAPI://citrix-xen.example.com/
Enter username for citrix-xen.example.com: root
Enter root's password for citrix-xen.example.com:
error: authentication failed: (null)
error: failed to connect to the hypervisor

This patch displays the session error description on failure.
---
 src/xenapi/xenapi_driver.c |   20 ++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c
index 6f64208..3fc35c6 100644
--- a/src/xenapi/xenapi_driver.c
+++ b/src/xenapi/xenapi_driver.c
@@ -166,7 +166,22 @@ xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth, 
int flags ATTRIBUTE_UNUS
 privP-session = xen_session_login_with_password(call_func, privP, 
username,
  password, 
xen_api_latest_version);
 
-if (privP-session != NULL  privP-session-ok) {
+if (privP-session == NULL) {
+/* From inspection of xen_session_login_with_password in
+ * libxenserver(Version 5.6.100-1), this appears not to be currently
+ * possible. The only way for this to be NULL would be on malloc
+ * failure, except that the code doesn't check for this and would
+ * segfault before returning.
+ *
+ * We don't assume the reason here for a failure in an external 
library.
+ */
+xenapiSessionErrorHandler(conn, VIR_ERR_INTERNAL_ERROR,
+  _(Failed to allocate xen session));
+
+goto error;
+}
+
+if (privP-session-ok) {
 conn-privateData = privP;
 
 VIR_FREE(username);
@@ -175,7 +190,8 @@ xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth, int 
flags ATTRIBUTE_UNUS
 return VIR_DRV_OPEN_SUCCESS;
 }
 
-xenapiSessionErrorHandler(conn, VIR_ERR_AUTH_FAILED, NULL);
+xenapiSessionErrorHandler(conn, VIR_ERR_AUTH_FAILED,
+  *privP-session-error_description);
 
   error:
 VIR_FREE(username);
-- 
1.7.4.4

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


Re: [libvirt] [PATCH] xenapi: Improve error message on session failure

2011-06-07 Thread Eric Blake
On 06/07/2011 05:01 AM, Matthew Booth wrote:
 XenAPI session login can fail for a number of reasons, but currently no 
 specific
 reason is displayed to the user, e.g.:
 
 virsh -c XenAPI://citrix-xen.example.com/
 Enter username for citrix-xen.example.com: root
 Enter root's password for citrix-xen.example.com:
 error: authentication failed: (null)
 error: failed to connect to the hypervisor
 
 This patch displays the session error description on failure.
 ---
  src/xenapi/xenapi_driver.c |   20 ++--
  1 files changed, 18 insertions(+), 2 deletions(-)

ACK.

-- 
Eric Blake   ebl...@redhat.com+1-801-349-2682
Libvirt virtualization library http://libvirt.org



signature.asc
Description: OpenPGP digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list