github.com/mattermosttest/mattermost-server/v5@v5.0.0-20200917143240-9dfa12e121f9/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/mattermost/mattermost-server/v5/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  	// HealthScore returns a number which is indicative of how well an instance is meeting
    19  	// the soft real-time requirements of the protocol. Lower numbers are better,
    20  	// and zero means "totally healthy".
    21  	HealthScore() int
    22  	GetMyClusterInfo() *model.ClusterInfo
    23  	GetClusterInfos() []*model.ClusterInfo
    24  	SendClusterMessage(cluster *model.ClusterMessage)
    25  	NotifyMsg(buf []byte)
    26  	GetClusterStats() ([]*model.ClusterStats, *model.AppError)
    27  	GetLogs(page, perPage int) ([]string, *model.AppError)
    28  	GetPluginStatuses() (model.PluginStatuses, *model.AppError)
    29  	ConfigChanged(previousConfig *model.Config, newConfig *model.Config, sendToOtherServer bool) *model.AppError
    30  }