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 13 ans. Mis à jour il y a presque 12 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 12 ans

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

Révision 35883382 (diff)
Ajouté par Bruno Boiget il y a presque 12 ans

test_active dans la conf eole-mysql : désactive maj des bases si appli désactivée (ref #1798)

Révision 35883382 (diff)
Ajouté par Bruno Boiget il y a presque 12 ans

test_active dans la conf eole-mysql : désactive maj des bases si appli désactivée (ref #1798)

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

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

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

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

Historique

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

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

#2 Mis à jour par Benoit Vila il y a presque 13 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 presque 13 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 12 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 12 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 environ 12 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 12 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 12 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 12 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 12 ans

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

#11 Mis à jour par Bruno Boiget il y a presque 12 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 12 ans

  • Statut changé de Résolu à Fermé

Avec le paquet 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