Projet

Général

Profil

Tâche #11097

Mis à jour par Bruno Boiget il y a environ 9 ans

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) :



<pre>
git diff fbb58f52a86f47120ddb67441f7a7a5c5ef90bf0..a7d79e199d93741167d7d14d3a3b5bd3147fe679

diff --git a/creole/loader.py b/creole/loader.py
index 31c43e4..2c182c4 4260195..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 -238,13 +239,17 @@ 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
force_load_owner=

def
load_config_store(config, store, unset_default=False,
+

force_load_owner=None, current_eol_version=None,
- force_instanciate=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,

+ - force_load_owner=force_load_owner, current_eol_version=current_eol_version)
+ current_eol_version=current_eol_version,
+ remove_unknown_vars=remove_unknown_vars)
+
+def


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 -259,7 +264,6 @@ def load_config_eol(config, load_values(config, configfile=None, try_upgrade=True, force_load_owner= force_load_owner=None
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):

</pre>

Retour