Development #1173
Gestion du fichier de conf dans wcsctl
90%
Description
Je viens de faire un patch qui permet à wcs de charger sa configuration depuis un fichier en utilisant wcsctl. L'option existait déjà mais n'avait jamais été implémenté.
Voici comment fonctionne mon patch :
wcsctl -f /etc/maconf.cfg cmd [options]
Le fichier de conf est comme ceci (j'utilise le configparser de Python) :
[main] app_dir = /var/lib/wcs data_dir = /usr/share/wcs auto_create_vhosts = true use_long_traces = true #error_log = /var/log/wcs/error.log #redirect_on_unknown_vhost = http://www.mysite.com
Normalement ce patch ne change rien à l'existant.
Fred si c'est ok pour toi je le pousse dans le svn. J'ai écrit ce patch car sous Squeeze le lien vers wcs_cfg.py est effacé à chaque mise à jour.
Fichiers
Historique
Mis à jour par Frédéric Péters il y a plus de 12 ans
Je pense que la raison initiale relève plus un problème de packaging qu'autre chose; cela étant, pourquoi pas ? Mais alors je préférerais ne pas instaurer de système hybride, et le plus simple c'est peut-être qu'un objet config soit passé à la classe Publisher (et donc create_publisher(cls, config=None)).
Ce serait aussi l'occasion de mettre raccord les noms des paramètres (i.e. on a aujourd'hui redirect_on_unknown_vhost vs missing_appdir_redirect), ça permettrait alors que des erreurs bêtes soient évitées, je pense à cette ligne du patch :
publisher_cls.auto_create_appdir = self.config.getboolean("main", "use_long_traces")
Par ailleurs, dans le patch, je ne vois pas vraiment la logique dans le passage des arguments effectivements passés dans le constructeur des commandes, les noms des variables m'apportent vraiment confusion, avec côte à côte "main_options", qui est déjà le résultat d'un traitement (le parse_args dans la méthode run), et "options", qui est lui la définition des options possibles à la commande. Je verrais plutôt
- def execute(self, options, args): + def execute(self, base_options, sub_options, args):
Finalement, il y aurait aussi à inclure dans le patch les modifications à debian/wcs.init, pour que /etc/wcs/wcs.cfg soit utilisé par défaut, et donc aussi modifier le patch pour que ça n'explose pas si le fichier n'existe pas.
Mis à jour par Jérôme Schneider il y a plus de 12 ans
On Tuesday 27 December 2011 18:16:28 you wrote:
La demande #1173 a été mise à jour par Frédéric Péters.
Je pense que la raison initiale relève plus un problème de packaging
qu'autre chose; cela étant, pourquoi pas ?
Oui clairement je peux m'en sortir dans le packaging mais ça me semble beaucoup
plus intéressant de faire le boulot dans w.c.s. Ca va nous permettre d'avoir
plusieurs instances de w.c.s. avec des configurations différentes.
Mais alors je préférerais ne
pas instaurer de système hybride, et le plus simple c'est peut-être qu'un
objet config soit passé à la classe Publisher (et donc
create_publisher(cls, config=None)).
Effectivement c'est mieux. (par contre dans ton exemple ça ne serait pas plus
create_publisher(self, config=None) ?)
Ce serait aussi l'occasion de mettre raccord les noms des paramètres (i.e.
on a aujourd'hui redirect_on_unknown_vhost vs missing_appdir_redirect), ça
permettrait alors que des erreurs bêtes soient évitées, je pense à cette
ligne du patch :> publisher_cls.auto_create_appdir = self.config.getboolean("main", > "use_long_traces")
Oui je n'ai pas osé changé ça :)
Par ailleurs, dans le patch, je ne vois pas vraiment la logique dans le
passage des arguments effectivements passés dans le constructeur des
commandes, les noms des variables m'apportent vraiment confusion, avec
côte à côte "main_options", qui est déjà le résultat d'un traitement (le
parse_args dans la méthode run), et "options", qui est lui la définition
des options possibles à la commande. Je verrais plutôt> - def execute(self, options, args): > + def execute(self, base_options, sub_options, args): >
Ca ne me plaisait pas vraiment non plus. C'est parfait le base_options et le
sub_options.
Finalement, il y aurait aussi à inclure dans le patch les modifications à
debian/wcs.init, pour que /etc/wcs/wcs.cfg soit utilisé par défaut, et
donc aussi modifier le patch pour que ça n'explose pas si le fichier
n'existe pas.
Je fais un nouveau patch avec tout ça.
Mis à jour par Jérôme Schneider il y a plus de 12 ans
Est-ce que j'en profite pour virer les options --app-dir et --data-dir qui me semble ne plus trop avoir d'intérêt avec ces modifs ? Le soucis c'est que ça va casser la compatibilité.
Mis à jour par Frédéric Péters il y a plus de 12 ans
Je dirais qu'on peut les garder, elles overrident ce qui est défini dans le fichier de config.
Mis à jour par Jérôme Schneider il y a plus de 12 ans
- Fichier wcs.manageconfigfile.diff wcs.manageconfigfile.diff ajouté
Un nouveau patch qui marche. Je n'ai pas fait exactement ce qu'il a été décidé plus haut mais je peux expliquer pourquoi. Pour l'harmonisation des noms je ferais ca après.
Mis à jour par Jérôme Schneider il y a plus de 12 ans
- Fichier wcs.manageconfigfile.diff wcs.manageconfigfile.diff ajouté
Mis à jour par Thomas Noël il y a plus de 12 ans
- Statut changé de Solution déployée à Résolu (à déployer)
Mis à jour par Frédéric Péters il y a plus de 10 ans
- Statut changé de Résolu (à déployer) à Fermé