Projet

Général

Profil

Development #6196

Gestion uniforme des settings

Ajouté par Frédéric Péters il y a plus de 9 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
23 décembre 2014
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:

Description

Il faut gérer les settings comme nos autres applications.

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 9 ans

D'une récente conversation avec Thomas, je notais trois points :

  • séparer les settings qui sont communes tenant ou pas.
  • faire un execfile() plutôt qu'un import
  • que le chemin du "local_settings" puisse être overridé par une variable d'environnement
#2

Mis à jour par Frédéric Péters il y a plus de 9 ans

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

J'ai poussé une version minimaliste de ces idées; toujours dans une branche de travail, ça reste ouvert à discussion.

commit ba1972dad6f8416d9987e7957e6249d99c762629
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Dec 30 10:57:01 2014 +0100

    settings: load multitenant settings if MULTITENANT=yes is set

commit 8bdf39b5aafd7ed2ef06f0d71fca089650e90895
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Dec 30 10:54:09 2014 +0100

    settings: isolate default settings, load local_settings.py from env (#6196)
#3

Mis à jour par Thomas Noël il y a plus de 9 ans

Je me pose finalement la question de l'intérêt d'avoir un truc qui parle de tenant dans le projet. Je pense que c'est inutile.

On réglera le multitenant dans l'empaquetage Debian. On y proposera un local_settings.py qui passera en mode tenant, et qui lui-même fera un execfile de /etc/combo/config.py pour les réglages globaux à l'hôte (chaque tenant ayant ensuite son config.py propre). Et on devrait pouvoir adoptera la même technique d'empaquetage pour tous nos logiciels Django "SaaS".

#4

Mis à jour par Frédéric Péters il y a plus de 9 ans

Je suis assez d'accord, j'ai d'ailleurs divisé l'affaire en deux commits sur cette idée. Dans la continuité, je me dis que ce qui est aujourd'hui dans le settings du multitenant, c'est-à-dire surtout ajouter des "entrouvert.djommon.multitenant..." à divers endroits, ça pourrait exister comme fichier dans python-entrouvert, plutôt qu'être répété dans les fichiers de configuration.

#5

Mis à jour par Frédéric Péters il y a plus de 9 ans

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

Autre chose, dans un chargement qui fait settings.py → execfile('/etc/.../config.py') → execfile('/usr/share/.../multitenant_settings.py'), je ne vois plus vraiment l'utilité du default_settings.py; j'en viendrais donc à réduire le patch pour qu'il soit simplement un appel à execfile() en bas d'un settings.py classique.

#6

Mis à jour par Thomas Noël il y a plus de 9 ans

Yep, d'accord avec ces deux derniers commentaires.

#7

Mis à jour par Frédéric Péters il y a plus de 9 ans

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

J'ai repoussé la branche wip/start, il n'y reste plus qu'un commit qui ajoute un execfile() au settings.py.

#8

Mis à jour par Frédéric Péters il y a plus de 8 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF