github.com/crspeller/mattermost-server@v0.0.0-20190328001957-a200beb3d111/einterfaces/cluster.go (about)

     1  // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
     2  // See License.txt for license information.
     3  
     4  package einterfaces
     5  
     6  import (
     7  	"github.com/crspeller/mattermost-server/model"
     8  )
     9  
    10  type ClusterMessageHandler func(msg *model.ClusterMessage)
    11  
    12  type ClusterInterface interface {
    13  	StartInterNodeCommunication()
    14  	StopInterNodeCommunication()
    15  	RegisterClusterMessageHandler(event string, crm ClusterMessageHandler)
    16  	GetClusterId() string
    17  	IsLeader() bool
    18  	GetMyClusterInfo() *model.ClusterInfo
    19  	GetClusterInfos() []*model.ClusterInfo
    20  	SendClusterMessage(cluster *model.ClusterMessage)
    21  	NotifyMsg(buf []byte)
    22  	GetClusterStats() ([]*model.ClusterStats, *model.AppError)
    23  	GetLogs(page, perPage int) ([]string, *model.AppError)
    24  	GetPluginStatuses() (model.PluginStatuses, *model.AppError)
    25  	ConfigChanged(previousConfig *model.Config, newConfig *model.Config, sendToOtherServer bool) *model.AppError
    26  }