PLT-6474: Server: Add elasticsearch/test endpoint to API. (#6792)

Этот коммит содержится в:
George Goldberg
2017-06-29 22:40:14 +01:00
коммит произвёл Joram Wilander
родитель a4f363a50b
Коммит f2898927f1
7 изменённых файлов: 106 добавлений и 0 удалений

Просмотреть файл

@@ -77,6 +77,8 @@ type Routes struct {
LDAP *mux.Router // 'api/v4/ldap'
Elasticsearch *mux.Router // 'api/v4/elasticsearch'
Brand *mux.Router // 'api/v4/brand'
System *mux.Router // 'api/v4/system'
@@ -171,6 +173,7 @@ func InitApi(full bool) {
BaseRoutes.Public = BaseRoutes.ApiRoot.PathPrefix("/public").Subrouter()
BaseRoutes.Reactions = BaseRoutes.ApiRoot.PathPrefix("/reactions").Subrouter()
BaseRoutes.Jobs = BaseRoutes.ApiRoot.PathPrefix("/jobs").Subrouter()
BaseRoutes.Elasticsearch = BaseRoutes.ApiRoot.PathPrefix("/elasticsearch").Subrouter()
BaseRoutes.Emojis = BaseRoutes.ApiRoot.PathPrefix("/emoji").Subrouter()
BaseRoutes.Emoji = BaseRoutes.Emojis.PathPrefix("/{emoji_id:[A-Za-z0-9]+}").Subrouter()
@@ -193,6 +196,7 @@ func InitApi(full bool) {
InitCompliance()
InitCluster()
InitLdap()
InitElasticsearch()
InitBrand()
InitJob()
InitCommand()

33
api4/elasticsearch.go Обычный файл
Просмотреть файл

@@ -0,0 +1,33 @@
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package api4
import (
"net/http"
l4g "github.com/alecthomas/log4go"
"github.com/mattermost/platform/app"
"github.com/mattermost/platform/model"
"github.com/mattermost/platform/utils"
)
func InitElasticsearch() {
l4g.Debug(utils.T("api.elasticsearch.init.debug"))
BaseRoutes.Elasticsearch.Handle("/test", ApiSessionRequired(testElasticsearch)).Methods("POST")
}
func testElasticsearch(c *Context, w http.ResponseWriter, r *http.Request) {
if !app.SessionHasPermissionTo(c.Session, model.PERMISSION_MANAGE_SYSTEM) {
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM)
return
}
if err := app.TestElasticsearch(); err != nil {
c.Err = err
return
}
ReturnStatusOK(w)
}

19
api4/elasticsearch_test.go Обычный файл
Просмотреть файл

@@ -0,0 +1,19 @@
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package api4
import (
"testing"
)
func TestElasticsearchTest(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin()
defer TearDown()
_, resp := th.Client.TestElasticsearch()
CheckForbiddenStatus(t, resp)
_, resp = th.SystemAdminClient.TestElasticsearch()
CheckNotImplementedStatus(t, resp)
}