cosmetic improvements of messages during unsucessful authenticate (e.g. when cannot...
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Sat, 2 Nov 2013 13:33:31 +0000 (14:33 +0100)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Sat, 2 Nov 2013 13:33:31 +0000 (14:33 +0100)
auth/manifoldbackend.py
manifold/manifoldapi.py
manifold/manifoldresult.py

index 14abb74..ab224a3 100644 (file)
@@ -47,7 +47,7 @@ class ManifoldBackend:
 
             request.session['manifold'] = {'auth': api.auth, 'person': person, 'expires': session['expires']}
         except ManifoldException, e:
-            print "Caught ManifoldException, returning corresponding ManifoldResult"
+            print "ManifoldBackend.authenticate caught ManifoldException, returning corresponding ManifoldResult"
             return e.manifold_result
         except Exception, e:
             print "E: manifoldbackend", e
index 1ba0db4..1ffcace 100644 (file)
@@ -52,9 +52,17 @@ class ManifoldAPI:
     # a SESSION_EXPIRED code
     def __getattr__(self, methodName):
         def func(*args, **kwds):
+            # how to display a call
+            def repr ():
+                # most of the time, we run 'forward'
+                if methodName=='forward':
+                    try:    action="forward(%s)"%args[0]['action']
+                    except: action="forward(??)"
+                else: action=methodName
+                return action
             try:
                 if debug:
-                    print "====> ManifoldAPI.%s"%methodName,"url",self.url
+                    print "====> ManifoldAPI.%s"%repr(),"url",self.url
                     print "=> auth",self.auth
                     print "=> args",args,"kwds",kwds
                 annotations = {
@@ -63,10 +71,9 @@ class ManifoldAPI:
                 args += (annotations,)
                 result=getattr(self.server, methodName)(*args, **kwds)
                 if debug:
-                    print '<==== backend call %s(*%s,**%s) returned'%(methodName,args,kwds),
-                    print '.ctd. Authmethod=',self.auth['AuthMethod'], self.url,'->',
+                    print '<= result=',
                     self._print_result(result)
-                    print '===== ManifoldAPI call done'
+                    print '<==== backend call %s returned'%(repr()),
 
                 return ResultValue(**result)
 
@@ -76,12 +83,12 @@ class ManifoldAPI:
                     raise ManifoldException ( ManifoldResult (code=ManifoldCode.SERVER_UNREACHABLE,
                                                               output="%s answered %s"%(self.url,error)))
                 # otherwise
-                print "====> ERROR On ManifoldAPI.%s"%methodName,"auth",self.auth,"args",args,"kwds",kwds
-                import traceback
-                traceback.print_exc()
-                if debug: print "KO (unexpected exception)",error
-                print '===== ManifoldAPI call exiting'
-                raise ManifoldException ( ManifoldResult (code=ManifoldCode.UNKNOWN_ERROR, output="%s"%error) )
+                if debug: 
+                    print "===== xmlrpc catch-all exception:",error
+                    import traceback
+                    traceback.print_exc(limit=3)
+                print "<==== ERROR On ManifoldAPI.%s"%repr()
+                raise ManifoldException ( ManifoldResult (code=ManifoldCode.SERVER_UNREACHABLE, output="%s"%error) )
 
         return func
 
index dcf1a2e..edf48ab 100644 (file)
@@ -49,7 +49,7 @@ class ManifoldResult (dict):
             else: result += " [value=%s: %s]"%(type(value).__name__,value)
         else:
             result += " [output=%s]"%self['output']
-        result += "]]"
+        result += "]"
         return result
 
 # probably simpler to use a single class and transport the whole result there