summaryrefslogtreecommitdiffstats
path: root/model/plugin_status.go
diff options
context:
space:
mode:
Diffstat (limited to 'model/plugin_status.go')
-rw-r--r--model/plugin_status.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/model/plugin_status.go b/model/plugin_status.go
new file mode 100644
index 000000000..1ae64ff89
--- /dev/null
+++ b/model/plugin_status.go
@@ -0,0 +1,44 @@
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
+// See LICENSE.txt for license information.
+
+package model
+
+import (
+ "encoding/json"
+ "io"
+)
+
+const (
+ PluginStateNotRunning = 0
+ PluginStateStarting = 1
+ PluginStateRunning = 2
+ PluginStateFailedToStart = 3
+ PluginStateFailedToStayRunning = 4
+ PluginStateStopping = 5
+)
+
+// PluginStatus provides a cluster-aware view of installed plugins.
+type PluginStatus struct {
+ PluginId string `json:"plugin_id"`
+ ClusterId string `json:"cluster_id"`
+ PluginPath string `json:"plugin_path"`
+ State int `json:"state"`
+ IsSandboxed bool `json:"is_sandboxed"`
+ IsPrepackaged bool `json:"is_prepackaged"`
+ Name string `json:"name"`
+ Description string `json:"description"`
+ Version string `json:"version"`
+}
+
+type PluginStatuses []*PluginStatus
+
+func (m *PluginStatuses) ToJson() string {
+ b, _ := json.Marshal(m)
+ return string(b)
+}
+
+func PluginStatusesFromJson(data io.Reader) PluginStatuses {
+ var m PluginStatuses
+ json.NewDecoder(data).Decode(&m)
+ return m
+}