Maint: internal/storage rework

- No more global variables
- Inject merged servers to configuration package
- Fix #566: configuration parsing to use persisted servers.json
- Move server data files from `internal/constants` to `internal/storage`
This commit is contained in:
Quentin McGaw (desktop)
2021-08-27 19:10:03 +00:00
parent b1cfc03fc5
commit 3863cc439e
59 changed files with 850 additions and 490 deletions

View File

@@ -27,7 +27,7 @@ type looper struct {
state state
// Objects
updater Updater
storage storage.Storage
flusher storage.Flusher
setAllServers func(allServers models.AllServers)
logger logging.Logger
// Internal channels and locks
@@ -46,7 +46,7 @@ type looper struct {
const defaultBackoffTime = 5 * time.Second
func NewLooper(settings configuration.Updater, currentServers models.AllServers,
storage storage.Storage, setAllServers func(allServers models.AllServers),
flusher storage.Flusher, setAllServers func(allServers models.AllServers),
client *http.Client, logger logging.Logger) Looper {
return &looper{
state: state{
@@ -54,7 +54,7 @@ func NewLooper(settings configuration.Updater, currentServers models.AllServers,
settings: settings,
},
updater: New(settings, client, currentServers, logger),
storage: storage,
flusher: flusher,
setAllServers: setAllServers,
logger: logger,
start: make(chan struct{}),
@@ -140,7 +140,7 @@ func (l *looper) Run(ctx context.Context, done chan<- struct{}) {
l.stopped <- struct{}{}
case servers := <-serversCh:
l.setAllServers(servers)
if err := l.storage.FlushToFile(servers); err != nil {
if err := l.flusher.FlushToFile(servers); err != nil {
l.logger.Error(err.Error())
}
runWg.Wait()