Projet

Général

Profil

Bug #31114

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

Pour le connecteur CD06 ils utilisent le code 404 pour me renvoyer des informations en JSON or le code de notre surcharge de requests fait ça:

<pre><code class="python">
if response is not None:
message = message + ' (=> %s)' % response.status_code
extra['response_status'] = response.status_code
if self.logger.level == 10: # DEBUG
extra['response_headers'] = dict(response.headers.items())
# log body only if content type is allowed
if content_type_match(response.headers.get('Content-Type')):
content = response.content[:settings.LOGGED_RESPONSES_MAX_SIZE]
extra['response_content'] = repr(content)
if response.status_code // 100 == 3:
log_function = self.logger.warning
elif response.status_code // 100 >= 4: <-- ***ICI***
log_function = self.logger.error
</code>
</pre>

et donc on reçoit ce genre de mail d'erreur :

<pre>
[passerelle-departement13.test.entrouvert.org] ERROR (EXTERNAL IP): GET https://services-smh-test.departement13.fr/api/situation/dossier/137908 (=> 404)
</pre>

On ne devrait pas décider pour chaque réponse 3xx ou 4xx que faire un warning ou une erreur unilatéralement (et je ne sais pas pourquoi on ne gère pas 5xx parce que requests ne génère pas d'exception pour 500 non plus sans dans un raise_for_status()).

Il n'y a que le code du connecteur qui puisse décider de comment interpréter cela.

Je serai pour virer cela et tout logger en info. À la rigueur je veux bien qu'on ajoute un @expected_status_codes@ pour lister ce qui parait normal du reste et dans ce cas uniquement monter le log au niveau erreur (le niveau warning est inutile, de toute façon on ne regarde pas les logs sauf si on constate une erreur).

Retour