X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=manifold%2Fmanifoldapi.py;h=4d2503118f8b5f51094d5fb973da815fe8aea807;hb=69867d5296684463d3aad4f6db867d24005102aa;hp=ef7e45729544212276ccd61a46133ff6e59b32e8;hpb=d8f20800f3709f4958493d2e1e1f8a8a98b0e29a;p=myslice.git diff --git a/manifold/manifoldapi.py b/manifold/manifoldapi.py index ef7e4572..4d250311 100644 --- a/manifold/manifoldapi.py +++ b/manifold/manifoldapi.py @@ -50,26 +50,31 @@ class ManifoldAPI: # until we have some agreement about how the API calls should return error conditions # in some less unpolite way than this anonymous exception, we assume it's a problem with the session # that needs to be refreshed - if debug: print "Session Expired" if error.faultCode == 8002: reason="most likely your session has expired" reason += " (the manifold API has no unambiguous error reporting mechanism yet)" return ManifoldResult (code=ManifoldCode.SESSION_EXPIRED, output=reason) + else: + reason="xmlrpclib.Fault with faultCode = %s (not taken as session expired)"%error.faultCode + return ManifoldResult (code=ManifoldCode.UNKNOWN_ERROR, output=reason) except Exception,error: print "ManifoldAPI: unexpected exception",error - return ManifoldResult (code=ManifoldResult.UNKNOWN_ERROR, output="%s"%error) + return ManifoldResult (code=ManifoldCode.UNKNOWN_ERROR, output="%s"%error) return func def send_manifold_query (self, query): (action,subject)= (query.action,query.subject) - # use e.g. self.Get rather than self.server.Get so we catch exceptions as per __getattr__ + # use e.g. self.Get rather than self.server.Get so we use the __getattr__ code if action=='get': # this makes the backend to squeak and one can't login anymore... # return self.Get(subject, query.filters, query.timestamp, query.fields) return self.Get(subject, query.filters, {}, query.fields) - if action=='update': - return self.Update(subject, query.filters, query.params, query.fields) + elif action=='update': + answer=self.Update(subject, query.filters, query.params, query.fields) + if not isinstance (answer, ManifoldResult): print "UNEXECPECTED answer", answer + return answer else: warning="WARNING: ManifoldAPI.send_manifold_query: %s not implemented for now"%action print warning + print 3 return ManifoldResult(code=ManifoldCode.NOT_IMPLEMENTED, output=warning)