Loading app/controllers/BaseController.scala 0 → 100644 +23 −0 Original line number Diff line number Diff line package controllers import models.CerebroRequest import play.api.Logger import play.api.mvc.{Action, Controller, Result} import scala.concurrent.Future trait BaseController extends Controller { protected val logger = Logger("elastic") def execute = Action.async(parse.json) { request => try { processRequest(CerebroRequest(request.body)) } catch { case _ => Future.successful(Status(500)(s"Error")) // FIXME: proper error handling } } def processRequest: CerebroRequest => Future[Result] } app/controllers/ClearIndexCacheController.scala 0 → 100644 +15 −0 Original line number Diff line number Diff line package controllers import elastic.ElasticClient.clearIndexCache import scala.concurrent.ExecutionContext.Implicits.global class ClearIndexCacheController extends BaseController { def processRequest = { request => clearIndexCache(request.get("indices"), request.host).map { response => Status(response.status)(response.body) } } } app/controllers/CloseIndexController.scala 0 → 100644 +15 −0 Original line number Diff line number Diff line package controllers import elastic.ElasticClient.closeIndex import scala.concurrent.ExecutionContext.Implicits.global class CloseIndexController extends BaseController { def processRequest = { request => closeIndex(request.get("indices"), request.host).map { response => Status(response.status)(response.body) } } } app/controllers/ClusterOverviewController.scala +16 −17 Original line number Diff line number Diff line Loading @@ -2,30 +2,29 @@ package controllers import elastic.ElasticClient._ import models.overview.ClusterOverview import play.api.mvc.{Action, Controller} import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.Future object ClusterOverviewController extends Controller { class ClusterOverviewController extends BaseController { def index = Action.async { def processRequest = { request => { val host = request.queryString.getOrElse("host", Seq("http://localhost:9200")).head try { val response = Future.sequence( Seq(clusterState(host), nodesStats(host), indicesStats(host), clusterSettings(host), aliases(host), clusterHealth(host), nodes(host), main(host)) Future.sequence( Seq( clusterState(request.host), nodesStats(request.host), indicesStats(request.host), clusterSettings(request.host), aliases(request.host), clusterHealth(request.host), nodes(request.host), main(request.host) ) ).map { f => new ClusterOverview(f(0).body, f(1).body, f(2).body, f(3).body, f(4).body, f(5).body, f(6).body, f(7).body).json }.recover { case e => throw e } response.map(Ok(_)) } catch { case _ => Future.successful(Status(500)(s"Cannot connect to $host")) } }.map(Ok(_)) } } Loading app/controllers/DeleteIndexController.scala 0 → 100644 +15 −0 Original line number Diff line number Diff line package controllers import elastic.ElasticClient.deleteIndex import scala.concurrent.ExecutionContext.Implicits.global class DeleteIndexController extends BaseController { def processRequest = { request => deleteIndex(request.get("indices"), request.host).map { response => Status(response.status)(response.body) } } } Loading
app/controllers/BaseController.scala 0 → 100644 +23 −0 Original line number Diff line number Diff line package controllers import models.CerebroRequest import play.api.Logger import play.api.mvc.{Action, Controller, Result} import scala.concurrent.Future trait BaseController extends Controller { protected val logger = Logger("elastic") def execute = Action.async(parse.json) { request => try { processRequest(CerebroRequest(request.body)) } catch { case _ => Future.successful(Status(500)(s"Error")) // FIXME: proper error handling } } def processRequest: CerebroRequest => Future[Result] }
app/controllers/ClearIndexCacheController.scala 0 → 100644 +15 −0 Original line number Diff line number Diff line package controllers import elastic.ElasticClient.clearIndexCache import scala.concurrent.ExecutionContext.Implicits.global class ClearIndexCacheController extends BaseController { def processRequest = { request => clearIndexCache(request.get("indices"), request.host).map { response => Status(response.status)(response.body) } } }
app/controllers/CloseIndexController.scala 0 → 100644 +15 −0 Original line number Diff line number Diff line package controllers import elastic.ElasticClient.closeIndex import scala.concurrent.ExecutionContext.Implicits.global class CloseIndexController extends BaseController { def processRequest = { request => closeIndex(request.get("indices"), request.host).map { response => Status(response.status)(response.body) } } }
app/controllers/ClusterOverviewController.scala +16 −17 Original line number Diff line number Diff line Loading @@ -2,30 +2,29 @@ package controllers import elastic.ElasticClient._ import models.overview.ClusterOverview import play.api.mvc.{Action, Controller} import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.Future object ClusterOverviewController extends Controller { class ClusterOverviewController extends BaseController { def index = Action.async { def processRequest = { request => { val host = request.queryString.getOrElse("host", Seq("http://localhost:9200")).head try { val response = Future.sequence( Seq(clusterState(host), nodesStats(host), indicesStats(host), clusterSettings(host), aliases(host), clusterHealth(host), nodes(host), main(host)) Future.sequence( Seq( clusterState(request.host), nodesStats(request.host), indicesStats(request.host), clusterSettings(request.host), aliases(request.host), clusterHealth(request.host), nodes(request.host), main(request.host) ) ).map { f => new ClusterOverview(f(0).body, f(1).body, f(2).body, f(3).body, f(4).body, f(5).body, f(6).body, f(7).body).json }.recover { case e => throw e } response.map(Ok(_)) } catch { case _ => Future.successful(Status(500)(s"Cannot connect to $host")) } }.map(Ok(_)) } } Loading
app/controllers/DeleteIndexController.scala 0 → 100644 +15 −0 Original line number Diff line number Diff line package controllers import elastic.ElasticClient.deleteIndex import scala.concurrent.ExecutionContext.Implicits.global class DeleteIndexController extends BaseController { def processRequest = { request => deleteIndex(request.get("indices"), request.host).map { response => Status(response.status)(response.body) } } }