Deux fuse servers sur une même machine
Mettons que nous ayions deux instances de Vidjil qui tournent sur une même machie (au hasard une version de prod et une version de test). Chaque instance doit avoir son propre fuse_server. Or, le code du fuse_server précise le port en dur. Du coup impossible d'avoir deux instances parallèles (même problème si le port est occupé). Le serveur pourrait chercher un port libre, l'utiliser et stocker le port utilisé dans un fichier. Ou, plus simple, lire le port à utiliser depuis un fichier de conf.
Est-ce que ce fichier de conf pourrait être simplement modules/defs.py ? Facile à récupérer pour model/task.py, plus délicat pour fuse_server.py, mais pas impossible (defs.py est du python standard, pas web2py)
Dans l'idée oui. Mais je suis toujours un peu gêné par le fait qu'un fichier de conf soit versionné (après il y a des choses qui sont poussées et qui ne devraient pas l'être ;-) ). Ça serait bien que defs.py lise les infos depuis un fichier de conf.
Mmm... il y a bien le module configParser de python qui lit les fichiers à la .ini... mais on ne fait que repousser le problème (au prix d'une complexificaiton) : on devra donner un fichier .ini d'exemple, avec des commentaires pour qu'il soit lisible, et lui devra être versionné.
Donc n'avoir que defs.py me paraît être une bonne solution; et c'est normalement le seul fichier dans lequel on met tout ce qui doit bouger. Après, le fichier versionné peut s'appeler quelque chose comme "defs-example.py", et une copie (ou pas) est effectuée sur le serveur, et on dit dans les instructions d'install comment s'en servir.
http://stackoverflow.com/questions/6009/how-do-you-deal-with-configuration-files-in-source-control
Il y aurait aussi des solutions basées sur git, mais bof... http://stackoverflow.com/a/1396886/4475279
1612a0be : defs.py.sample