[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r5484 - trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc
From: |
reinhard |
Subject: |
r5484 - trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc |
Date: |
Tue, 23 Mar 2004 14:26:14 -0600 (CST) |
Author: reinhard
Date: 2004-03-23 14:26:14 -0600 (Tue, 23 Mar 2004)
New Revision: 5484
Modified:
trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ClientAdapter.py
trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ServerAdapter.py
Log:
Transfer tracebacks from the server to the client.
Modified: trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ClientAdapter.py
===================================================================
--- trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ClientAdapter.py
2004-03-23 19:42:31 UTC (rev 5483)
+++ trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ClientAdapter.py
2004-03-23 20:26:14 UTC (rev 5484)
@@ -36,6 +36,7 @@
# We provide a client driver...
CLIENT = 1
+import string
import sys
import types
import mx.DateTime
@@ -94,54 +95,16 @@
__args = [typeconv.python_to_rpc (arg, client.InvalidParameter)
for arg in args]
- result = self._client.execute (method, __args, self._timeout)
+ try:
+ result = self._client.execute (method, __args, self._timeout)
+ except:
+ # Bah! py_xmlrpc uses string exceptions!!
+ if sys.exc_info () [0] == 'xmlrpc.error':
+ parts = string.split (sys.exc_info () [1], ':', 2)
+ if parts [0] == '1':
+ raise client.DistantError (parts [2])
+ raise sys.exc_info () [2]
- # FIXME: catch Exceptions?
-# except:
-# if str(sys.exc_type)=="xmlrpc.error":
-# if sys.exc_value==(111, 'Connection refused'):
-# msg= _("Unable to connect to XML-RPC server ") + \
-# _("at '%s' \n(connection refused)\n") % self._url + \
-# _("please check if the server is running")
-# else:
-# msg="Error: %s" % (sys.exc_value,)
-#
-# print
-# print "********************************************\n"
-# print msg,"\n\n"
-# print "********************************************"
-# sys.exit(0)
-#
-# elif str(sys.exc_type)=="xmlrpc.fault":
-# #
-# # Distinguish between different kinds of distant RPC errors
-# #
-#
-# # catch unknown service faults created by xmlrpc/ServerAdapter
-# if sys.exc_value.faultString[:30]=='xmlrpc.error: unknown command:':
-# msg=_("Service/Command %s does not exist on the server")\
-# % sys.exc_value.faultString[31:]
-# raise client.InvalidService,msg,sys.exc_traceback
-#
-# # catch unknown service faults created by pw_xmlrpc/ServerAdapter
-# elif sys.exc_value.faultString[:26]== \
-# 'exceptions.AttributeError:':
-# msg="%s"\
-# % sys.exc_value.faultString[26:]
-# raise client.InvalidService,msg,sys.exc_traceback
-#
-# # catch every other distant error
-# else:
-# msg =_("Error '%s' occured on server connected"+ \
-# " by XMLRPC") % sys.exc_value.faultString
-# raise client.DistantError,msg,sys.exc_traceback
-#
-#
-# else:
-# raise client.Error, _("Unknown XMLRPC Error: '%s' of type '%s'") % \
-# (sys.exc_value, sys.exc_type), \
-# sys.exc_traceback
-
# check, if an object handle is sent
# TODO: make a better check
if type(result)==type("String") and len(result)==40 :
Modified: trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ServerAdapter.py
===================================================================
--- trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ServerAdapter.py
2004-03-23 19:42:31 UTC (rev 5483)
+++ trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ServerAdapter.py
2004-03-23 20:26:14 UTC (rev 5484)
@@ -39,7 +39,7 @@
from gnue.common.apps import GDebug
from gnue.common.rpc import server
-from gnue.common.rpc.drivers._helpers import ObjectLibrarian, ObjectEnabler,
DirectoryServer
+from gnue.common.rpc.drivers._helpers import ObjectLibrarian, ObjectEnabler
try:
import xmlrpc
@@ -52,17 +52,6 @@
import typeconv
-# Mapping from GRPC's datatype to XML-RPC datatypes
-_datatypeMap = {
- 'integer': 'int',
- 'string': 'string',
- 'boolean': 'boolean',
- 'date': 'dateTime.iso8601',
- 'number': 'double',
- 'base64': 'base64',
- 'binary': 'base64'
-}
-
# =============================================================================
# Server driver
# =============================================================================
@@ -139,7 +128,12 @@
__params = typeconv.rpc_to_python (params, server.InvalidParameter)
- result = ObjectEnabler.ObjectEnabler.call (self, method, __params)
+ try:
+ result = ObjectEnabler.ObjectEnabler.call (self, method, __params)
+ except SystemExit:
+ raise
+ except:
+ raise gException, self._traceback (3)
return typeconv.python_to_rpc (result, server.InvalidParameter)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5484 - trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc,
reinhard <=