Tâche #20847
Scénario #20668: Finaliser Upgrade-Auto de 2.5.2 vers 2.6.1 (suite)
Upgrade-Auto Amonecole : l'instance ne devrait pas être possible si gen_conteneurs n'a pas été exécuté
Révisions associées
Warning si gen_conteneur n'est pas executé après upgrade et avant instance
ref: #20847
Mise en place d'un message d'erreur si tentative d'instance avant gen_conteneurs apres upgrade
Mise en place d'un nouveau semaphore pour détecter la procédure d'upgrade en cours
ref: #20847
Mise en place d'un lock avant upgrade poru amonecole
ref: #20847
Upgrade en mode conteneur : typo sur la variable indiquant le mode conteneur
ref #20847
Il manquait la suppression du semaphore gen_conteurs en fin de procédure
ref #20847
Historique
#1 Mis à jour par Joël Cuissinat il y a presque 7 ans
L'Upgrade devrait supprimer le fichier de lock défini par :
>>> from creole.reconfigure import container_instance_lockfile >>> print container_instance_lockfile /etc/eole/.container_instance.lock
#2 Mis à jour par Laurent Flori il y a presque 7 ans
Le fichier de lock ne sert pas à empêcher instance si un gen_conteneur est nécessaire.
S'il faut absolument exécuter gen_conteneur avant instance, ce serait de déclarer un nouveau fichier de lock dans creole/config.py:
GEN_CONTAINER_NEEDED = '/etc/eole/.gen_container.lock'
Et de créer ce fichier en post_upgrade
De patcher creole/reconfigure.py:
--- /usr/lib/python2.7/dist-packages/creole/reconfigure.py 2017-05-12 14:35:23.000000000 +0200 +++ ./reconfigure.py 2017-06-20 17:13:57.430921160 +0200 @@ -39,7 +39,7 @@ import fonctionseole, template, cert from .eosfunc import is_instanciate from .config import configeol, INSTANCE_LOCKFILE, UPGRADE_LOCKFILE, \ - container_instance_lockfile, VIRTROOT, charset + container_instance_lockfile,GEN_CONTAINER_NEEDED, VIRTROOT, charset from .containers import is_lxc_enabled, is_lxc_running, is_lxc_started, \ generate_lxc_container, create_mount_point, lxc_need_restart from .error import NetworkConfigError @@ -283,6 +283,9 @@ if os.path.isfile(container_instance_lockfile) and not options.interactive: raise Exception(_('you have run gen_conteneurs, please use instance instead of reconfigure')) + if os.path.isfile(GEN_CONTAINER_NEEDED): + raise Exception(_('you have to run gen_conteneurs, please use gen_conteneurs to generate containers')) + if display_info: print print error_msg_documentation
Il faut aussi effacer le nouveau fichier de lock après le gen_conteneurs dans /usr/sbin/gen_conteneurs:
--- /usr/sbin/gen_conteneurs 2017-05-19 10:33:09.000000000 +0200 +++ ./gen_conteneurs 2017-06-20 17:23:00.158898434 +0200 @@ -20,7 +20,7 @@ import sys import argparse import traceback -from os import system +from os import system, remove from os.path import isdir from pyeole import scriptargs @@ -32,7 +32,7 @@ _ = i18n('eole-common') from creole.reconfigure import containers, install_packages, \ - container_instance_lockfile, options, restart_creoled + container_instance_lockfile, GEN_CONTAINER_NEEDED, options, restart_creoled _CACHE_DIR = '/opt/cache' @@ -83,6 +83,7 @@ user_exit() file(container_instance_lockfile, 'w').write('') + remove(GEN_CONTAINER_NEEDED) containers(minimal=True, log_=log) ihm.print_title(_("Installing additional packages")) if options.log_level in ['info', 'debug']:
Pour bien faire il faudrait aussi traduire le message de warning en francais et le donner à gettext (sauf si on prend l'option de la note 3)
#3 Mis à jour par Laurent Flori il y a presque 7 ans
Une idée complémentaire serait de forcer le gen_conteneurs si le fichier de lock existe (GEN_CONTAINER_NEEDED dans la note précédente) du coup l'utilisateur n'aurait plus besoin de lancer gen_conteneurs avant instance
#4 Mis à jour par Scrum Master il y a presque 7 ans
- Statut changé de Nouveau à En cours
#5 Mis à jour par Laurent Flori il y a presque 7 ans
- Assigné à mis à Laurent Flori
#6 Mis à jour par Laurent Flori il y a presque 7 ans
- Restant à faire (heures) changé de 1.0 à 0.5
#7 Mis à jour par Laurent Flori il y a presque 7 ans
- Statut changé de En cours à Résolu
#8 Mis à jour par Fabrice Barconnière il y a presque 7 ans
- Restant à faire (heures) changé de 0.5 à 0.0
#9 Mis à jour par Fabrice Barconnière il y a presque 7 ans
- % réalisé changé de 0 à 100
Le paquet n'avait pas été refait.
Test avec le nouveau paquet et le correctif de la typo en cours
#10 Mis à jour par Fabrice Barconnière il y a presque 7 ans
Pour tester correctement, il faudrait que les modifications apportées soient sur l'ISO 2.6.1 téléchargée à l'upgrade.
Je testerai en modifiant le sources.list
pour inclure les paquets proposed-updates 2.6.1
#11 Mis à jour par Fabrice Barconnière il y a presque 7 ans
- % réalisé changé de 100 à 80
- Restant à faire (heures) changé de 0.0 à 1.0
root@amonecole:~# instance --------------------------------------------------------------------------------------------------------------------------------------- Début de configuration --------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------- Préparation pour instance --------------------------------------------------------------------------------------------------------------------------------------- Vous devez utiliser la commande gen_conteneurs avant d'utiliser la commande instance.
Même chose après gen_conteneurs. Il doit manquer la suppression du semaphore une fois la procédure gen_conteneurs terminée.
#12 Mis à jour par Fabrice Barconnière il y a presque 7 ans
- % réalisé changé de 80 à 100
- Restant à faire (heures) changé de 1.0 à 0.0
Cette fois, c'est bon.
#13 Mis à jour par Fabrice Barconnière il y a presque 7 ans
- Statut changé de Résolu à Fermé