Projet

Général

Profil

Bug #78796

La traduction à la volée des URLs des sources de donnée agenda est incompatible avec le code de moissonage

Ajouté par Benjamin Dauvergne il y a 11 mois. Mis à jour il y a 11 mois.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
21 juin 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Le ticket #77920 introduit un migration à la volée dans l'objet NamedDataSource qui réécrit lors d'un store() les urls des sources de donnée agenda de https://agenda.xxx.fr/ vers {{ chrono_url }}, je suppose pour que l'export ensuite en soit simplifié. Le souci est que le code dans build_agenda_datasources() compare lui le référentiel des agendas et des sources de donnée sur la base de l'URL canonique, sans remplacement de variable.

Le code de #77920 n'est pas encore en production mais on voit à la fin du ticket #76873-13 le souci que ça va poser, les agendas exportés sont recréés avec un nom différent (parce que le code en prod ne reconnait pas l'URL avec variable produite par le w.c.s. de recette).

Il faut reverter #77920 ou vite produire du code pour build_agenda_datasources() qui fasse la comparaison sur la base de l'URL transformée (ou bien réserver la transformation au moment de l'export ça ne changera, ce serait au moment de l'import qu'il faudrait corriger).


Demandes liées

Lié à w.c.s. - Development #77920: Améliorer l'import d'une application avec des sources de données agendaFermé25 mai 2023

Actions

Historique

#1

Mis à jour par Benjamin Dauvergne il y a 11 mois

  • Lié à Development #77920: Améliorer l'import d'une application avec des sources de données agenda ajouté
#3

Mis à jour par Benjamin Dauvergne il y a 11 mois

  • Description mis à jour (diff)
#4

Mis à jour par Frédéric Péters il y a 11 mois

  • Assigné à mis à Lauréline Guérin

Je laisse ça à Lauréline qui pourra voir ça demain.

#5

Mis à jour par Frédéric Péters il y a 11 mois

Le souci est que le code dans build_agenda_datasources() compare lui le référentiel des agendas et des sources de donnée sur la base de l'URL canonique

J'essaie de comprendre quand même mais sans succès, le code de cette fonction se construit la liste des sources de données,

    existing_datasources = {}
    for datasource in NamedDataSource.select():
        if datasource.external != 'agenda':
            continue
        existing_datasources[datasource.data_source['value']] = datasource

dans existing_datasources on a donc des clés de la forme {{agendas_url}}/api/... et ensuite, en prenant les données de chrono, les url retournées sont transformées pour être également de la forme {{agendas_url}}/api/...

    # build datasources from chrono
    for agenda in agenda_data:
        url = translate_url(publisher, agenda['url'])
        datasource = existing_datasources.get(url)

Il y a un troisième dictionnaire dans cette méthode, existing_datasources, lui aussi contient les clés sous forme {{agendas_url}}/api/...

#6

Mis à jour par Frédéric Péters il y a 11 mois

Ou le propos est "pendant ces quelques jours avec du code différent entre recette et l'import sur la production échoue" mais ça sera ok une fois que recette et prod seront identiques ?

#7

Mis à jour par Lauréline Guérin il y a 11 mois

Le souci est que le code dans build_agenda_datasources() compare lui le référentiel des agendas et des sources de donnée sur la base de l'URL canonique, sans remplacement de variable.

en prod, avec l'ancien code, mais avec le nouveau code (déjà en recette) ce sera ok, build_agenda_datasources produit des ds avec une variable dans l'url:

    # build datasources from chrono
    for agenda in agenda_data:
        url = translate_url(publisher, agenda['url'])
        datasource = existing_datasources.get(url)
        if datasource is None:
            datasource = NamedDataSource()

a priori tout rentrera dans l'ordre une fois ce code déployé en prod

(mais je ne suis pas sûre d'avoir saisi le soucis, ce qui est exporté en recette et importé en prod; les ds agenda auto ne sont pas exportables il me semble)

#8

Mis à jour par Lauréline Guérin il y a 11 mois

(mais je ne suis pas sûre d'avoir saisi le soucis, ce qui est exporté en recette et importé en prod; les ds agenda auto ne sont pas exportables il me semble)

Ok il s'agit d'une application, en effet les ds auto sont intégrées dans les applications, et sont alors importées.
Ca sera ok une fois le code en prod, à condition que l'appli contienne bien des ds agenda auto avec des urls avec variable (regénérer l'appli si ce n'est pas le cas)

#11

Mis à jour par Benjamin Dauvergne il y a 11 mois

  • Statut changé de Nouveau à Rejeté
  • Assigné à Lauréline Guérin supprimé

Lauréline Guérin a écrit :

(mais je ne suis pas sûre d'avoir saisi le soucis, ce qui est exporté en recette et importé en prod; les ds agenda auto ne sont pas exportables il me semble)

J'avais raté ce deuxième translate_url, je pense aussi que ce sera bon quand tout sera déployé. Je rejette.

Formats disponibles : Atom PDF