From 7e5ce976681e99be6b26d428935ba1106d530efa Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 12 Jan 2018 08:02:11 -0600 Subject: Remove global cfg vars (#8099) * remove global cfg vars * enterprise update --- jobs/schedulers.go | 3 +-- jobs/server.go | 32 +++++++++++++++++++++++++------- jobs/workers.go | 33 ++++++++++++++++----------------- 3 files changed, 42 insertions(+), 26 deletions(-) (limited to 'jobs') diff --git a/jobs/schedulers.go b/jobs/schedulers.go index bec53a49b..839cbbae8 100644 --- a/jobs/schedulers.go +++ b/jobs/schedulers.go @@ -10,7 +10,6 @@ import ( l4g "github.com/alecthomas/log4go" "github.com/mattermost/mattermost-server/model" - "github.com/mattermost/mattermost-server/utils" ) type Schedulers struct { @@ -56,7 +55,7 @@ func (srv *JobServer) InitSchedulers() *Schedulers { } func (schedulers *Schedulers) Start() *Schedulers { - schedulers.listenerId = utils.AddConfigListener(schedulers.handleConfigChange) + schedulers.listenerId = schedulers.jobs.ConfigService.AddConfigListener(schedulers.handleConfigChange) go func() { schedulers.startOnce.Do(func() { diff --git a/jobs/server.go b/jobs/server.go index 777b02a26..9a59fad3f 100644 --- a/jobs/server.go +++ b/jobs/server.go @@ -12,11 +12,25 @@ import ( "github.com/mattermost/mattermost-server/utils" ) +type ConfigService interface { + Config() *model.Config + AddConfigListener(func(old, current *model.Config)) string + RemoveConfigListener(string) +} + +type StaticConfigService struct { + Cfg *model.Config +} + +func (s StaticConfigService) Config() *model.Config { return s.Cfg } +func (StaticConfigService) AddConfigListener(func(old, current *model.Config)) string { return "" } +func (StaticConfigService) RemoveConfigListener(string) {} + type JobServer struct { - Config model.ConfigFunc - Store store.Store - Workers *Workers - Schedulers *Schedulers + ConfigService ConfigService + Store store.Store + Workers *Workers + Schedulers *Schedulers DataRetentionJob ejobs.DataRetentionJobInterface MessageExportJob ejobs.MessageExportJobInterface @@ -25,13 +39,17 @@ type JobServer struct { LdapSync ejobs.LdapSyncInterface } -func NewJobServer(config model.ConfigFunc, store store.Store) *JobServer { +func NewJobServer(configService ConfigService, store store.Store) *JobServer { return &JobServer{ - Config: config, - Store: store, + ConfigService: configService, + Store: store, } } +func (srv *JobServer) Config() *model.Config { + return srv.ConfigService.Config() +} + func (srv *JobServer) LoadLicense() { licenseId := "" if result := <-srv.Store.System().Get(); result.Err == nil { diff --git a/jobs/workers.go b/jobs/workers.go index 3abd7131c..ca34855e5 100644 --- a/jobs/workers.go +++ b/jobs/workers.go @@ -8,13 +8,12 @@ import ( l4g "github.com/alecthomas/log4go" "github.com/mattermost/mattermost-server/model" - "github.com/mattermost/mattermost-server/utils" ) type Workers struct { - startOnce sync.Once - Config model.ConfigFunc - Watcher *Watcher + startOnce sync.Once + ConfigService ConfigService + Watcher *Watcher DataRetention model.Worker MessageExport model.Worker @@ -27,7 +26,7 @@ type Workers struct { func (srv *JobServer) InitWorkers() *Workers { workers := &Workers{ - Config: srv.Config, + ConfigService: srv.ConfigService, } workers.Watcher = srv.MakeWatcher(workers, DEFAULT_WATCHER_POLLING_INTERVAL) @@ -58,30 +57,30 @@ func (workers *Workers) Start() *Workers { l4g.Info("Starting workers") workers.startOnce.Do(func() { - if workers.DataRetention != nil && (*workers.Config().DataRetentionSettings.EnableMessageDeletion || *workers.Config().DataRetentionSettings.EnableFileDeletion) { + if workers.DataRetention != nil && (*workers.ConfigService.Config().DataRetentionSettings.EnableMessageDeletion || *workers.ConfigService.Config().DataRetentionSettings.EnableFileDeletion) { go workers.DataRetention.Run() } - if workers.MessageExport != nil && *workers.Config().MessageExportSettings.EnableExport { + if workers.MessageExport != nil && *workers.ConfigService.Config().MessageExportSettings.EnableExport { go workers.MessageExport.Run() } - if workers.ElasticsearchIndexing != nil && *workers.Config().ElasticsearchSettings.EnableIndexing { + if workers.ElasticsearchIndexing != nil && *workers.ConfigService.Config().ElasticsearchSettings.EnableIndexing { go workers.ElasticsearchIndexing.Run() } - if workers.ElasticsearchAggregation != nil && *workers.Config().ElasticsearchSettings.EnableIndexing { + if workers.ElasticsearchAggregation != nil && *workers.ConfigService.Config().ElasticsearchSettings.EnableIndexing { go workers.ElasticsearchAggregation.Run() } - if workers.LdapSync != nil && *workers.Config().LdapSettings.EnableSync { + if workers.LdapSync != nil && *workers.ConfigService.Config().LdapSettings.EnableSync { go workers.LdapSync.Run() } go workers.Watcher.Start() }) - workers.listenerId = utils.AddConfigListener(workers.handleConfigChange) + workers.listenerId = workers.ConfigService.AddConfigListener(workers.handleConfigChange) return workers } @@ -129,27 +128,27 @@ func (workers *Workers) handleConfigChange(oldConfig *model.Config, newConfig *m } func (workers *Workers) Stop() *Workers { - utils.RemoveConfigListener(workers.listenerId) + workers.ConfigService.RemoveConfigListener(workers.listenerId) workers.Watcher.Stop() - if workers.DataRetention != nil && (*workers.Config().DataRetentionSettings.EnableMessageDeletion || *workers.Config().DataRetentionSettings.EnableFileDeletion) { + if workers.DataRetention != nil && (*workers.ConfigService.Config().DataRetentionSettings.EnableMessageDeletion || *workers.ConfigService.Config().DataRetentionSettings.EnableFileDeletion) { workers.DataRetention.Stop() } - if workers.MessageExport != nil && *workers.Config().MessageExportSettings.EnableExport { + if workers.MessageExport != nil && *workers.ConfigService.Config().MessageExportSettings.EnableExport { workers.MessageExport.Stop() } - if workers.ElasticsearchIndexing != nil && *workers.Config().ElasticsearchSettings.EnableIndexing { + if workers.ElasticsearchIndexing != nil && *workers.ConfigService.Config().ElasticsearchSettings.EnableIndexing { workers.ElasticsearchIndexing.Stop() } - if workers.ElasticsearchAggregation != nil && *workers.Config().ElasticsearchSettings.EnableIndexing { + if workers.ElasticsearchAggregation != nil && *workers.ConfigService.Config().ElasticsearchSettings.EnableIndexing { workers.ElasticsearchAggregation.Stop() } - if workers.LdapSync != nil && *workers.Config().LdapSettings.EnableSync { + if workers.LdapSync != nil && *workers.ConfigService.Config().LdapSettings.EnableSync { workers.LdapSync.Stop() } -- cgit v1.2.3-1-g7c22