# HG changeset patch
# User Ewan Mellor <ewan@xxxxxxxxxxxxx>
# Date 1174390454 0
# Node ID 8b527e3d27d6963dc426b0168f0343811e225ca9
# Parent 129bc1eda8d02df1ca75de35760451048f314725
Improve the error diagnostics within xmlrpclib2 in order to be more defensive
against internal errors.
Signed-off-by: Tom Wilkie <tom.wilkie@xxxxxxxxx>
---
tools/python/xen/util/xmlrpclib2.py | 35 +++++++++++++++++++----------------
1 files changed, 19 insertions(+), 16 deletions(-)
diff -r 129bc1eda8d0 -r 8b527e3d27d6 tools/python/xen/util/xmlrpclib2.py
--- a/tools/python/xen/util/xmlrpclib2.py Tue Mar 20 14:34:53 2007 +0000
+++ b/tools/python/xen/util/xmlrpclib2.py Tue Mar 20 11:34:14 2007 +0000
@@ -227,24 +227,27 @@ class TCPXMLRPCServer(SocketServer.Threa
response = xmlrpclib.dumps(response,
methodresponse=1,
allow_none=1)
- except xmlrpclib.Fault, fault:
- response = xmlrpclib.dumps(fault)
except Exception, exn:
- if self.xenapi:
- if _is_not_supported(exn):
- errdesc = ['MESSAGE_METHOD_UNKNOWN', method]
+ try:
+ if self.xenapi:
+ if _is_not_supported(exn):
+ errdesc = ['MESSAGE_METHOD_UNKNOWN', method]
+ else:
+ log.exception('Internal error handling %s', method)
+ errdesc = ['INTERNAL_ERROR', str(exn)]
+
+ response = xmlrpclib.dumps(
+ ({ "Status": "Failure",
+ "ErrorDescription": errdesc },),
+ methodresponse = 1)
else:
log.exception('Internal error handling %s', method)
- errdesc = ['INTERNAL_ERROR', str(exn)]
- response = xmlrpclib.dumps(
- ({ "Status": "Failure",
- "ErrorDescription": errdesc },),
- methodresponse = 1)
- else:
- log.exception('Internal error handling %s', method)
- import xen.xend.XendClient
- response = xmlrpclib.dumps(
- xmlrpclib.Fault(xen.xend.XendClient.ERROR_INTERNAL,
str(exn)))
+ import xen.xend.XendClient
+ response = xmlrpclib.dumps(
+ xmlrpclib.Fault(xen.xend.XendClient.ERROR_INTERNAL,
str(exn)))
+ except:
+ log.exception('Internal error handling error')
+
return response
@@ -253,7 +256,7 @@ def _is_not_supported(exn):
try:
m = notSupportedRE.search(exn[0])
return m is not None
- except TypeError, e:
+ except:
return False
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|