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  }