Segnalazione #810
Caricare la configurazione da un file
0%
Description
Al momento in caso di presenza della directory /etc/fuss-server
viene caricata la configurazione "standard", altrimenti quella mock; la configurazione standard dovrebbe però caricare le opzioni da un file, ad esempio /etc/fuss-manager/fuss-manager.conf
(con gli opportuni default).
Il pacchetto dovrebbe poi creare quella directory, con un file opportuno.
Related issues
Associated revisions
Add tests for the MockConfig. refs #810
Tests for MockConfig. refs #810
Improvements to MockConfig. refs #810
Use /etc/fuss-manager as a default place for things. refs: #810
Instead of using a mix of /etc/fuss-manager and /etc/fuss-server
Change loading of default configs. refs: #810
If there is /etc/fuss-manager/ but no
/etc/fuss-manager/fuss-manager.yaml nor a fuss-manager.yaml in the
current directory, load default “production” configuration.
Remove loading a configuration file from the current directory. refs: #810
Add options to specify a configuration file or mock mode. refs #810
Sync with master. refs: #810
Merged in master. Closes: #810
History
Updated by Elena Grandi over 5 years ago
- Status changed from In elaborazione to Commenti
- Assignee set to Enrico Zini
Nel branch ci sono le modifiche che fanno sì che fuss-manager carichi:
- se presente, il file
/etc/fuss-manager/fuss-manager.yaml
(con dei default opportuni per quanto non presente nel file); - altrimenti, se presente il file
fuss-manager.yaml
nella directory corrente (idem come sopra); - altrimenti, se è presente una directory
/etc/fuss-manager/
(che viene creata dal pacchetto), la configurazione di “produzione” di default; - altrimenti la configurazione mock.
Una volta mergiato può valer la pena di ripassarmi il ticket controllare che il file fuss-manager.yaml.example
(che ho aggiunto in doc
) venga installato correttamente dal pacchetto.
Updated by Enrico Zini over 5 years ago
- Assignee changed from Enrico Zini to Elena Grandi
In fuss-manager
, Runserver.make_app
, l'ordine di caricamento al momento è:
if os.path.exists('/etc/fuss-manager/fuss-manager.yaml'): config = Config('/etc/fuss-manager/fuss-manager.yaml') elif os.path.exists('fuss-manager.yaml'): config = Config('fuss-manager.yaml') elif os.path.exists('/etc/fuss-manager/'): config = Config() else: config = MockConfig()
Salterei il caricamento di fuss-manager.yaml
dalla directory corrente, che mi sembra pericoloso, perché si rischia che il comportamento di fuss-manager cambi a seconda di dove venga eseguito.
Propongo di sostituirlo con un'opzione di argparse (installata facendo override di add_subparser
in Runserver
) che fa override della configurazione da caricare, e già che si mette mano alla commandline, usare --mock per attivare la modalità mock invece di usarla come fallback.
Updated by Elena Grandi over 5 years ago
- Assignee changed from Elena Grandi to Enrico Zini
Fatte le due modifiche richieste, pronto per review e merge (ho già mergiato master dentro a t810 per verificare l'assenza di conflitti)
Updated by Enrico Zini over 5 years ago
- Status changed from Commenti to Chiuso
Bellissimo, non conoscevo add_mutually_exclusive_group()
!
Mergiato in master, chiudo.
Load configuration from a file, if explicitely specified. refs: #810