diff options
author | Corey Hulen <corey@hulen.com> | 2017-09-25 13:30:33 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-25 13:30:33 -0700 |
commit | 81c18a01bd22437457da04b6cdb8d409beb54446 (patch) | |
tree | 1c1a28dc72fe8685259870e53643de9f558dad79 /jobs/workers.go | |
parent | 1bf2a2e8d5a552d23e16379e73c2d4aaefc9368f (diff) | |
download | chat-81c18a01bd22437457da04b6cdb8d409beb54446.tar.gz chat-81c18a01bd22437457da04b6cdb8d409beb54446.tar.bz2 chat-81c18a01bd22437457da04b6cdb8d409beb54446.zip |
PLT-7542 Converting LDAP sync to the job server (#7452)
* PLT-7542 Converting LDAP sync to the job server
* Fixing minor issues
* Fixing build failure
* Translate error message
* Translate error message
* Translate error message
* Translate error message
* Fixing merge
* Fixing bad merge
Diffstat (limited to 'jobs/workers.go')
-rw-r--r-- | jobs/workers.go | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/jobs/workers.go b/jobs/workers.go index b473ba092..9f85adaf5 100644 --- a/jobs/workers.go +++ b/jobs/workers.go @@ -14,18 +14,19 @@ import ( type Workers struct { startOnce sync.Once - watcher *Watcher + Watcher *Watcher DataRetention model.Worker ElasticsearchIndexing model.Worker ElasticsearchAggregation model.Worker + LdapSync model.Worker listenerId string } func InitWorkers() *Workers { workers := &Workers{} - workers.watcher = MakeWatcher(workers) + workers.Watcher = MakeWatcher(workers, DEFAULT_WATCHER_POLLING_INTERVAL) if dataRetentionInterface := ejobs.GetDataRetentionInterface(); dataRetentionInterface != nil { workers.DataRetention = dataRetentionInterface.MakeWorker() @@ -39,6 +40,10 @@ func InitWorkers() *Workers { workers.ElasticsearchAggregation = elasticsearchAggregatorInterface.MakeWorker() } + if ldapSyncInterface := ejobs.GetLdapSyncInterface(); ldapSyncInterface != nil { + workers.LdapSync = ldapSyncInterface.MakeWorker() + } + return workers } @@ -58,7 +63,11 @@ func (workers *Workers) Start() *Workers { go workers.ElasticsearchAggregation.Run() } - go workers.watcher.Start() + if workers.LdapSync != nil && *utils.Cfg.LdapSettings.Enable { + go workers.LdapSync.Run() + } + + go workers.Watcher.Start() }) workers.listenerId = utils.AddConfigListener(workers.handleConfigChange) @@ -90,12 +99,20 @@ func (workers *Workers) handleConfigChange(oldConfig *model.Config, newConfig *m workers.ElasticsearchAggregation.Stop() } } + + if workers.LdapSync != nil { + if !*oldConfig.LdapSettings.Enable && *newConfig.LdapSettings.Enable { + go workers.LdapSync.Run() + } else if *oldConfig.LdapSettings.Enable && !*newConfig.LdapSettings.Enable { + workers.LdapSync.Stop() + } + } } func (workers *Workers) Stop() *Workers { utils.RemoveConfigListener(workers.listenerId) - workers.watcher.Stop() + workers.Watcher.Stop() if workers.DataRetention != nil && (*utils.Cfg.DataRetentionSettings.EnableMessageDeletion || *utils.Cfg.DataRetentionSettings.EnableFileDeletion) { workers.DataRetention.Stop() @@ -109,6 +126,10 @@ func (workers *Workers) Stop() *Workers { workers.ElasticsearchAggregation.Stop() } + if workers.LdapSync != nil && *utils.Cfg.LdapSettings.Enable { + workers.LdapSync.Stop() + } + l4g.Info("Stopped workers") return workers |