Scénario #29088
Les établissements de rattachement doivent être corrects dans l'annuaire Thot
100%
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
Related issues
Associated revisions
Use variable from right scope.
Ref #29088
History
#1 Updated by Joël Cuissinat almost 4 years ago
- Copied from Scénario #28951: Thot et import AAF au format ENT2VA: erreurs restantes added
#2 Updated by Joël Cuissinat almost 4 years 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 almost 4 years 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 almost 4 years 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 almost 4 years 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 almost 4 years 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 almost 4 years ago
- Assigned To set to Benjamin Bohard
#8 Updated by Joël Cuissinat almost 4 years ago
- Description updated (diff)
#9 Updated by Joël Cuissinat almost 4 years ago
- Status changed from Nouveau to Terminé (Sprint)
#10 Updated by Joël Cuissinat almost 4 years ago
- Release changed from Carnet de produit (Cadoles) to EOLE 2.7.1.2