Bug #6349
Erreur lors de la mise à jour du paquet
100%
Description
Avec le nouveau paquet dont la config est construite à partir des variable d'environment, j'obtiens le traceback suivant:
[info] Collecting static files ... Traceback (most recent call last): File "/usr/lib/authentic2/manage.py", line 29, in <module> execute_from_command_line(sys.argv[:1] + argv) File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 453, in execute_from_command_line utility.execute() File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 263, in fetch_command app_name = get_commands()[subcommand] File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 109, in get_commands apps = settings.INSTALLED_APPS File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line 53, in __getattr__ self._setup(name) File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line 48, in _setup self._wrapped = Settings(settings_module) File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line 132, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module __import__(name) File "/usr/lib/python2.7/dist-packages/authentic2/settings.py", line 250, in <module> execfile(os.environ['DJANGO_CONFIG_FILE']) File "/usr/share/authentic2/debian_config.py", line 194, in <module> extract_settings_from_environ() File "/usr/share/authentic2/debian_config.py", line 105, in extract_settings_from_environ globals()[path_env] = os.environ[path_env].split(':') + old TypeError: can only concatenate list (not "tuple") to list
Fichiers
Révisions associées
convert settings as lists to tuples
Closes #6349
Historique
Mis à jour par Serghei Mihai il y a environ 9 ans
Je propose de convertir tout en tuple car certaines variables de config, comme ALLOWED_HOSTS
, sont des listes alors que d'autres des tuples:
Modified debian/debian_config.py diff --git a/debian/debian_config.py b/debian/debian_config.py index efe1c6a..4200363 100644 --- a/debian/debian_config.py +++ b/debian/debian_config.py @@ -102,7 +102,7 @@ def extract_settings_from_environ(): for path_env in PATH_ENVS: if path_env in os.environ: old = globals().get(path_env) - globals()[path_env] = os.environ[path_env].split(':') + old + globals()[path_env] = tuple(os.environ[path_env].split(':')) + tuple(old) INT_ENVS = ( 'SESSION_COOKIE_AGE',
Mis à jour par Benjamin Dauvergne il y a environ 9 ans
Ok, regarde quand même s'il n'y en a pas d'autres.
Mis à jour par Frédéric Péters il y a environ 9 ans
La démarche prise upstream est d'aller vers des listes plutôt que des tuples (https://code.djangoproject.com/ticket/24149).
Mis à jour par Benjamin Dauvergne il y a environ 9 ans
Sauf qu'on a des tuples un peu partout dans les fichiers de config locaux, je serai donc pour jouer la prudence, attendons que Django ait lui même fait la migration.
Mis à jour par Serghei Mihai il y a environ 9 ans
On peut tout convertir en listes, car d'après le patch proposé dans le ticket pointé par Fred les tests passent quand les variables sont des listes.
Mis à jour par Serghei Mihai il y a environ 9 ans
- Fichier 0001-all-environment-settings-are-lists.patch 0001-all-environment-settings-are-lists.patch ajouté
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a environ 9 ans
Je m'en fous des tests, je dis que ça ne marchera pas quand on l'installera en production chez nous, donc pour moi on reste avec des tuple tant que Django n'a pas fait le changement dans une version releasée.
Mis à jour par Frédéric Péters il y a environ 9 ans
Mon commentaire c'était juste remplacer les tuple() par des list() dans cette ligne :
+ globals()[path_env] = tuple(os.environ[path_env].split(':')) + tuple(old)
Mais n'en faisons rien, ça marchera très bien avec le patch initial.
Mis à jour par Serghei Mihai il y a environ 9 ans
- Statut changé de Nouveau à Résolu (à déployer)
- % réalisé changé de 0 à 100
Appliqué par commit 69eecf837fe999ba2701add7dd13d2718354501a.
Mis à jour par Benjamin Dauvergne il y a environ 9 ans
- Statut changé de Résolu (à déployer) à Fermé
convert settings as lists to tuples
Closes #6349