From 59d971dc751b0414c5b38c9df4b552e45f5641be Mon Sep 17 00:00:00 2001 From: Corey Hulen Date: Thu, 4 Aug 2016 09:25:37 -0800 Subject: PLT-2899 adding clustering of app servers (#3682) * PLT-2899 adding clustering of app servers * PLT-2899 base framework * PLT-2899 HA backend * PLT-2899 Fixing config file * PLT-2899 adding config syncing * PLT-2899 set System console to readonly when clustering enabled. * PLT-2899 Fixing publish API * PLT-2899 fixing strings --- einterfaces/cluster.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 einterfaces/cluster.go (limited to 'einterfaces') diff --git a/einterfaces/cluster.go b/einterfaces/cluster.go new file mode 100644 index 000000000..921576ad2 --- /dev/null +++ b/einterfaces/cluster.go @@ -0,0 +1,32 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package einterfaces + +import ( + "github.com/mattermost/platform/model" +) + +type ClusterInterface interface { + StartInterNodeCommunication() + StopInterNodeCommunication() + GetClusterInfos() []*model.ClusterInfo + RemoveAllSessionsForUserId(userId string) + InvalidateCacheForUser(userId string) + InvalidateCacheForChannel(channelId string) + Publish(event *model.WebSocketEvent) + UpdateStatus(status *model.Status) + GetLogs() ([]string, *model.AppError) + GetClusterId() string + ConfigChanged(previousConfig *model.Config, newConfig *model.Config, sendToOtherServer bool) *model.AppError +} + +var theClusterInterface ClusterInterface + +func RegisterClusterInterface(newInterface ClusterInterface) { + theClusterInterface = newInterface +} + +func GetClusterInterface() ClusterInterface { + return theClusterInterface +} -- cgit v1.2.3-1-g7c22