summaryrefslogtreecommitdiffstats
path: root/model/plugin_status.go
blob: 1ae64ff897f526a65aa8bc6136ae5649efb02b9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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
}