Projet

Général

Profil

Anomalie #1798

Tentative de mise à jour d'une bdd alors que l'application est désactivée

Ajouté par Joël Cuissinat il y a presque 15 ans. Mis à jour il y a presque 14 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
23/05/2011
Echéance:
% réalisé:

100%

Temps estimé:
1.00 h
Temps passé:
Distribution:
EOLE 2.3

Description

scribe_envole_gibii => non

root@amonecole:~# /usr/share/eole/update_databases.py
## Mise à jour de base de données ##
# Mise à jour de la base de données gibii53
 - Erreur : La base gibii53 n'existe pas

Malgré le test prévu dans /usr/share/eole/applications/updates/creole_gibii/config.py

Nb : c'est peut-être une incompréhension de ma part au sujet du paramètre : "expected_response"


Demandes liées

Lié à Envole - Evolution #3569: Passer en revue les applis envole pour y ajouter le test d'activation Fermé 05/06/2012
Lié à moodle - Anomalie #5878: Erreur update_databases.py à la première instance/reconfigure Fermé

Révisions associées

Révision 7ad22051 (diff)
Ajouté par Bruno Boiget il y a presque 14 ans

prise en compte d'un test pour les applications désactivées dans eolesql/collect_update.py (fixes #1798)

Révision 65c3be52 (diff)
Ajouté par Amandine Manceau il y a environ 9 ans

fix #1798 PHP Warning in the profile logs (#1800)

Révision f4e4df65 (diff)
Ajouté par Amandine Manceau il y a environ 9 ans

fix #1798 PHP Warning in the profile logs (#1800)

Historique

#1 Mis à jour par Joël Cuissinat il y a presque 15 ans

  • Version cible changé de EOLE 2.3 Stable à Mises à jour 2.3 - 01 RC

#2 Mis à jour par Benoit Vila il y a plus de 14 ans

expected_response peut travailler en conjonction avec avec une requête SQL il faut donc que la base existe avant d'utiliser expected_response (et le script teste bien l’existence de la base avant d'utiliser expected_response) donc le test/l'erreur ne peut pas être évitée avec expected_response

il faudrait éventuellement rajouter un paramètre test similaire à celui de gen_database.py (sans remettre en cause "expected_response" qui reste utile)

en 2.2 le test de l'existence de la base est silencieux sur la console (log level 1 et 2 alors que l'affichage se fait a <= 0) en 2.3 le log level par defaut (0) est utilisé d'où l'affichage (cf #1643) ...

après, le cas n'est pas forcement fréquent non plus d'une applie installée mais jamais activée qui aurait une database (non crée donc) avec des updates

#3 Mis à jour par Emmanuel GARETTE il y a plus de 14 ans

  • Version cible changé de Mises à jour 2.3 - 01 RC à Mises à jour 2.3 - 02 RC

#4 Mis à jour par Joël Cuissinat il y a plus de 14 ans

  • Assigné à mis à Bruno Boiget
  • Version cible changé de Mises à jour 2.3 - 02 RC à Mises à jour 2.3 - 03 RC

#5 Mis à jour par Joël Cuissinat il y a plus de 14 ans

  • Version cible changé de Mises à jour 2.3 - 03 RC à Mises à jour 2.3.4 RC
  • Distribution mis à EOLE 2.3

#6 Mis à jour par Daniel Dehennin il y a presque 14 ans

  • Version cible changé de Mises à jour 2.3.4 RC à Mises à jour 2.3.5 RC

jusque là ça passe

#7 Mis à jour par Gérald Schwartzmann il y a presque 14 ans

Joël Cuissinat a écrit :

scribe_envole_gibii => non

[...]

Malgré le test prévu dans /usr/share/eole/applications/updates/creole_gibii/config.py

Nb : c'est peut-être une incompréhension de ma part au sujet du paramètre : "expected_response"

reproduit avec un reconfigure :

lors d'une reconfigure un message d'erreur à propos des bases de données apparaît lorsque POSH n'est pas activé
Postconfiguration ***

génération des base de données ##
mise à jour de la base de données posh
- erreur : la base de posh n'existe pas
mise à jour de la base poshprofile
- erreur : la base poshprofile n'existe pas

#8 Mis à jour par Benjamin Bohard il y a presque 14 ans

La liste des bases de données à mettre à jour est créée par la fonction load_apps_conf() (eolesql/collect_update). Cette fonction ne filtre pas les applications non activées.

#9 Mis à jour par Bruno Boiget il y a presque 14 ans

Il n'y a pas vraiment moyen de définir automatiquement si une variable correspond à l'activation/désactivation d'une application.

Une solution pourrait être de fournir avec l'appli un fichier du genre /usr/share/eole/mysql/<appli>/variable_activation qui donne le nom de la variable à tester.

#10 Mis à jour par Bruno Boiget il y a presque 14 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#11 Mis à jour par Bruno Boiget il y a presque 14 ans

au final, j'ai mis en place la solution suivante:

dans config.py du répertoire update de l'application, on peut passer dans la structure une fonction qui teste l'activation de l'appli.

ça peut être la même fonction que celle qui est passée comme 'expected_response', mais elle ne prend pas de paramètre (expected_response peut recevoir ou pas le résultat d'une requête sql).

typiquement, ça sera une fonction dans ce style:

def test_activation():
    return test_var('activer_monappli')

par exemple dans eole-posh :

conf_dict = dict(db=DB,
                 expected_response=test_response,
                 test_active=test_response,
                 filenames=FILENAMES,
                 version='Mise à jour de posh'
                 )

#12 Mis à jour par Daniel Dehennin il y a presque 14 ans

  • Statut changé de Résolu à Fermé

Avec le paquet project:eole-posh en version de dev 3.1.2-eole4~8.gbp13d5cd j’obtiens :

root@amonecole:~# /usr/share/eole/update_databases.py
## Mise à jour de base de données ##
Aucune base à mettre à jour

Formats disponibles : Atom PDF