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 9 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 9 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 9 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 9 ans
- Statut changé de Nouveau à En cours
#5 Mis à jour par Laurent Flori il y a presque 9 ans
- Assigné à mis à Laurent Flori
#6 Mis à jour par Laurent Flori il y a presque 9 ans
- Restant à faire (heures) changé de 1.0 à 0.5
#7 Mis à jour par Laurent Flori il y a presque 9 ans
- Statut changé de En cours à Résolu
#8 Mis à jour par Fabrice Barconnière il y a presque 9 ans
- Restant à faire (heures) changé de 0.5 à 0.0
#9 Mis à jour par Fabrice Barconnière il y a presque 9 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 9 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 9 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 9 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 9 ans
- Statut changé de Résolu à Fermé