X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fserver%2Fxmlrpcapi.py;h=1711f88531467e47ef944c0bebefbb2acf09d42c;hb=06768bd605e5d47fadfc90a35c74e30f267226a5;hp=8b8bd78123d93feb7db75632566de5f3b4f108ed;hpb=ecc85e0b923922cf7117d29b380f5284edb88f21;p=sfa.git diff --git a/sfa/server/xmlrpcapi.py b/sfa/server/xmlrpcapi.py index 8b8bd781..1711f885 100644 --- a/sfa/server/xmlrpcapi.py +++ b/sfa/server/xmlrpcapi.py @@ -3,7 +3,6 @@ # import string -import xmlrpclib # SOAP support is optional try: @@ -19,6 +18,7 @@ except ImportError: #from sfa.util.faults import SfaNotImplemented, SfaAPIError, SfaInvalidAPIMethod, SfaFault from sfa.util.faults import SfaInvalidAPIMethod, SfaAPIError, SfaFault from sfa.util.sfalogging import logger +from sfa.util.py23 import xmlrpc_client #################### # See "2.2 Characters" in the XML specification: @@ -76,7 +76,9 @@ def xmlrpclib_dump(self, value, write): f(*args) # You can't hide from me! -xmlrpclib.Marshaller._Marshaller__dump = xmlrpclib_dump +# Note: not quite sure if this will still cause +# the expected behaviour under python3 +xmlrpc_client.Marshaller._Marshaller__dump = xmlrpclib_dump class XmlrpcApi: """ @@ -131,14 +133,14 @@ class XmlrpcApi: """ # Parse request into method name and arguments try: - interface = xmlrpclib - self.protocol = 'xmlrpclib' - (args, method) = xmlrpclib.loads(data) + interface = xmlrpc_client + self.protocol = 'xmlrpc' + (args, method) = xmlrpc_client.loads(data) if method_map.has_key(method): method = method_map[method] methodresponse = True - except Exception, e: + except Exception as e: if SOAPpy is not None: self.protocol = 'soap' interface = SOAPpy @@ -151,10 +153,10 @@ class XmlrpcApi: try: result = self.call(source, method, *args) - except SfaFault, fault: + except SfaFault as fault: result = fault self.logger.log_exc("XmlrpcApi.handle has caught Exception") - except Exception, fault: + except Exception as fault: self.logger.log_exc("XmlrpcApi.handle has caught Exception") result = SfaAPIError(fault) @@ -168,10 +170,10 @@ class XmlrpcApi: convert result to a valid xmlrpc or soap response """ - if self.protocol == 'xmlrpclib': + if self.protocol == 'xmlrpc': if not isinstance(result, SfaFault): result = (result,) - response = xmlrpclib.dumps(result, methodresponse = True, encoding = self.encoding, allow_none = 1) + response = xmlrpc_client.dumps(result, methodresponse = True, encoding = self.encoding, allow_none = 1) elif self.protocol == 'soap': if isinstance(result, Exception): result = faultParameter(NS.ENV_T + ":Server", "Method Failed", method)