diff --git a/app/controllers/ConnectController.scala b/app/controllers/ConnectController.scala index 26c3884a1024f8cbf6a9d73721286773a1379dc9..9c7550e6e2212fc6311f94ee3f997b34adf6298d 100644 --- a/app/controllers/ConnectController.scala +++ b/app/controllers/ConnectController.scala @@ -3,16 +3,26 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule -import models.{CerebroResponse, Hosts} +import elastic.ElasticClient +import models.{CerebroRequest, CerebroResponse, Hosts} import play.api.libs.json.{JsArray, JsString} import play.api.mvc.Controller +import scala.concurrent.ExecutionContext.Implicits.global class ConnectController @Inject()(val authentication: AuthenticationModule, + elastic: ElasticClient, hosts: Hosts) extends Controller with AuthSupport { - def index = AuthAction(authentication) { request => + def index = AuthAction(authentication) { _ => CerebroResponse(200, JsArray(hosts.getHostNames().map(JsString(_)))) } + def connect = AuthAction(authentication).async(parse.json) { request => + val req = CerebroRequest(request, hosts) + elastic.executeRequest("GET", "_cluster/health", None, req.target).map { + response => CerebroResponse(response.status, response.body) + } + } + } diff --git a/conf/routes b/conf/routes index 5b5838aa8b466b925ffdd89f272d1369528af942..042f3a3637408edeb51b302e86f101e4b54adaa3 100644 --- a/conf/routes +++ b/conf/routes @@ -67,6 +67,7 @@ POST /index_settings/update controllers.IndexSettingsC # Connect module GET /connect/hosts controllers.ConnectController.index +POST /connect controllers.ConnectController.connect # Repositories module POST /repositories controllers.RepositoriesController.get