Projet

Général

Profil

Development #40011

DDPACS: Rendre (un peu) atomique la création de demande

Ajouté par Emmanuel Cazenave il y a environ 4 ans. Mis à jour il y a environ 4 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Sur une trace comme ci-dessous, une erreur 500 se produit, après qu'un objet 'Demand' ait été créé.

Et pas de possibilité de retenter l'appel parce qu'alors échec sur la création de la demande : "duplicate key value violates unique constraint "mdel_ddpacs_demand_reference_key" DETAIL: Key (reference)=(A-41-3) already exists".

La première trace donc :

Traceback (most recent call last):
  File "/home/cazino/src/passerelle/passerelle/utils/jsonresponse.py", line 128, in api
    resp = f(*args, **kwargs)
  File "/home/cazino/src/passerelle/passerelle/views.py", line 467, in perform
    result = self.endpoint(request, **params)
  File "/home/cazino/src/passerelle/passerelle/apps/mdel_ddpacs/models.py", line 103, in create
    return self._handle_create(request, post_data)
  File "/home/cazino/src/passerelle/passerelle/apps/mdel_ddpacs/abstract.py", line 141, in _handle_create
    return self.status(request, demand)
  File "/home/cazino/src/passerelle/passerelle/apps/mdel_ddpacs/abstract.py", line 164, in status
    'zip_url': request.build_absolute_uri(demand.zip_url),
  File "/home/cazino/src/passerelle/passerelle/apps/mdel_ddpacs/abstract.py", line 321, in zip_url
    'rest': '%s/%s' % (self.id, self.zip_name)
  File "/home/cazino/src/passerelle/passerelle/apps/mdel_ddpacs/abstract.py", line 291, in zip_name
    return self.zip_template.name
  File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/home/cazino/src/passerelle/passerelle/apps/mdel_ddpacs/abstract.py", line 283, in zip_template
    'document': self.document,
  File "/home/cazino/src/passerelle/passerelle/apps/mdel_ddpacs/abstract.py", line 300, in document
    return ET.tostring(xml_schema.encode(self.data))
  File "/home/cazino/src/passerelle/passerelle/utils/xml.py", line 350, in encode
    transformer=self)
  File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/xmlschema/validators/xsdbase.py", line 807, in encode
    for result in self.iter_encode(obj, validation=validation, **kwargs):
  File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/xmlschema/validators/elements.py", line 810, in iter_encode
    for result in xsd_type.content_type.iter_encode(element_data, validation, **kwargs):
  File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/xmlschema/validators/groups.py", line 794, in iter_encode
    for result in xsd_element.iter_encode(value, validation, **kwargs):
  File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/xmlschema/validators/elements.py", line 810, in iter_encode
    for result in xsd_type.content_type.iter_encode(element_data, validation, **kwargs):
  File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/xmlschema/validators/groups.py", line 794, in iter_encode
    for result in xsd_element.iter_encode(value, validation, **kwargs):
  File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/xmlschema/validators/elements.py", line 810, in iter_encode
    for result in xsd_type.content_type.iter_encode(element_data, validation, **kwargs):
  File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/xmlschema/validators/groups.py", line 794, in iter_encode
    for result in xsd_element.iter_encode(value, validation, **kwargs):
  File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/xmlschema/validators/elements.py", line 746, in iter_encode
    element_data = converter.element_encode(obj, self, level)
  File "/home/cazino/src/passerelle/passerelle/utils/xml.py", line 116, in element_encode
    obj = getattr(self.transformer, 'encode_%s' % mapped)(obj)
  File "/home/cazino/src/passerelle/passerelle/apps/mdel_ddpacs/models.py", line 79, in encode_double
    return float(obj)
ValueError: could not convert string to float: 'None'

Fichiers

Révisions associées

Révision a9c6544a (diff)
Ajouté par Benjamin Dauvergne il y a environ 4 ans

mdel_ddpacs: make _handle_create atomic (#40011)

Historique

#1

Mis à jour par Emmanuel Cazenave il y a environ 4 ans

  • Sujet changé de Rendre (un peu) atomique la création de demande à DDPACS: Rendre (un peu) atomique la création de demande
#2

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

  • Assigné à mis à Benjamin Dauvergne
#3

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

#4

Mis à jour par Emmanuel Cazenave il y a environ 4 ans

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

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit a9c6544afc1456ca671d1f04d6cbf4bef3276f32
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Tue Mar 3 11:07:38 2020 +0100

    mdel_ddpacs: make _handle_create atomic (#40011)
#6

Mis à jour par Frédéric Péters il y a environ 4 ans

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

Formats disponibles : Atom PDF