PLT-6408 Framework for job server (#6404)

* Added initial job server

* Added job server to be ran as part of platform

* Added test job to the enterprise repo

* Fixed job server not loading license

* Renamed job package to jobs

* Fixed TE not being buildable

* Added JobStatus table to database

* Changed fields used by JobStatus

* Added APIs to query job status

* Added config change listener to server

* Added option to run job server from Makefile

* Added ability to enable/disable jobs from config

* Commented out placeholder for search indexing job

* Fixed govet

* Removed debug messages and fixed job api init message
This commit is contained in:
Harrison Healey
2017-05-18 15:05:57 -04:00
committed by GitHub
parent 920bc0d871
commit 577ed27f1b
34 changed files with 1330 additions and 150 deletions

View File

@@ -1,29 +1,12 @@
package main
import (
"fmt"
"github.com/mattermost/platform/app"
"github.com/mattermost/platform/model"
"github.com/mattermost/platform/utils"
"github.com/spf13/cobra"
)
func doLoadConfig(filename string) (err string) {
defer func() {
if r := recover(); r != nil {
err = fmt.Sprintf("%v", r)
}
}()
utils.TranslationsPreInit()
utils.EnableConfigFromEnviromentVars()
utils.LoadConfig(filename)
utils.InitializeConfigWatch()
utils.EnableConfigWatch()
return ""
}
func initDBCommandContextCobra(cmd *cobra.Command) error {
config, err := cmd.Flags().GetString("config")
if err != nil {
@@ -35,7 +18,7 @@ func initDBCommandContextCobra(cmd *cobra.Command) error {
}
func initDBCommandContext(configFileLocation string) {
if errstr := doLoadConfig(configFileLocation); errstr != "" {
if errstr := utils.InitAndLoadConfig(configFileLocation); errstr != "" {
return
}

View File

@@ -14,6 +14,9 @@ import (
// Plugins
_ "github.com/mattermost/platform/model/gitlab"
// Enterprise Imports
_ "github.com/mattermost/platform/imports"
// Enterprise Deps
_ "github.com/dgryski/dgoogauth"
_ "github.com/go-ldap/ldap"
@@ -26,8 +29,6 @@ import (
_ "gopkg.in/olivere/elastic.v5"
)
//ENTERPRISE_IMPORTS
func main() {
if err := rootCmd.Execute(); err != nil {
os.Exit(1)

View File

@@ -14,6 +14,7 @@ import (
"github.com/mattermost/platform/api4"
"github.com/mattermost/platform/app"
"github.com/mattermost/platform/einterfaces"
"github.com/mattermost/platform/jobs"
"github.com/mattermost/platform/manualtesting"
"github.com/mattermost/platform/model"
"github.com/mattermost/platform/utils"
@@ -43,7 +44,7 @@ func runServerCmd(cmd *cobra.Command, args []string) error {
}
func runServer(configFileLocation string) {
if errstr := doLoadConfig(configFileLocation); errstr != "" {
if errstr := utils.InitAndLoadConfig(configFileLocation); errstr != "" {
l4g.Exit("Unable to load mattermost configuration file: ", errstr)
return
}
@@ -120,6 +121,8 @@ func runServer(configFileLocation string) {
}
}
jobs := jobs.InitJobs(app.Srv.Store).Start()
// wait for kill signal before attempting to gracefully shutdown
// the running service
c := make(chan os.Signal)
@@ -134,6 +137,8 @@ func runServer(configFileLocation string) {
einterfaces.GetMetricsInterface().StopServer()
}
jobs.Stop()
app.StopServer()
}