diff options
author | Derrick Anderson <derrick@andersonwebstudio.com> | 2018-02-12 16:13:01 -0500 |
---|---|---|
committer | Derrick Anderson <derrick@andersonwebstudio.com> | 2018-02-12 16:13:01 -0500 |
commit | 32c1f7be239ddb19d6c59b114d9ae1a543f8ba9c (patch) | |
tree | 5e1653318a6a14bcad80025793adab0f700deed9 /jobs | |
parent | 62efb1df754bfe6b10a3c17ca6f89fd33b991f56 (diff) | |
parent | c209e4457457edc042f063390c9a222a694f3a6d (diff) | |
download | chat-32c1f7be239ddb19d6c59b114d9ae1a543f8ba9c.tar.gz chat-32c1f7be239ddb19d6c59b114d9ae1a543f8ba9c.tar.bz2 chat-32c1f7be239ddb19d6c59b114d9ae1a543f8ba9c.zip |
Merge branch 'release-4.7-revertmaster' into release-4.7
Diffstat (limited to 'jobs')
-rw-r--r-- | jobs/jobs_watcher.go | 6 | ||||
-rw-r--r-- | jobs/server.go | 33 | ||||
-rw-r--r-- | jobs/server_test.go | 39 |
3 files changed, 75 insertions, 3 deletions
diff --git a/jobs/jobs_watcher.go b/jobs/jobs_watcher.go index eaa3a4e73..f519e7cca 100644 --- a/jobs/jobs_watcher.go +++ b/jobs/jobs_watcher.go @@ -11,9 +11,9 @@ import ( "github.com/mattermost/mattermost-server/model" ) -// Default polling interval for jobs termination. -// (Defining as `var` rather than `const` allows tests to lower the interval.) -var DEFAULT_WATCHER_POLLING_INTERVAL = 15000 +const ( + DEFAULT_WATCHER_POLLING_INTERVAL = 15000 +) type Watcher struct { srv *JobServer diff --git a/jobs/server.go b/jobs/server.go index 01cf821dc..4015d581e 100644 --- a/jobs/server.go +++ b/jobs/server.go @@ -4,9 +4,12 @@ package jobs import ( + l4g "github.com/alecthomas/log4go" + ejobs "github.com/mattermost/mattermost-server/einterfaces/jobs" "github.com/mattermost/mattermost-server/model" "github.com/mattermost/mattermost-server/store" + "github.com/mattermost/mattermost-server/utils" ) type ConfigService interface { @@ -47,6 +50,36 @@ func (srv *JobServer) Config() *model.Config { return srv.ConfigService.Config() } +func (srv *JobServer) LoadLicense() { + licenseId := "" + if result := <-srv.Store.System().Get(); result.Err == nil { + props := result.Data.(model.StringMap) + licenseId = props[model.SYSTEM_ACTIVE_LICENSE_ID] + } + + var licenseBytes []byte + + if len(licenseId) != 26 { + // Lets attempt to load the file from disk since it was missing from the DB + _, licenseBytes = utils.GetAndValidateLicenseFileFromDisk(*srv.ConfigService.Config().ServiceSettings.LicenseFileLocation) + } else { + if result := <-srv.Store.License().Get(licenseId); result.Err == nil { + record := result.Data.(*model.LicenseRecord) + licenseBytes = []byte(record.Bytes) + l4g.Info("License key valid unlocking enterprise features.") + } else { + l4g.Info(utils.T("mattermost.load_license.find.warn")) + } + } + + if licenseBytes != nil { + utils.LoadLicense(licenseBytes) + l4g.Info("License key valid unlocking enterprise features.") + } else { + l4g.Info(utils.T("mattermost.load_license.find.warn")) + } +} + func (srv *JobServer) StartWorkers() { srv.Workers = srv.InitWorkers().Start() } diff --git a/jobs/server_test.go b/jobs/server_test.go new file mode 100644 index 000000000..3b5ef6f3d --- /dev/null +++ b/jobs/server_test.go @@ -0,0 +1,39 @@ +// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package jobs + +import ( + "testing" + + "github.com/mattermost/mattermost-server/model" + "github.com/mattermost/mattermost-server/store" + "github.com/mattermost/mattermost-server/store/storetest" + "github.com/mattermost/mattermost-server/utils" +) + +func TestJobServer_LoadLicense(t *testing.T) { + if utils.T == nil { + utils.TranslationsPreInit() + } + + mockStore := &storetest.Store{} + defer mockStore.AssertExpectations(t) + + server := &JobServer{ + Store: mockStore, + } + + mockStore.SystemStore.On("Get").Return(storetest.NewStoreChannel(store.StoreResult{ + Data: model.StringMap{ + model.SYSTEM_ACTIVE_LICENSE_ID: "thelicenseid00000000000000", + }, + })) + mockStore.LicenseStore.On("Get", "thelicenseid00000000000000").Return(storetest.NewStoreChannel(store.StoreResult{ + Data: &model.LicenseRecord{ + Id: "thelicenseid00000000000000", + }, + })) + + server.LoadLicense() +} |