Projet

Général

Profil

Tâche #11097

Scénario #11062: Publier la mise à jour 2.3.16 Stable

Zephir 2.3.16 : Intégrer les modifications en cours sur l'upgrade des modules écologie.

Ajouté par Bruno Boiget il y a presque 9 ans. Mis à jour il y a presque 9 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
30/03/2015
Echéance:
% réalisé:

100%

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

Description

Des adaptations sont encore en cours sur upgrade.py de creole 2.3 pour l'upgrade des modules essl/esbl/...

A intégrer dans la librairie 'creole3' de Zéphir quand ils seront prêts.

Attention, la branche 2.4.1 de creole ne comprend pas certaines adaptations faites pour Zéphir (seulement dans master). Il faudra soit les intégrer dans la branche 2.4.1 (préférable pour la maintenance), soit les ajouter 'à la main' au niveau du dossier 'creole3' de creole 2.3.

Pour référence (git diff 20f78312..a7d79e19) :

diff --git a/creole/loader.py b/creole/loader.py
index 31c43e4..2c182c4 100644
--- a/creole/loader.py
+++ b/creole/loader.py
@@ -5,6 +5,7 @@ import fcntl

 from os.path import isdir, isfile, join, basename, dirname
 from os import listdir, makedirs
+from distutils.version import StrictVersion
 try:
     from collections import OrderedDict
 except:
@@ -225,13 +226,33 @@ def load_extras(config, load_values=True):
         if isfile(eol_file):
             config_load_values(config, extraname)

-
-def load_config_eol(config, configfile=None, try_upgrade=True, force_load_owner=None):
+def load_config_eol(config, configfile=None, try_upgrade=True, force_load_owner=None, current_eol_version=None):
     if not configfile:
         configfile = _gen_eol_file('creole')
     config.impl_set_information('creole', configfile)
     config_load_values(config, 'creole', force_load_owner=force_load_owner)
-    remove_unknown_vars = False
+    load_values(config,
+                configfile=configfile,
+                try_upgrade=try_upgrade,
+                force_load_owner=force_load_owner,
+                current_eol_version=current_eol_version)
+
+def load_config_store(config, store, unset_default=False,
+                      force_load_owner=None, current_eol_version=None,
+                      force_instanciate=None, remove_unknown_vars=False):
+    """used on Zéphir to upgrade values (2.4.X -> 2.4.X+1) on a configuration
+       that has already been migrated (2.2/2.3 −> 2.4)
+    """ 
+    config_load_store(config, 'creole', store, force_load_owner=force_load_owner,
+                      unset_default=unset_default, force_instanciate=force_instanciate)
+    load_values(config,
+                try_upgrade=False,
+                force_load_owner=force_load_owner,
+                current_eol_version=current_eol_version,
+                remove_unknown_vars=remove_unknown_vars)
+
+def load_values(config, configfile=None, try_upgrade=True, force_load_owner=None,
+                current_eol_version=None, remove_unknown_vars=False):
     if config.impl_get_information('load_error', False) and try_upgrade:
         #Try to upgrade
         from creole.upgrade import upgrade
@@ -243,21 +264,23 @@ def load_config_eol(config, configfile=None, try_upgrade=True, force_load_owner=
         except Exception, e:
             config.impl_set_information('load_error', True)
             #print "fichier de configuration invalide 2.2 ou 2.3: {0} : {1}".format(configfile, e)
-    from distutils.version import StrictVersion
-    current_eol_version = get_version('EOLE_RELEASE')
+    if current_eol_version == None:
+        current_eol_version = get_version('EOLE_RELEASE')
     eol_version = str(config.impl_get_information('eol_version'))

-    if StrictVersion(eol_version) < StrictVersion('2.4.1'):
-        try:
-            from creole.upgrade24 import upgrade240_241
-            upgrade240_241(config)
-            if config.impl_get_information('upgrade', '') == '':
-                #set the version only if it is the first upgrade
-                config.impl_set_information('upgrade', eol_version)
-        except Exception, e:
-            config.impl_set_information('load_error', True)
-    elif StrictVersion(eol_version) > StrictVersion(current_eol_version):
-        raise Exception(_('eol_version ({0}) is greater than current version ({1})').format(eol_version, current_eol_version))
+    if StrictVersion(current_eol_version) >= StrictVersion('2.4.0'):
+        #can be used to edit lower versions on Zéphir
+        if StrictVersion(eol_version) < StrictVersion('2.4.1'):
+            try:
+                from creole.upgrade24 import upgrade240_241
+                upgrade240_241(config)
+                if config.impl_get_information('upgrade', '') == '':
+                    #set the version only if it is the first upgrade
+                    config.impl_set_information('upgrade', eol_version)
+            except Exception, e:
+                config.impl_set_information('load_error', True)
+        elif StrictVersion(eol_version) > StrictVersion(current_eol_version):
+            raise Exception(_('eol_version ({0}) is greater than current version ({1})').format(eol_version, current_eol_version))

     if remove_unknown_vars:
         # nettoyage des variables inconnues en dernier (#9858)
@@ -546,7 +569,7 @@ def config_get_values(config, namespace, check_mandatory=True, ignore_autofreeze
     store.update(config.impl_get_information('unknown_options', {}))
     return store

-def config_save_values(config, namespace, reload_config=True, eol_file=None, check_mandatory=True):
+def config_save_values(config, namespace, reload_config=True, eol_file=None, check_mandatory=True, eol_version=None):
     subconfig = getattr(config, namespace)
     if eol_file is not None:
         config.impl_set_information(namespace, eol_file)
@@ -555,7 +578,12 @@ def config_save_values(config, namespace, reload_config=True, eol_file=None, che
     except AttributeError:
         raise Exception(_(u'config must have eol_file attribute'))
     store = config_get_values(config, namespace, check_mandatory)
-    store['___version___'] = get_version('EOLE_RELEASE')
+    # on stocke la version passée en paramètre (si >= 2.4.1) ou celle du système le cas échéant
+    if eol_version:
+        if StrictVersion(eol_version) >= StrictVersion('2.4.1'):
+            store['___version___'] = eol_version
+    else:
+        store['___version___'] = get_version('EOLE_RELEASE')
     try:
         dirn = dirname(eol_file)
         if not isdir(dirn):

Demandes liées

Lié à creole - Tâche #10866: Intégrer les dernières modifications à Zéphir 2.3 (migration esbl / noms réels des conteneurs) Reporté 09/03/2015

Révisions associées

Révision 70dd8d76 (diff)
Ajouté par Bruno Boiget il y a presque 9 ans

zephir-creole3 : Modifications sur ugprade.py pour les modules écologie

ref #11097 @45m

Historique

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

  • Description mis à jour (diff)

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

  • Description mis à jour (diff)

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

  • Assigné à changé de force violette à Bruno Boiget

#4 Mis à jour par Joël Cuissinat il y a presque 9 ans

  • Statut changé de Nouveau à En cours

#5 Mis à jour par Scrum Master il y a presque 9 ans

  • Statut changé de En cours à Résolu

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

  • % réalisé changé de 0 à 100
  • Restant à faire (heures) changé de 2.0 à 0.25

Les modifications ont été intégrées dans le dernier paquet stable.

#7 Mis à jour par Fabrice Barconnière il y a presque 9 ans

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) changé de 0.25 à 0.0

Formats disponibles : Atom PDF