Projet

Général

Profil

Development #74621

utils/soap.py, gérer une mauvaise réponse (AttributeError: 'NoneType' object has no attribute 'getroottree'))

Ajouté par Sentry Io il y a environ un an. Mis à jour il y a 10 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
16 février 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

https://sentry.entrouvert.org/entrouvert/publik/issues/106517/

Sur un appel soap qui reçoit n'importe quoi en retour (ici ça semble une page HTML), il faudrait que ça soit intercepté au niveau de passerelle/utils/soap.py, pour permettre un traitement intelligible au niveau du connecteur; j'imagine qu'on pourrait ajouter et lever une classe type SOAPInvalidContent(SOAPFault).

AttributeError: 'NoneType' object has no attribute 'getroottree'
  File "passerelle/utils/jsonresponse.py", line 128, in api
    resp = f(*args, **kwargs)
  File "passerelle/views.py", line 566, in perform
    result = self.endpoint(request, **params)
  File "passerelle/contrib/toulouse_maelis/models.py", line 2721, in get_basket
    return {'data': self.get_basket_raw(family_id)}
  File "passerelle/contrib/toulouse_maelis/models.py", line 552, in get_basket_raw
    return self.call(
  File "passerelle/contrib/toulouse_maelis/models.py", line 80, in call
    response = method(**kwargs)
  File "passerelle/utils/soap.py", line 67, in __call__
    return super().__call__(*args, **kwargs)
  File "zeep/proxy.py", line 46, in __call__
    return self._proxy._binding.send(
  File "zeep/wsdl/bindings/soap.py", line 135, in send
    return self.process_reply(client, operation_obj, response)
  File "zeep/wsdl/bindings/soap.py", line 204, in process_reply
    doc = parse_xml(content, self.transport, settings=client.settings)
  File "zeep/loader.py", line 50, in parse_xml
    return fromstring(
  File "defusedxml/lxml.py", line 146, in fromstring
    elementtree = rootelement.getroottree()

Error occurred while processing request

Révisions associées

Révision 569159a9 (diff)
Ajouté par Nicolas Roche il y a 10 mois

toulouse-maelis: do not crash on tomcat unavailability (#74621)

Historique

#1

Mis à jour par Frédéric Péters il y a environ un an

  • Projet changé de Suivi des traces à Passerelle
#2

Mis à jour par Nicolas Roche il y a environ un an

(ici ça semble une page HTML)

Oui, ici c'était une 404 de tomcat :
https://passerelle-parsifal.test.entrouvert.org/manage/toulouse-maelis/test/logs/?q=893585e2-5b94-40e2-bc96-3e1285831833

<?xml version="1.0" encoding="utf8"?>
<html lang="fr">
  <head>
    <title>État HTTP 404 – Not Found</title>
    <style type="text/css">...</style>
  </head>
  <body>
    <h1>État HTTP 404 – Not Found</h1>
    <hr class="line"/>
    <p><b>Type</b> Rapport d''état</p>
    <p><b>description</b> La ressource demandée n''est pas disponible.</p>
    <hr class="line"/>
    <h3>Apache Tomcat/8.5.28</h3>
  </body>
</html>

#3

Mis à jour par Robot Gitea il y a 11 mois

  • Tracker changé de Bug à Development
  • Statut changé de Nouveau à Solution proposée
  • Assigné à mis à Nicolas Roche

Nicolas Roche (nroche) a ouvert une pull request sur Gitea concernant cette demande :

#4

Mis à jour par Robot Gitea il y a 11 mois

  • Statut changé de Solution proposée à En cours

Paul Marillonnet (pmarillonnet) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :

#5

Mis à jour par Robot Gitea il y a 10 mois

  • Statut changé de En cours à Solution proposée
#6

Mis à jour par Robot Gitea il y a 10 mois

  • Statut changé de Solution proposée à Solution validée

Frédéric Péters (fpeters) a approuvé une pull request sur Gitea concernant cette demande :

#7

Mis à jour par Robot Gitea il y a 10 mois

  • Statut changé de Solution validée à Résolu (à déployer)

Nicolas Roche (nroche) a mergé une pull request sur Gitea concernant cette demande :

#8

Mis à jour par Transition automatique il y a 10 mois

  • Statut changé de Résolu (à déployer) à Solution déployée
#9

Mis à jour par Transition automatique il y a 7 mois

Automatic expiration

Formats disponibles : Atom PDF