From 7875836d7fe59099ae7fb77843ad6bb49ed5f0dd Mon Sep 17 00:00:00 2001 From: Leonardo Menezes <mail@lmenezes.com> Date: Wed, 25 Oct 2017 19:53:26 +0200 Subject: [PATCH] created connect api to check connectivity with a cluster --- app/controllers/ConnectController.scala | 14 ++++++++++++-- conf/routes | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/controllers/ConnectController.scala b/app/controllers/ConnectController.scala index 26c3884..9c7550e 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 5b5838a..042f3a3 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 -- GitLab