github.com/mattermosttest/mattermost-server/v5@v5.0.0-20200917143240-9dfa12e121f9/app/searchengine.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package app 5 6 import ( 7 "net/http" 8 9 "github.com/mattermost/mattermost-server/v5/model" 10 "github.com/mattermost/mattermost-server/v5/services/searchengine" 11 ) 12 13 func (a *App) TestElasticsearch(cfg *model.Config) *model.AppError { 14 if *cfg.ElasticsearchSettings.Password == model.FAKE_SETTING { 15 if *cfg.ElasticsearchSettings.ConnectionUrl == *a.Config().ElasticsearchSettings.ConnectionUrl && *cfg.ElasticsearchSettings.Username == *a.Config().ElasticsearchSettings.Username { 16 *cfg.ElasticsearchSettings.Password = *a.Config().ElasticsearchSettings.Password 17 } else { 18 return model.NewAppError("TestElasticsearch", "ent.elasticsearch.test_config.reenter_password", nil, "", http.StatusBadRequest) 19 } 20 } 21 22 seI := a.SearchEngine().ElasticsearchEngine 23 if seI == nil { 24 err := model.NewAppError("TestElasticsearch", "ent.elasticsearch.test_config.license.error", nil, "", http.StatusNotImplemented) 25 return err 26 } 27 if err := seI.TestConfig(cfg); err != nil { 28 return err 29 } 30 31 return nil 32 } 33 34 func (a *App) PurgeElasticsearchIndexes() *model.AppError { 35 engine := a.SearchEngine().ElasticsearchEngine 36 if engine == nil { 37 err := model.NewAppError("PurgeElasticsearchIndexes", "ent.elasticsearch.test_config.license.error", nil, "", http.StatusNotImplemented) 38 return err 39 } 40 41 if err := engine.PurgeIndexes(); err != nil { 42 return err 43 } 44 45 return nil 46 } 47 48 func (a *App) PurgeBleveIndexes() *model.AppError { 49 engine := a.SearchEngine().BleveEngine 50 if engine == nil { 51 err := model.NewAppError("PurgeBleveIndexes", "searchengine.bleve.disabled.error", nil, "", http.StatusNotImplemented) 52 return err 53 } 54 if err := engine.PurgeIndexes(); err != nil { 55 return err 56 } 57 return nil 58 } 59 60 func (a *App) SetSearchEngine(se *searchengine.Broker) { 61 a.searchEngine = se 62 }