diff options
author | Harrison Healey <harrisonmhealey@gmail.com> | 2017-05-18 15:05:57 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-18 15:05:57 -0400 |
commit | 577ed27f1bb060080d311342047e31943a02ccbb (patch) | |
tree | ad57fa69b1daf143e914ea2480a475e5450cc236 /model/job_status.go | |
parent | 920bc0d8712a50691b1f698779f60132536eb214 (diff) | |
download | chat-577ed27f1bb060080d311342047e31943a02ccbb.tar.gz chat-577ed27f1bb060080d311342047e31943a02ccbb.tar.bz2 chat-577ed27f1bb060080d311342047e31943a02ccbb.zip |
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
Diffstat (limited to 'model/job_status.go')
-rw-r--r-- | model/job_status.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/model/job_status.go b/model/job_status.go new file mode 100644 index 000000000..cf490648f --- /dev/null +++ b/model/job_status.go @@ -0,0 +1,59 @@ +// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package model + +import ( + "encoding/json" + "io" +) + +const ( + JOB_TYPE_DATA_RETENTION = "data_retention" + JOB_TYPE_SEARCH_INDEXING = "search_indexing" +) + +type JobStatus struct { + Id string `json:"id"` + Type string `json:"type"` + StartAt int64 `json:"start_at"` + LastActivityAt int64 `json:"last_activity_at"` + LastRunStartedAt int64 `json:"last_run_started_at"` + LastRunCompletedAt int64 `json:"last_run_completed_at"` + Status string `json:"status"` + Data map[string]interface{} `json:"data"` +} + +func (js *JobStatus) ToJson() string { + if b, err := json.Marshal(js); err != nil { + return "" + } else { + return string(b) + } +} + +func JobStatusFromJson(data io.Reader) *JobStatus { + var status JobStatus + if err := json.NewDecoder(data).Decode(&status); err == nil { + return &status + } else { + return nil + } +} + +func JobStatusesToJson(statuses []*JobStatus) string { + if b, err := json.Marshal(statuses); err != nil { + return "" + } else { + return string(b) + } +} + +func JobStatusesFromJson(data io.Reader) []*JobStatus { + var statuses []*JobStatus + if err := json.NewDecoder(data).Decode(&statuses); err == nil { + return statuses + } else { + return nil + } +} |