github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/model/plugin_status.go (about) 1 package model 2 3 import ( 4 "encoding/json" 5 "io" 6 ) 7 8 const ( 9 PluginStateNotRunning = 0 10 PluginStateStarting = 1 // unused by server 11 PluginStateRunning = 2 12 PluginStateFailedToStart = 3 13 PluginStateFailedToStayRunning = 4 14 PluginStateStopping = 5 // unused by server 15 ) 16 17 // PluginStatus provides a cluster-aware view of installed plugins. 18 type PluginStatus struct { 19 PluginId string `json:"plugin_id"` 20 ClusterId string `json:"cluster_id"` 21 PluginPath string `json:"plugin_path"` 22 State int `json:"state"` 23 Name string `json:"name"` 24 Description string `json:"description"` 25 Version string `json:"version"` 26 } 27 28 type PluginStatuses []*PluginStatus 29 30 func (m *PluginStatuses) ToJson() string { 31 b, _ := json.Marshal(m) 32 return string(b) 33 } 34 35 func PluginStatusesFromJson(data io.Reader) PluginStatuses { 36 var m PluginStatuses 37 json.NewDecoder(data).Decode(&m) 38 return m 39 }