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 }