Support #45110
connecteur CMIS : renvoyer un code d'erreur en fonction du type d'erreur
Statut:
Nouveau
Priorité:
Bas
Assigné à:
-
Version cible:
-
Début:
14 juillet 2020
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
Actuellement on fait :
except (urllib2.URLError, httplib2.HttpLib2Error) as e: # FIXME urllib2 still used for cmslib 0.5 compat raise APIError("connection error: %s" % e) except PermissionDeniedException as e: raise APIError("permission denied: %s" % e) except UpdateConflictException as e: raise APIError("update conflict: %s" % e) except InvalidArgumentException as e: raise APIError("invalid property name: %s" % e) except CmisException as e: raise APIError("cmis binding error: %s" % e)
Ce qui renvoie
{"err": 1, "err_class": "passerelle.utils.jsonresponse.APIError", "err_desc": "bla bla", ...}
et dans dans les workflow en cas d'erreur il faut interpréter le contenu de "err_desc", ce qui n'est pas forcément facile.
Ca serait mieux de renvoyer un "err" différent en fonction de l'erreur rencontrée, genre
... except PermissionDeniedException as e: raise APIError("permission denied: %s" % e, err_code=403) except UpdateConflictException as e: raise APIError("update conflict: %s" % e, err_code=409) ...
Demandes liées
Révisions associées
Historique
Mis à jour par Thomas Noël il y a presque 4 ans
- Lié à Development #45313: logs de cmislib inutiles ajouté
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Lié à Development #53601: cmis : ne pas mettre tout le payload dans le rendu de l'exception ajouté
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
On ne reçoit plus les traces Error\ content et Error\ payload on peut ignorer ces remarques.
debian: toggle cmislib logs with DEBUG (#45110)