Projet

Général

Profil

Bug #21245

wscall dont une erreur va vers un status inexistant, envoie la demande vers ce statut

Ajouté par Thomas Noël il y a plus de 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
18 janvier 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

test écrit rapidement qui passe sans soucis

  1674     item = WebserviceCallStatusItem()
  1675     item.url = 'http://remote.example.net/500'
  1676     item.action_on_5xx = '42biboo'  # jump to n'importe quoi
  1677     item.post = False
  1678     with pytest.raises(AbortActionException):
  1679         item.perform(formdata)
  1680     assert formdata.status == 'wf-42biboo'

Autrement dit, si un appel webservice échoue et que l'échec est configuré pour aller vers un statut qui n'existe plus, hé bien la demande se retrouve dans ce statut inexistant, aïe.

Je proposerais de faire à la place un :stop et de logger une exception...


Fichiers

Révisions associées

Révision 69612df2 (diff)
Ajouté par Thomas Noël il y a plus de 6 ans

wscall: act as stop if target status no longer exists (#21245)

Historique

#1

Mis à jour par Thomas Noël il y a plus de 6 ans

#2

Mis à jour par Frédéric Péters il y a plus de 6 ans

Je comprends le try/raise again comme étant là pour améliorer le message qui sera visible dans la trace, c'est bien ça ?

Pour vérifier l'existence, simplemen self.parent.parent.get_status(status_id) (ça raise KeyError).

J'hésitais sur la présence du nom du workflow dans le message, considérant que le workflow associé se retrouverait de toute façon visible sur la page de la trace, mais comme tu le sens.

#3

Mis à jour par Thomas Noël il y a plus de 6 ans

Frédéric Péters a écrit :

Je comprends le try/raise again comme étant là pour améliorer le message qui sera visible dans la trace, c'est bien ça ?
J'hésitais sur la présence du nom du workflow dans le message, considérant que le workflow associé se retrouverait de toute façon visible sur la page de la trace, mais comme tu le sens.

Oui, ça sera dans la page de trace, mais je pense aux exceptions par mail dans leur forme brute actuelle (qu'on devrait aussi clarifier sur le même procédé que la page de trace, de fait ; mais en attendant, voilà). Si tu penses que c'est vraiment trop alambiqué je peux retirer, je suis pas sûr que cette erreur arrive si souvent.

Pour vérifier l'existence, simplemen self.parent.parent.get_status(status_id) (ça raise KeyError).

Modifié dans ce patch.

#4

Mis à jour par Frédéric Péters il y a plus de 6 ans

Ack.

#5

Mis à jour par Thomas Noël il y a plus de 6 ans

  • Statut changé de En cours à Résolu (à déployer)
commit 69612df2bf754b773bf8d219bf9b5a3963abedd4
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Thu Jan 18 02:59:52 2018 +0100

    wscall: act as stop if target status no longer exists (#21245)

#6

Mis à jour par Frédéric Péters il y a plus de 5 ans

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

Formats disponibles : Atom PDF