Projet

Général

Profil

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é

Ajouté par Fabrice Barconnière il y a presque 7 ans. Mis à jour il y a presque 7 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
24/04/2017
Echéance:
% réalisé:

100%

Temps estimé:
1.00 h
Temps passé:
Restant à faire (heures):
0.0

Révisions associées

Révision 1e0d2474 (diff)
Ajouté par Laurent Flori il y a presque 7 ans

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

Révision 1e911550 (diff)
Ajouté par Laurent Flori il y a presque 7 ans

Mise en place d'un nouveau semaphore pour détecter la procédure d'upgrade en cours

ref: #20847

Révision fa254fbd (diff)
Ajouté par Laurent Flori il y a presque 7 ans

Mise en place d'un lock avant upgrade poru amonecole

ref: #20847

Révision a256f5ff (diff)
Ajouté par Fabrice Barconnière il y a presque 7 ans

Upgrade en mode conteneur : typo sur la variable indiquant le mode conteneur

ref #20847

Révision ce46f31a (diff)
Ajouté par Fabrice Barconnière il y a presque 7 ans

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é

Formats disponibles : Atom PDF