Bug #42187
Ne pas faire dépendre les tests ProxyLogger d'un connecteur spécifique.
Début:
28 avril 2020
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Non
Description
Comme on envisage de rendre l'envoie des SMS asynchrone, on ne peut plus se baser sur un tel connecteur pour tester les éléments logués (en particulier extra['body'] qui me pose problème).
Dans les faits, lorsqu'une erreur est détectée dans les Jobs, ils ont perdu la connaissance du body de la requête initiale.
Lors d'un appel défaillant au endpoint d'un connecteur SMS il y a 3
nouvelle entrées dans les logs :
- la requête initiale de l'utilisateur
- l'envoie du SMS par le connecteur
- un message d'erreur
Ce dernier log n'hérite pas du même context si l'envoie du SMS est différé :
Initialement passerelle/utils/jsonresponse.py:
def api(self, f, req, *args, **kwargs): logger = self.logger or logging.getLogger('passerelle.jsonresponse') try: resp = f(*args, **kwargs) ... except Exception as e: ... if req.method == 'POST': ... extras.update({'body': repr(req.body[:max_size])}) ... logger.exception("Error occurred while processing request", extra=extras)
Via les Jobs avec passerelle/base/models.py :
def handle_job_error(self, job, exc_info): ... self.logger.error('error running %s job (%s)', job.method_name, exception_to_text(exc_value), exc_info=exc_info)
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Nicolas Roche il y a environ 4 ans
- Lié à Development #36596: paramétrer LOGGED_REQUEST_MAX_SIZE via l'UI de log des connecteurs ajouté
Mis à jour par Nicolas Roche il y a environ 4 ans
- Lié à Development #21465: connecteurs SMS : file pour envois asynchrones ajouté
Mis à jour par Nicolas Roche il y a environ 4 ans
- Fichier 0001-tests-move-requests-responses-log-sizes-test-42187.patch 0001-tests-move-requests-responses-log-sizes-test-42187.patch ajouté
- Tracker changé de Support à Bug
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a environ 4 ans
- Statut changé de Solution proposée à Solution validée
URL = 'http://example.org'
tu peux changer ça en whatever.invalid, comme ça on est sûr que ça foire si jamais le mock n'a pas lieu et qu'example.org répond en 200.
Mis à jour par Nicolas Roche il y a environ 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 9a3d589d207114dcd34019e2d750919aa53474dd Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Tue Apr 28 16:13:32 2020 +0200 tests: move requests/responses log sizes test (#42187)
Mis à jour par Nicolas Roche il y a environ 4 ans
- Lié à Bug #42368: Corriger un test qui plante aléatoirement ajouté
Mis à jour par Frédéric Péters il y a presque 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
tests: move requests/responses log sizes test (#42187)