summaryrefslogtreecommitdiffstats
path: root/einterfaces/cluster.go
diff options
context:
space:
mode:
authorCorey Hulen <corey@hulen.com>2016-08-04 09:25:37 -0800
committerHarrison Healey <harrisonmhealey@gmail.com>2016-08-04 13:25:37 -0400
commit59d971dc751b0414c5b38c9df4b552e45f5641be (patch)
treed8c39aa5d1fa67d41d89bdd37f699a8e7ca7af36 /einterfaces/cluster.go
parentac90f5b38962c301318fff9118c4556537002941 (diff)
downloadchat-59d971dc751b0414c5b38c9df4b552e45f5641be.tar.gz
chat-59d971dc751b0414c5b38c9df4b552e45f5641be.tar.bz2
chat-59d971dc751b0414c5b38c9df4b552e45f5641be.zip
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
Diffstat (limited to 'einterfaces/cluster.go')
-rw-r--r--einterfaces/cluster.go32
1 files changed, 32 insertions, 0 deletions
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
+}