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  }