Project

General

Profile

Scénario #29088

Les établissements de rattachement doivent être corrects dans l'annuaire Thot

Added by Joël Cuissinat 4 months ago. Updated 2 months ago.

Status:
Terminé (Sprint)
Priority:
Normal
Assigned To:
Category:
-
Start date:
09/23/2019
Due date:
11/22/2019
% Done:

100%

Story points:
4.0
Remaining (hours):
0.00 hour
Velocity based estimate:
Release:
Release relationship:
Auto

Description

Extrait de la demande originale d'Arnaud Grossir

Bonjour,

Nous avons un serveur thot 2.6.2 mis à jour avec le dernier paquet python-eoleaaf (2.6.2-23)
un "aaf-complet" s'est bien passé (en tout cas je n'ai pas remarqué d'erreurs)
le lendemain, un "aaf-complet-maj" (nous utilisons des extraction AAF complètes) m'a remonté de nouvelles erreurs:

[ ... ]

3) erreur non bloquante mais génératrice d'incohérences (une partie du point 5 de ma dernière demande) (nb : #28733)

Certains enseignants ont des cours sur deux établissements (leur établissement de rattachement + un autre), mais lors
de l'aaf-complet-maj, les fichiers finaux ldif contiennent bien les deux lignes attendues mais elles ne sont pas cohérentes.
(j'ai repéré pour les professeurs les attributs
"ENTAuxEnsMatiereEnseignEtab" et "ENTAuxEnsClasses", mais il y en a peut-être d'autres...)

J'ai donc vérifié pour une enseignante de musique qui a ce problème (j'ai anonymisé la personne):

-le fichier AAF est correct elle a un etablissement de rattachement:1535 et un autre établissement ou elle dispense des cours également:1441

<addRequest>
<operationalAttributes><attr name="categoriePersonne"><value>PersEducNat</value></attr></operationalAttributes>
<identifier><id>15381</id></identifier>
<attributes>
<attr name="ENTPersonJointure"><value>15381</value></attr>
<attr name="ENTPersonDateNaissance"><value>XXXXXXXXXX</value></attr>
<attr name="ENTPersonNomPatro"><value>XXXXXXXX</value></attr>
<attr name="sn"><value>XXXXXXXX</value></attr>
<attr name="givenName"><value>XXXXXXX</value></attr>
<attr name="personalTitle"><value>Mme</value></attr>
<attr name="mail"><value>XXXXXXXXXXXX</value></attr>
<attr name="ENTPersonStructRattach"><value>1535</value></attr>
<attr name="ENTAuxEnsCategoDiscipline"><value>17$EDUCATION MUSICALE</value></attr>
<attr name="ENTAuxEnsDisciplinesPoste"><value>EDUCATION MUSICALE$17</value></attr>
<attr name="ENTAuxEnsMEF"><value>1535$10310019110$3EME</value><value>1535$1031001911U$3EME ULIS</value><value>1535$1021000111U$4EME ULIS</value><value>1535$10210001110$4EME</value><value>1535$10110001110$5EME</value><value>1535$1011000111U$5EME ULIS</value><value>1535$10010012110$6EME</value><value>1535$1001001211U$6EME ULIS</value><value>1441$10210001110$4EME</value><value>1441$1021000111U$4EME ULIS</value><value>1441$10210001117$4EME SPORTIVE</value><value>1441$10010012110$6EME</value><value>1441$10010012117$6EME SPORTIVE</value></attr>
<attr name="ENTAuxEnsMatiereEnseignEtab"><value>1535$EDUCATION MUSICALE</value><value>1441$EDUCATION MUSICALE</value></attr>
<attr name="ENTAuxEnsClasses"><value>1535$3A</value><value>1535$3B</value><value>1535$3C</value><value>1535$4A</value><value>1535$4B</value><value>1535$4C</value><value>1535$5A</value><value>1535$5B</value><value>1535$5C</value><value>1535$6A</value><value>1535$6B</value><value>1535$6C</value><value>1441$42</value><value>1441$46</value><value>1441$67</value><value>1441$68</value></attr>
<attr name="ENTAuxEnsGroupes"><value/></attr>
<attr name="ENTAuxEnsClassesMatieres"><value>1535$3A$081300</value><value>1535$3B$081300</value><value>1535$3C$081300</value><value>1535$4A$081300</value><value>1535$4B$081300</value><value>1535$4C$081300</value><value>1535$5A$081300</value><value>1535$5B$081300</value><value>1535$5C$081300</value><value>1535$6A$081300</value><value>1535$6B$081300</value><value>1535$6C$081300</value><value>1441$42$081300</value><value>1441$46$081300</value><value>1441$67$081300</value><value>1441$68$081300</value></attr>
<attr name="ENTAuxEnsGroupesMatieres"><value/></attr>
<attr name="ENTAuxEnsClassesPrincipal"><value/></attr>
<attr name="ENTPersonFonctions"><value>1535$ENS$ENSEIGNEMENT$L1700$EDUCATION MUSICALE</value><value>1441$ENS$ENSEIGNEMENT$L1700$EDUCATION MUSICALE</value></attr>
<attr name="ENTPersonCategorieEnseignant"><value>O</value></attr>
<attr name="PersEducNatPresenceDevantEleves"><value>O</value></attr>
</attributes>
</addRequest>

La base eoleaaf est correcte, et contient de bons renseignements. Vous remarquerez que j'ai également récupéré l'ENTPersonFonctions... vous verrez pourquoi ensuite.

mysql> select ENTPersonFonctions from enseignant where uid='DKS99535';
+-----------------------------------------------------------------------------------------------+
| ENTPersonFonctions                                                                            |
+-----------------------------------------------------------------------------------------------+
| 1535$ENS$ENSEIGNEMENT$L1700$EDUCATION MUSICALE
1441$ENS$ENSEIGNEMENT$L1700$EDUCATION MUSICALE |
+-----------------------------------------------------------------------------------------------+
1 row in set (0,01 sec)

mysql> select ENTAuxEnsMatiereEnseignEtab from enseignant where uid='DKS99535';
+-------------------------------------------------+
| ENTAuxEnsMatiereEnseignEtab                     |
+-------------------------------------------------+
| 1535$EDUCATION MUSICALE
1441$EDUCATION MUSICALE |
+-------------------------------------------------+
1 row in set (0,00 sec)

Ensuite c'est là que ça se complique, le traitement mysql->fichiers ldif ne prend que l'autre établissement (1441) alors que l'attribut
ENTPersonFonctions est correct (comme s'il passait par un autre traitement dans les scripts python):

dn: uid=DKS99535,ou=personnes,dc=enoe,dc=net
changetype: modify
 etc etc...
-
replace: ENTPersonStructRattach
ENTPersonStructRattach: cn=s1535,ou=structures,dc=enoe,dc=net
-
replace: ENTPersonFonctions
ENTPersonFonctions: 1535$ENS$ENSEIGNEMENT$L1700$EDUCATION MUSICALE
ENTPersonFonctions: 1441$ENS$ENSEIGNEMENT$L1700$EDUCATION MUSICALE
-
replace: ENTPersonDateNaissance
ENTPersonDateNaissance: 14/04/1978
-
replace: ENTAuxEnsCategoDiscipline
ENTAuxEnsCategoDiscipline: 17$EDUCATION MUSICALE
-
replace: ENTAuxEnsMatiereEnseignEtab
ENTAuxEnsMatiereEnseignEtab: cn=s1441,ou=structures,dc=enoe,dc=net$EDUCATION MUSICALE
ENTAuxEnsMatiereEnseignEtab: cn=s1441,ou=structures,dc=enoe,dc=net$EDUCATION MUSICALE
-
replace: ENTAuxEnsClasses
ENTAuxEnsClasses: cn=s1441,ou=structures,dc=enoe,dc=net$3A$3B$3C$4A$4B$4C$5A$5B$5C$6A$6B$6C
ENTAuxEnsClasses: cn=s1441,ou=structures,dc=enoe,dc=net$42$46$67$68

et dans le ldap (l'annuaire en cours sur Thot) j'ai ceci, (c'est l'établissement principal qui 1535 qui est présent à des places où l'on devrait trouver 1441):

ENTPersonStructRattach: cn=s1535,ou=structures,dc=enoe,dc=net
ENTPersonFonctions: 1535$ENS$ENSEIGNEMENT$L1700$EDUCATION MUSICALE
ENTPersonFonctions: 1441$ENS$ENSEIGNEMENT$L1700$EDUCATION MUSICALE
etc etc
ENTAuxEnsCategoDiscipline: 17$EDUCATION MUSICALE
ENTAuxEnsMatiereEnseignEtab: cn=s1535,ou=structures,dc=enoe,dc=net$EDUCATION MUSICALE
ENTAuxEnsMatiereEnseignEtab: cn=s1535,ou=structures,dc=enoe,dc=net$EDUCATION MUSICALE
ENTAuxEnsClasses: cn=s1535,ou=structures,dc=enoe,dc=net$3A$3B$3C$4A$4B$4C$5A$5
 B$5C$6A$6B$6C
ENTAuxEnsClasses: cn=s1535,ou=structures,dc=enoe,dc=net$42$46$67$68

C'est assez déroutant, on dirait (ce n'est qu'une supposition)
- que aaf-complet met l'établissement de rattachement (1535) à la place du second etablissement (1441)
- que aaf-complet-maj fait exactement l'inverse

D'autre part, je ne comprend pas comment on peut avoir ces deux valeurs identiques dans l'annuaire actif, ça devrait soulever une erreur ?!:
ENTAuxEnsMatiereEnseignEtab: cn=s1535,ou=structures,dc=enoe,dc=net$EDUCATION MUSICALE
ENTAuxEnsMatiereEnseignEtab: cn=s1535,ou=structures,dc=enoe,dc=net$EDUCATION MUSICALE

Voilà, merci encore pour le travail déjà effectué.. et pour celui arrive en cet instant !

Cordialement

Solutions à mettre en œuvre

  • implémenter les évolutions sur EOLE >= 2.6.2
  • reproduire étudier et corriger le problème
  • tester la non régression dans le test Jenkins test-thot-aaf-complet-1901

Critères d'acceptation

le test Jenkins test-thot-aaf-complet-1901 est passant
le test Jenkins test-thot-aaf-delta-1511 est passant


Subtasks

Tâche #28979: Vérifier et résoudre les problèmes de rattachement des professeurs à plusieurs établissementsFerméBenjamin Bohard

Tâche #29242: Modifier les jeux de tests pour incorporer le cas problématiqueFerméBenjamin Bohard


Related issues

Related to Distribution EOLE - Tâche #29278: Validation du scénario : Les établissements de rattachement doivent être corrects dans l'annuaire Thot Fermé 11/04/2019
Copied from Thot - Scénario #28951: Thot et import AAF au format ENT2VA: erreurs restantes Terminé (Sprint) 09/23/2019 10/11/2019

Associated revisions

Revision 4e69e9c5 (diff)
Added by Benjamin Bohard 2 months ago

Use variable from right scope.

Ref #29088

History

#1 Updated by Joël Cuissinat 4 months ago

  • Copied from Scénario #28951: Thot et import AAF au format ENT2VA: erreurs restantes added

#2 Updated by Joël Cuissinat 3 months ago

  • Subject changed from Thot et import AAF au format ENT2VA: erreurs restantes (suite) to Les établissements de rattachement doivent être corrects dans l'annuaire Thot
  • Description updated (diff)
  • Due date deleted (10/31/2019)
  • Assigned To deleted (Joël Cuissinat)
  • Target version deleted (sprint 2019 42-44 Equipe MENSR)
  • Start date deleted (07/18/2019)
  • Release changed from EOLE 2.7.1.2 to Carnet de produit (Cadoles)

#3 Updated by Gilles Grandgérard 3 months ago

  • Due date set to 11/22/2019
  • Target version set to Prestation Cadoles 45-47
  • Start date set to 10/28/2019

#4 Updated by Matthieu Lamalle 3 months ago

La base mysql étant correcte, mais le ldif apportant une différences, il faut considérer que la base de donnée à raison, et reporter les mêmes valeurs dans le ldif.
Lors de la création du ldif, il ne faut traiter que les utilisateurs rattachés à l'établissement courant, et reporter les valeurs de la base dans le ldif.

Nous ne sommes pas sur de pouvoir construire les XML pour reproduire le problème.
Il nous faut les XML de tests afin de pouvoir reproduire le problème, l'analyser, et le corriger si possible.

#5 Updated by Joël Cuissinat 3 months ago

Dans le jeu de données eole-ci-tests "dataset/aaf-mini/complet", il existe deux établissements (2515 et 2516), il est donc possible d'ajouter un enseignant sur le modèle de l'extrait XML fourni dans la demande.

Si nécessaire, nous pourrons faire la modification dans le dépôt à partir de mardi prochain (12/11).

#6 Updated by Joël Cuissinat 2 months ago

  • Related to Tâche #29278: Validation du scénario : Les établissements de rattachement doivent être corrects dans l'annuaire Thot added

#7 Updated by Joël Cuissinat 2 months ago

  • Assigned To set to Benjamin Bohard

#8 Updated by Joël Cuissinat 2 months ago

  • Description updated (diff)

#9 Updated by Joël Cuissinat 2 months ago

  • Status changed from Nouveau to Terminé (Sprint)

#10 Updated by Joël Cuissinat 2 months ago

  • Release changed from Carnet de produit (Cadoles) to EOLE 2.7.1.2

Also available in: Atom PDF