git://git.onelab.eu
/
plcapi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4630600
)
- add **kwds paramater to __call__()
author
Tony Mack
<tmack@cs.princeton.edu>
Wed, 18 Oct 2006 19:42:46 +0000
(19:42 +0000)
committer
Tony Mack
<tmack@cs.princeton.edu>
Wed, 18 Oct 2006 19:42:46 +0000
(19:42 +0000)
PLC/Method.py
patch
|
blob
|
history
Shell.py
patch
|
blob
|
history
diff --git
a/PLC/Method.py
b/PLC/Method.py
index
1165541
..
ef27e97
100644
(file)
--- a/
PLC/Method.py
+++ b/
PLC/Method.py
@@
-4,7
+4,7
@@
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id: Method.py,v 1.
5 2006/10/16 20:41:02
tmack Exp $
+# $Id: Method.py,v 1.
6 2006/10/17 15:28:39
tmack Exp $
#
import xmlrpclib
#
import xmlrpclib
@@
-67,7
+67,7
@@
class Method:
self.source = None
self.source = None
- def __call__(self, *args):
+ def __call__(self, *args
, **kwds
):
"""
Main entry point for all PLCAPI functions. Type checks
arguments, authenticates, and executes call().
"""
Main entry point for all PLCAPI functions. Type checks
arguments, authenticates, and executes call().
@@
-100,22
+100,25
@@
class Method:
break
if isinstance(auth, Auth):
auth.check(self, *args)
break
if isinstance(auth, Auth):
auth.check(self, *args)
-
- result = self.call(*args)
+
+ start = time.time()
+ result = self.call(*args, **kwds)
+ runtime = time.time() - start
if self.api.config.PLC_API_DEBUG:
if self.api.config.PLC_API_DEBUG:
- self.log(0, *args)
+ self.log(0,
runtime,
*args)
return result
except PLCFault, fault:
# Prepend method name to expected faults
fault.faultString = self.name + ": " + fault.faultString
return result
except PLCFault, fault:
# Prepend method name to expected faults
fault.faultString = self.name + ": " + fault.faultString
- self.log(fault.faultCode, *args)
+ runtime = time.time() - start
+ self.log(fault.faultCode, runtime, *args)
raise fault
raise fault
- def log(self, fault_code, *args):
+ def log(self, fault_code,
runtime,
*args):
"""
Log the transaction
"""
"""
Log the transaction
"""
@@
-137,25
+140,27
@@
class Method:
if hasattr(self, 'object_ids'):
object_ids = self.object_ids
if hasattr(self, 'object_ids'):
object_ids = self.object_ids
- #
make sure this is an api call
- if call_name
in ['system.listMethods', 'system.methodHelp', 'system.multicall', 'system.methodSignature']
:
+ #
do not log system calls
+ if call_name
.startswith('system')
:
return False
return False
+ # do not log get calls
+ if call_name.startswith('Get'):
+ return False
# get next event_id
# get next event_id
- # XX get real event id
-
rows = self.api.db.selectall("SELECT nextval('events_event_id_seq')", hashref = False)
event_id = rows[0][0]
sql_event = "INSERT INTO events " \
rows = self.api.db.selectall("SELECT nextval('events_event_id_seq')", hashref = False)
event_id = rows[0][0]
sql_event = "INSERT INTO events " \
- " (event_id, person_id, event_type, object_type, fault_code, call) VALUES" \
- " (%(event_id)d, %(person_id)d, '%(event_type)s', '%(object_type)s', %(fault_code)d, '%(call)s')" % \
+ " (event_id, person_id, event_type, object_type, fault_code, call, runtime) VALUES" \
+ " (%(event_id)d, %(person_id)d, '%(event_type)s', '%(object_type)s'," \
+ " %(fault_code)d, '%(call)s', %(runtime)f)" % \
(locals())
self.api.db.do(sql_event)
# log objects affected
for object_id in object_ids:
(locals())
self.api.db.do(sql_event)
# log objects affected
for object_id in object_ids:
- sql_objects = "INSERT INTO event_object
s
(event_id, object_id) VALUES" \
+ sql_objects = "INSERT INTO event_object (event_id, object_id) VALUES" \
" (%(event_id)d, %(object_id)d) " % (locals())
self.api.db.do(sql_objects)
" (%(event_id)d, %(object_id)d) " % (locals())
self.api.db.do(sql_objects)
diff --git
a/Shell.py
b/Shell.py
index
b4cfa38
..
0c49f92
100755
(executable)
--- a/
Shell.py
+++ b/
Shell.py
@@
-5,7
+5,7
@@
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2005 The Trustees of Princeton University
#
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2005 The Trustees of Princeton University
#
-# $Id: Shell.py,v 1.
4 2006/09/08 15:37:01
mlhuang Exp $
+# $Id: Shell.py,v 1.
5 2006/10/03 19:34:05
mlhuang Exp $
#
import os, sys
#
import os, sys
@@
-155,9
+155,10
@@
class Callable:
# Figure out if the function requires an authentication
# structure as its first argument.
self.auth = False
# Figure out if the function requires an authentication
# structure as its first argument.
self.auth = False
-
- try:
- func = api.callable(method)
+ func = api.callable(method)
+
+ try:
+ #func = api.callable(method)
if func.accepts and \
(isinstance(func.accepts[0], Auth) or \
(isinstance(func.accepts[0], Mixed) and \
if func.accepts and \
(isinstance(func.accepts[0], Auth) or \
(isinstance(func.accepts[0], Mixed) and \
@@
-172,7
+173,7
@@
class Callable:
else:
self.func = func
else:
self.func = func
- def __call__(self, *args):
+ def __call__(self, *args
, **kwds
):
"""
Automagically add the authentication structure if the function
requires it and it has not been specified.
"""
Automagically add the authentication structure if the function
requires it and it has not been specified.
@@
-180,7
+181,7
@@
class Callable:
if self.auth and \
(not args or not isinstance(args[0], dict) or not args[0].has_key('AuthMethod')):
if self.auth and \
(not args or not isinstance(args[0], dict) or not args[0].has_key('AuthMethod')):
- return self.func(auth, *args)
+ return self.func(auth, *args
, **kwds
)
else:
return self.func(*args)
else:
return self.func(*args)