EsupPortail / esup-sygal

SyGAL : Système de Gestion et d’Accompagnement doctoraL
CeCILL Free Software License Agreement v2.1
1 stars 3 forks source link

Erreurs lors de l'import des données de sygal-ws #24

Open ytennevin opened 1 year ago

ytennevin commented 1 year ago

J'ai tenté de mettre à jour en 5.2.9 depuis notre version qui était en 4.0.2

Question préliminaire : a-t-on une documentation indiquant quelle est la dernière version stable ? est-on supposé mettre à jour vers la dernière version disponible ?

Je constate des erreurs dans le log d'import venant du webservice.

Dans le doute, j'ai donc mis à jour en version 2.3.0 le webservice qui était en 1.3.7

La doc de sygal-ws mentionne deux urls possibles, une pour la v1 et une pour la v2, qui semblent fonctionner. Par contre, le service=version ne semble pas fonctionner que ce soit en v1 ou v2.

Quand j'execute la synchronisation des données sur sygal, j'obtiens des erreurs (ou messages)

cat test-synchro.sh

!/bin/bash

APP_DIR=/app-pg ETAB=UTLN $APP_DIR/bin/run-import.sh 2>&1 > import-ws.log

./test-synchro.sh

question annexe: le log contient des codes couleurs ansi, j'ignore comment les parametrer, s'il y a une doc quelque part ?

Je mets des extraits de import-ws.log que je met en PJ. import-ws.log

######################## IMPORTS ######################## (...)

structure-UTLN

(...) Une erreur a été rencontrée! La colonne de référence 'SOURCE_CODE' est introuvable dans les colonnes de la source (...) ######################## SYNCHROS ######################## (...) Une erreur a été rencontrée! Impossible de découvrir la liste des colonnes à partir des données sources suivantes car celles-ci sont vides : SRC_STRUCTURE (...)

cela se repete pour avec le même type de messages d'erreur pour: SRC_STRUCTURE SRC_ETABLISSEMENT SRC_ECOLE_DOCT SRC_UNITE_RECH SRC_INDIVIDU SRC_DOCTORANT SRC_THESE SRC_THESE_ANNEE_UNIV SRC_ROLE SRC_ACTEUR SRC_ORIGINE_FINANCEMENT SRC_FINANCEMENT SRC_TITRE_ACCES SRC_VARIABLE Donc j'en déduis que l'import ne se fait pas correctement et que la synchro non plus.

Est-ce que je peux avoir des pistes pour corriger cela ? Je ne vois pas de spécifications de version dans la config du ws pour l'application sygal. J'en déduis que c'est soit pris en charge soit non nécessaire (utilisation de la v1 de l'api?)

bertrandgauthier commented 1 year ago

Question préliminaire : a-t-on une documentation indiquant quelle est la dernière version stable ? est-on supposé mettre à jour vers la dernière version disponible ?

Non, pas de doc/procédure pour informer d'une nouvelle version. Juste des tags poussés sur le dépôt.

Je constate des erreurs dans le log d'import venant du webservice. Dans le doute, j'ai donc mis à jour en version 2.3.0 le webservice qui était en 1.3.7

T'as eu raison.

La doc de sygal-ws mentionne deux urls possibles, une pour la v1 et une pour la v2, qui semblent fonctionner.

Tu est passé par les scripts d'install de la v2 j'imagine, donc tu dois utiliser 'v2' dans les URL.

Par contre, le service=version ne semble pas fonctionner que ce soit en v1 ou v2.

La doc était incomplète, il faut ajouter /latest. Ex : https://localhost:8443/v2/version/latest

Quand j'execute la synchronisation des données sur sygal, j'obtiens des erreurs (ou messages)

Tu dois déjà t'assurer que les vues V_SYGAL_*_V2 remontent des données. Et que les tables SYGAL_*_V2 sont bien peuplées par ces mêmes données (cf. script CRONé).

Je ne vois pas de spécifications de version dans la config du ws pour l'application sygal. J'en déduis que c'est soit pris en charge soit non nécessaire (utilisation de la v1 de l'api?)

J'ai complété un peu la doc à ce sujet, merci. https://github.com/EsupPortail/esup-sygal/blob/master/doc/INSTALL.md#configuration-dacc%C3%A8s-au-web-service Tu dois prendre la v2.

ytennevin commented 1 year ago

Tu dois prendre la v2.

J'avais un problème sur l'url du service qui ne voulait pas prendre la v2.

peut-être un / manquant à la fin de la définition de l'url. les logs m'indiquaient qu'il utilisait la racine malgré le parametrage.

Il ne me reste plus qu'une erreur:

### variable-UTLN ###
10/03/2023 19:13:14
[2023-03-10T19:13:14.756712+01:00] console.INFO: Lancement de la synchro variable-UTLN [] []
[2023-03-10T19:13:14.786968+01:00] console.INFO: Enregistrement des résultats d'import/synchro [] []
[2023-03-10T19:13:14.790662+01:00] console.INFO: Aucune instruction exécutée. [] []
Une erreur a été rencontrée!
Impossible de découvrir la liste des colonnes à partir des données sources suivantes car celles-ci sont vides : SRC_VARIABLE
ytennevin commented 1 year ago

Correction, il me restait trois erreurs:

Une erreur a été rencontrée!
Impossible de découvrir la liste des colonnes à partir des données sources suivantes car celles-ci sont vides : SRC_THESE_ANNEE_UNIV
--
Une erreur a été rencontrée!
Impossible de découvrir la liste des colonnes à partir des données sources suivantes car celles-ci sont vides : SRC_TITRE_ACCES
--
Une erreur a été rencontrée!
Impossible de découvrir la liste des colonnes à partir des données sources suivantes car celles-ci sont vides : SRC_VARIABLE
--

A chaque fois, les tables en tmp_ et ont l'air ok.

Il y a des données dans tmp_variable ; tmp_these_annee_univ et tmp_titre_acces et dans variable , these_annee_univ et titre_acces...

les imports correspondants ont l'air de passer, par contre, les synchros échouent...

Quant aux webservices, il y a des données dans SYGAL_THESE_ANNEE_UNIV_V2, SYGAL_VARIABLE et dans SYGAL_TITRE_ACCES.

J'ai fait des corrections sur les trois définitions des vues suivantes:

A priori une erreur sur les conditions de jointure entre l'id de l'établissement et structure_id dans etablissement.

Note: Je ne comprend pas ce que cette double jointure (structure et etablissement) vient faire vu qu'on ne l'utilise pas dans la vue, du code obsolete non nettoyé ? par cohérence de construction avec d'autres vues ?

diff --git a/doc/release-notes/4.0.0/import.sql b/doc/release-notes/4.0.0/import.sql
index 0e12fc1d..4d685fd9 100644
--- a/doc/release-notes/4.0.0/import.sql
+++ b/doc/release-notes/4.0.0/import.sql
@@ -682,7 +682,7 @@ SELECT NULL::text AS id,
        tmp.annee_univ
 FROM tmp_these_annee_univ tmp
          JOIN source src ON src.id = tmp.source_id
-         JOIN etablissement e ON e.structure_id = src.etablissement_id
+         JOIN etablissement e ON e.id = src.etablissement_id
          JOIN structure s ON s.id = e.structure_id
          JOIN these t ON t.source_code::text = tmp.these_id::text;

@@ -699,7 +699,7 @@ SELECT NULL::text AS id,
        tmp.code_pays_titre_acces
 FROM tmp_titre_acces tmp
          JOIN source src ON src.id = tmp.source_id
-         JOIN etablissement e ON e.structure_id = src.etablissement_id
+         JOIN etablissement e ON e.id = src.etablissement_id
          JOIN structure s ON s.id = e.structure_id
          JOIN these t ON t.source_code::text = tmp.these_id::text;

@@ -724,5 +724,5 @@ SELECT NULL::text  AS id,
        tmp.date_fin_validite
 FROM tmp_variable tmp
          JOIN source src ON src.id = tmp.source_id
-         JOIN etablissement e ON e.structure_id = src.etablissement_id
+         JOIN etablissement e ON e.id = src.etablissement_id
          JOIN structure s ON s.id = e.structure_id;
ytennevin commented 1 year ago

A priori, plus d'erreurs d'imports avec les corrections apportées.

bertrandgauthier commented 1 year ago

J'ai fait des corrections sur les trois définitions des vues suivantes: src_these_annee_univ src_titre_acces src_variable

Super, merci pour cette correction. Chez nous ça fonctionnait car e.structure_id === e.id !

A priori, plus d'erreurs d'imports avec les corrections apportées. url se terminant par 'v2/' - ne pas oublier le /

La vérité est ailleurs car chez nous l'appel fonctionne bel et bien avec ces 2 formats d'URL :

ytennevin commented 1 year ago

Sur l'url, c'est étrange car initialement ça ne fonctionnait pas, j'ai forcé un /v2/ dans le code, puis quelques temps plus tard ça s'est mis à interogger /v2/v2 en rendant obsolete ma correction, donc j'ai reverté mon hack dans le code et je touche plus...