Scénario #29564
Faire fonctionner EoleDB sur EOLE 2.8.0 et le passer en python3
Statut:
Terminé (Sprint)
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
Début:
10/02/2020
Echéance:
20/03/2020
% réalisé:
100%
Points de scénarios:
4.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Release:
Liens avec la release:
Auto
Description
run-parts: executing /usr/share/eole/posttemplate/01-eoledb instance Start Systemd service mysql [ OK ] /usr/bin/eole_db_gen:152: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details. conf = yaml.load(yml_conf) 'EoleDbConnector' object has no attribute 'dbtype' 'EoleDbConnector' object has no attribute 'dbtype' Stop Systemd service mysql [ OK ]
Solutions à mettre en œuvre¶
- Adapter les instructions Mysql à la nouvelle version (cf. #29485 et https://stackoverflow.com/questions/50691977/how-to-reset-the-root-password-in-mysql-8-0-11#51186648)
- En profiter pour passer le code en python3
Critères d'acceptation¶
- Plus d'erreur lors de l'exécution de
/usr/share/eole/posttemplate/01-eoledb instance
dans https://dev-eole.ac-dijon.fr/jenkins/job/2.8.0/job/test-instance-acascribe-2.8.0-amd64/ (NB : si la génération du conteneur addc est toujours bloquante on pourra faire les tests et la démo sur Eolebase + eole-mysql) - Les bases sympa et rouncube sont présentes après l'instance
Sous-tâches
Demandes liées
Révisions associées
eole_db_gen : fix YAMLLoadWarning on EOLE 2.8.0
Ref: #29564
EoleDB : update imports for EOLE 2.8.0
Ref: #29564
Historique
#1 Mis à jour par Joël Cuissinat il y a environ 4 ans
Visiblement pylint signale le soucis dès la 2.6.2 :
root@scribe:~# pylint /usr/lib/python2.7/dist-packages/eoledb/eoledbconnector.py No config file found, using default configuration ************* Module eoledb.eoledbconnector W: 16, 0: Relative import 'eoledberrors', should be 'eoledb.eoledberrors' (relative-import) W: 21, 4: Relative import 'eoledbsqlite', should be 'eoledb.eoledbsqlite' (relative-import) W: 27, 4: Relative import 'eoledbpg', should be 'eoledb.eoledbpg' (relative-import) W: 33, 4: Relative import 'eoledbmysql', should be 'eoledb.eoledbmysql' (relative-import) C: 39, 0: Missing class docstring (missing-docstring) E: 57,66: Instance of 'EoleDbConnector' has no 'dbtype' member (no-member) R: 39, 0: Too few public methods (0/2) (too-few-public-methods) W: 15, 0: Unused import yaml (unused-import) ----------------------------------- Your code has been rated at 6.84/10
#2 Mis à jour par Joël Cuissinat il y a environ 4 ans
Sur Scribe 2.8.0, on voit le problème car le backend MySQL n'arrive à se charger :
root@scribe:~# python /usr/lib/python2.7/dist-packages/eoledb/eoledbmysql.py Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/eoledb/eoledbmysql.py", line 14, in <module> from _mysql_exceptions import OperationalError ImportError: No module named _mysql_exceptions
Il faut remplacer cet import par :
from MySQLdb._exceptions import OperationalError
#3 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Statut changé de Nouveau à Résolu
- Assigné à mis à Joël Cuissinat
- % réalisé changé de 0 à 100
#4 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Statut changé de Résolu à En cours
#5 Mis à jour par Joël Cuissinat il y a environ 4 ans
C'est mieux mais pas suffisant car EoleDB est également sensé effectuer des "GRANT" sur les bases de données mais il utilise toujours les anciennes syntaxes !
-- eoledb/eoledbmysql.py- if self.__userExists__(self.dbuser, self.dbhost) is False: eoledb/eoledbmysql.py- req = "grant all privileges on {0}.*".format(self.dbname) eoledb/eoledbmysql.py- req += " to '{0}'@'{1}'".format(self.dbuser, self.dbhost) eoledb/eoledbmysql.py: req += " identified by '{0}'".format(self.dbpass) -- eoledb/eoledbmysql.py- if self.__userExists__(self.dbuser, host) is False: eoledb/eoledbmysql.py- req = "grant all privileges on {0}.*".format(self.dbname) eoledb/eoledbmysql.py- req += " to '{0}'@'{1}'".format(self.dbuser, host) eoledb/eoledbmysql.py: req += " identified by '{0}';".format(self.dbpass)
Pour l'instant sur un Scribe 2.8.0, les utilisateurs sympa et roundcube ne sont tout simplement pas créés.
#6 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Assigné à
Joël Cuissinatsupprimé - Tâche parente
#29463supprimé
#7 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Tracker changé de Tâche à Scénario
- Echéance mis à 28/02/2020
- Statut changé de En cours à Nouveau
- Version cible changé de sprint 2020 04-06 Equipe MENSR à sprint 2020 07-09 Equipe MENSR
- Début changé de 05/02/2020 à 10/02/2020
- % réalisé changé de 100 à 0
- Release mis à EOLE 2.8.0
- Points de scénarios mis à 4.0
#8 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Version cible changé de sprint 2020 07-09 Equipe MENSR à Prestation Cadoles MEN 10-12
#9 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Sujet changé de Faire fonctionner EoleDB sur EOLE 2.8.0 à Faire fonctionner EoleDB sur EOLE 2.8.0 et le passer en python3
- Description mis à jour (diff)
#10 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Projet changé de Distribution EOLE à eole-db
#11 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Lié à Tâche #29713: Validation du scénario : Faire fonctionner EoleDB sur EOLE 2.8.0 et le passer en python3 ajouté
#12 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Assigné à mis à Matthieu Lamalle
#13 Mis à jour par Joël Cuissinat il y a environ 4 ans
Plus d'erreur dans https://dev-eole.ac-dijon.fr/jenkins/job/2.8.0/job/test-instance-acascribe-2.8.0-amd64/ (job n°30) :
10:47:40 run-parts: executing /usr/share/eole/posttemplate/01-eoledb instance 10:47:46 Start Systemd service mysql [ OK ] 10:47:52 ROUNDCUBE : 10:47:52 >>> Passwords [OK] 10:47:52 >>> Create [OK] 10:48:04 >>> Update [OK] 10:48:04 SYMPA : 10:48:04 >>> Passwords [OK] 10:48:04 >>> Create [OK] 10:48:04 >>> Update [OK] 10:48:10 Stop Systemd service mysql [ OK ]
Les bases sympa et roundcube sont présentes :
root@scribe:~# echo "show databases" | mysql --defaults-file=/etc/mysql/debian.cnf Database bareos controlevnc information_schema mysql performance_schema roundcube sympa sys
#14 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Statut changé de Nouveau à Terminé (Sprint)