This commit was manufactured by cvs2svn to create branch
[plcapi.git] / PLC / Method.py
index 70b8b21..552b703 100644 (file)
@@ -4,7 +4,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2006 The Trustees of Princeton University
 #
-# $Id: Method.py,v 1.21 2007/01/16 17:04:08 mlhuang Exp $
+# $Id: Method.py,v 1.27 2007/05/16 18:56:03 tmack Exp $
 #
 
 import xmlrpclib
@@ -98,8 +98,15 @@ class Method:
            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)
             raise fault
@@ -110,8 +117,8 @@ class Method:
         """    
 
        # Do not log system or Get calls
-        if self.name.startswith('system') or self.name.startswith('Get'):
-            return False
+        #if self.name.startswith('system') or self.name.startswith('Get'):
+        #    return False
 
         # Create a new event
         event = Event(self.api)
@@ -120,6 +127,12 @@ class Method:
 
         # Redact passwords and sessions
         if args and isinstance(args[0], dict):
+           # what type of auth this is
+           if args[0].has_key('AuthMethod'):
+               auth_methods = ['session', 'password', 'capability', 'gpg', 'hmac','anonymous']
+               auth_method = args[0]['AuthMethod']
+               if auth_method in auth_methods:
+                   event['auth_type'] = auth_method
             for password in 'AuthString', 'session':
                 if args[0].has_key(password):
                     auth = args[0].copy()
@@ -139,17 +152,16 @@ class Method:
 
         event.sync(commit = False)
 
-        if hasattr(self, 'object_ids'):
-            for object_id in self.object_ids:
-                event.add_object(object_id, commit = False)
+        if hasattr(self, 'event_objects') and isinstance(self.event_objects, dict):
+            for key in self.event_objects.keys():
+               for object_id in self.event_objects[key]:
+                    event.add_object(key, object_id, commit = False)
+       
 
        # Set the message for this event
        if hasattr(self, 'message'):
             event['message'] = self.message    
        
-       if hasattr(self, 'object_type'):
-          event['object_type'] = self.object_type
-
         # Commit
         event.sync()