X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethod.py;h=74dc86211b1094c87605e12908a026dbaf86f0b5;hb=a74854dd38cb742b8fdc0d0cda7fff738a95312c;hp=3f58f1fde60dd244ba494e5e92fcda11ba26a077;hpb=852eb9250c33cf72544630dce05714af7779beac;p=plcapi.git diff --git a/PLC/Method.py b/PLC/Method.py index 3f58f1f..74dc862 100644 --- a/PLC/Method.py +++ b/PLC/Method.py @@ -4,7 +4,7 @@ # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # -# $Id: Method.py,v 1.23 2007/02/27 18:46:23 tmack Exp $ +# $Id$ # import xmlrpclib @@ -93,18 +93,25 @@ class Method: runtime = time.time() - start if self.api.config.PLC_API_DEBUG or hasattr(self, 'message'): - self.log(0, runtime, *args) + self.log(None, runtime, *args) return result except PLCFault, fault: - # Prepend method name to expected faults - fault.faultString = self.name + ": " + fault.faultString + + caller = "" + if isinstance(self.caller, Person): + caller = 'person_id %s' % self.caller['person_id'] + elif isinstance(self.caller, Node): + caller = 'node_id %s' % self.caller['node_id'] + + # Prepend caller and method name to expected faults + fault.faultString = caller + ": " + self.name + ": " + fault.faultString runtime = time.time() - start - self.log(fault.faultCode, runtime, *args) + self.log(fault, runtime, *args) raise fault - def log(self, fault_code, runtime, *args): + def log(self, fault, runtime, *args): """ Log the transaction """ @@ -115,7 +122,9 @@ class Method: # Create a new event event = Event(self.api) - event['fault_code'] = fault_code + event['fault_code'] = 0 + if fault: + event['fault_code'] = fault.faultCode event['runtime'] = runtime # Redact passwords and sessions @@ -125,7 +134,7 @@ class Method: auth_methods = ['session', 'password', 'capability', 'gpg', 'hmac','anonymous'] auth_method = args[0]['AuthMethod'] if auth_method in auth_methods: - event['auth_method'] = auth_method + event['auth_type'] = auth_method for password in 'AuthString', 'session': if args[0].has_key(password): auth = args[0].copy() @@ -152,7 +161,9 @@ class Method: # Set the message for this event - if hasattr(self, 'message'): + if fault: + event['message'] = fault.faultString + elif hasattr(self, 'message'): event['message'] = self.message # Commit