Projet

Général

Profil

Bug #6349

Erreur lors de la mise à jour du paquet

Ajouté par Serghei Mihai il y a environ 9 ans. Mis à jour il y a environ 9 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
Début:
26 janvier 2015
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Révision 69eecf83 (diff)
Ajouté par Serghei Mihai il y a environ 9 ans

convert settings as lists to tuples

Closes #6349

Révision d96ba4c7 (diff)
Ajouté par Serghei Mihai il y a environ 9 ans

convert settings as lists to tuples

Closes #6349

Historique

#1

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',
#2

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.

#3

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

#4

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.

#5

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.

#6

Mis à jour par Serghei Mihai il y a environ 9 ans

#7

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.

#8

Mis à jour par Benjamin Dauvergne il y a environ 9 ans

Donc NACK, je veux des tuples.

#9

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.

#10

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
#11

Mis à jour par Benjamin Dauvergne il y a environ 9 ans

  • Version cible mis à 2.1.12
#12

Mis à jour par Benjamin Dauvergne il y a environ 9 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF