Loading app/controllers/AliasesController.scala +4 −3 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule import elastic.ElasticClient import elastic.{ElasticClient, Error, Success} import models.{Aliases, CerebroResponse, Hosts} import play.api.libs.json.JsArray Loading @@ -14,8 +14,9 @@ class AliasesController @Inject()(val authentication: AuthenticationModule, client: ElasticClient) extends BaseController { def getAliases = process { request => client.getAliases(request.target).map { aliases => CerebroResponse(aliases.status, Aliases(aliases.body)) client.getAliases(request.target).map { case Success(status, aliases) => CerebroResponse(status, Aliases(aliases)) case Error(status, error) => CerebroResponse(status, error) } } Loading app/controllers/AnalysisController.scala +17 −12 Original line number Diff line number Diff line Loading @@ -3,9 +3,9 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule import elastic.ElasticClient import models.{CerebroResponse, ElasticServer, Hosts} import elastic.{ElasticClient, Error, Success} import models.analysis.{IndexAnalyzers, IndexFields, OpenIndices, Tokens} import models.{CerebroResponse, Hosts} import scala.concurrent.ExecutionContext.Implicits.global Loading @@ -14,22 +14,25 @@ class AnalysisController @Inject()(val authentication: AuthenticationModule, client: ElasticClient) extends BaseController { def getIndices = process { request => client.getIndices(request.target).map { response => CerebroResponse(response.status, OpenIndices(response.body)) client.getIndices(request.target).map { case Success(status, indices) => CerebroResponse(status, OpenIndices(indices)) case Error(status, error) => CerebroResponse(status, error) } } def getIndexAnalyzers = process { request => val index = request.get("index") client.getIndexSettings(index, request.target).map { response => CerebroResponse(response.status, IndexAnalyzers(index, response.body)) client.getIndexSettings(index, request.target).map { case Success(status, settings) => CerebroResponse(status, IndexAnalyzers(index, settings)) case Error(status, error) => CerebroResponse(status, error) } } def getIndexFields = process { request => val index = request.get("index") client.getIndexMapping(index, request.target).map { response => CerebroResponse(response.status, IndexFields(index, response.body)) client.getIndexMapping(index, request.target).map { case Success(status, mapping) => CerebroResponse(status, IndexFields(index, mapping)) case Error(status, error) => CerebroResponse(status, error) } } Loading @@ -37,8 +40,9 @@ class AnalysisController @Inject()(val authentication: AuthenticationModule, val index = request.get("index") val field = request.get("field") val text = request.get("text") client.analyzeTextByField(index, field, text, request.target).map { response => CerebroResponse(response.status, Tokens(response.body)) client.analyzeTextByField(index, field, text, request.target).map { case Success(status, tokens) => CerebroResponse(status, Tokens(tokens)) case Error(status, error) => CerebroResponse(status, error) } } Loading @@ -46,8 +50,9 @@ class AnalysisController @Inject()(val authentication: AuthenticationModule, val index = request.get("index") val analyzer = request.get("analyzer") val text = request.get("text") client.analyzeTextByAnalyzer(index, analyzer, text, request.target).map { response => CerebroResponse(response.status, Tokens(response.body)) client.analyzeTextByAnalyzer(index, analyzer, text, request.target).map { case Success(status, tokens) => CerebroResponse(status, Tokens(tokens)) case Error(status, error) => CerebroResponse(status, error) } } Loading app/controllers/ClusterChangesController.scala +14 −7 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule import elastic.ElasticClient import elastic.{ElasticClient, Error} import models.commons.{Indices, Nodes} import models.{CerebroResponse, Hosts} import play.api.libs.json.Json Loading @@ -21,11 +21,18 @@ class ClusterChangesController @Inject()(val authentication: AuthenticationModul client.getNodes(request.target), client.main(request.target) )).map { responses => Json.obj( val failed = responses.find(_.isInstanceOf[Error]) failed match { case None => val body = Json.obj( "indices" -> Indices(responses(0).body), "nodes" -> Nodes(responses(1).body), "cluster_name" -> (responses(2).body \ "cluster_name").as[String] ) }.map(CerebroResponse(200, _)) CerebroResponse(200, body) case Some(f) => CerebroResponse(f.status, f.body) } } } } app/controllers/ClusterOverviewController.scala +34 −8 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule import elastic.ElasticClient import elastic.{ElasticClient, Error} import models.overview.ClusterOverview import models.{CerebroResponse, Hosts, ShardStats} Loading @@ -26,9 +26,24 @@ class ClusterOverviewController @Inject()(val authentication: AuthenticationModu client.nodes(request.target), client.main(request.target) ) ).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 }.map(CerebroResponse(200, _)) ).map { responses => val failed = responses.find(_.isInstanceOf[Error]) failed match { case Some(f) => CerebroResponse(f.status, f.body) case None => val overview = ClusterOverview( responses(0).body, responses(1).body, responses(2).body, responses(3).body, responses(4).body, responses(5).body, responses(6).body, responses(7).body ) CerebroResponse(200, overview) } } } def disableShardAllocation = process { request => Loading Loading @@ -83,10 +98,21 @@ class ClusterOverviewController @Inject()(val authentication: AuthenticationModu val index = request.get("index") val shard = request.getInt("shard") val node = request.get("node") client.getShardStats(index, request.target).zip( Future.sequence( Seq( client.getShardStats(index, request.target), client.getIndexRecovery(index, request.target) ).map { case (stats, recovery) => CerebroResponse(200, ShardStats(index, node, shard, stats.body, recovery.body)) ) ).map { responses => val failed = responses.find(_.isInstanceOf[Error]) failed match { case None => val stats = responses(0).body val recovery = responses(1).body CerebroResponse(200, ShardStats(index, node, shard, stats, recovery)) case Some(f) => CerebroResponse(f.status, f.body) } } } Loading app/controllers/CommonsController.scala +7 −5 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule import elastic.ElasticClient import elastic.{ElasticClient, Error, Success} import models.commons.{Indices, Nodes} import models.{CerebroResponse, Hosts} Loading @@ -14,14 +14,16 @@ class CommonsController @Inject()(val authentication: AuthenticationModule, client: ElasticClient) extends BaseController { def indices = process { request => client.getIndices(request.target).map { response => CerebroResponse(response.status, Indices(response.body)) client.getIndices(request.target).map { case Success(status, indices) => CerebroResponse(status, Indices(indices)) case Error(status, error) => CerebroResponse(status, error) } } def nodes = process { request => client.getNodes(request.target).map { response => CerebroResponse(response.status, Nodes(response.body)) client.getNodes(request.target).map { case Success(status, nodes) => CerebroResponse(status, Nodes(nodes)) case Error(status, error) => CerebroResponse(status, error) } } Loading Loading
app/controllers/AliasesController.scala +4 −3 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule import elastic.ElasticClient import elastic.{ElasticClient, Error, Success} import models.{Aliases, CerebroResponse, Hosts} import play.api.libs.json.JsArray Loading @@ -14,8 +14,9 @@ class AliasesController @Inject()(val authentication: AuthenticationModule, client: ElasticClient) extends BaseController { def getAliases = process { request => client.getAliases(request.target).map { aliases => CerebroResponse(aliases.status, Aliases(aliases.body)) client.getAliases(request.target).map { case Success(status, aliases) => CerebroResponse(status, Aliases(aliases)) case Error(status, error) => CerebroResponse(status, error) } } Loading
app/controllers/AnalysisController.scala +17 −12 Original line number Diff line number Diff line Loading @@ -3,9 +3,9 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule import elastic.ElasticClient import models.{CerebroResponse, ElasticServer, Hosts} import elastic.{ElasticClient, Error, Success} import models.analysis.{IndexAnalyzers, IndexFields, OpenIndices, Tokens} import models.{CerebroResponse, Hosts} import scala.concurrent.ExecutionContext.Implicits.global Loading @@ -14,22 +14,25 @@ class AnalysisController @Inject()(val authentication: AuthenticationModule, client: ElasticClient) extends BaseController { def getIndices = process { request => client.getIndices(request.target).map { response => CerebroResponse(response.status, OpenIndices(response.body)) client.getIndices(request.target).map { case Success(status, indices) => CerebroResponse(status, OpenIndices(indices)) case Error(status, error) => CerebroResponse(status, error) } } def getIndexAnalyzers = process { request => val index = request.get("index") client.getIndexSettings(index, request.target).map { response => CerebroResponse(response.status, IndexAnalyzers(index, response.body)) client.getIndexSettings(index, request.target).map { case Success(status, settings) => CerebroResponse(status, IndexAnalyzers(index, settings)) case Error(status, error) => CerebroResponse(status, error) } } def getIndexFields = process { request => val index = request.get("index") client.getIndexMapping(index, request.target).map { response => CerebroResponse(response.status, IndexFields(index, response.body)) client.getIndexMapping(index, request.target).map { case Success(status, mapping) => CerebroResponse(status, IndexFields(index, mapping)) case Error(status, error) => CerebroResponse(status, error) } } Loading @@ -37,8 +40,9 @@ class AnalysisController @Inject()(val authentication: AuthenticationModule, val index = request.get("index") val field = request.get("field") val text = request.get("text") client.analyzeTextByField(index, field, text, request.target).map { response => CerebroResponse(response.status, Tokens(response.body)) client.analyzeTextByField(index, field, text, request.target).map { case Success(status, tokens) => CerebroResponse(status, Tokens(tokens)) case Error(status, error) => CerebroResponse(status, error) } } Loading @@ -46,8 +50,9 @@ class AnalysisController @Inject()(val authentication: AuthenticationModule, val index = request.get("index") val analyzer = request.get("analyzer") val text = request.get("text") client.analyzeTextByAnalyzer(index, analyzer, text, request.target).map { response => CerebroResponse(response.status, Tokens(response.body)) client.analyzeTextByAnalyzer(index, analyzer, text, request.target).map { case Success(status, tokens) => CerebroResponse(status, Tokens(tokens)) case Error(status, error) => CerebroResponse(status, error) } } Loading
app/controllers/ClusterChangesController.scala +14 −7 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule import elastic.ElasticClient import elastic.{ElasticClient, Error} import models.commons.{Indices, Nodes} import models.{CerebroResponse, Hosts} import play.api.libs.json.Json Loading @@ -21,11 +21,18 @@ class ClusterChangesController @Inject()(val authentication: AuthenticationModul client.getNodes(request.target), client.main(request.target) )).map { responses => Json.obj( val failed = responses.find(_.isInstanceOf[Error]) failed match { case None => val body = Json.obj( "indices" -> Indices(responses(0).body), "nodes" -> Nodes(responses(1).body), "cluster_name" -> (responses(2).body \ "cluster_name").as[String] ) }.map(CerebroResponse(200, _)) CerebroResponse(200, body) case Some(f) => CerebroResponse(f.status, f.body) } } } }
app/controllers/ClusterOverviewController.scala +34 −8 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule import elastic.ElasticClient import elastic.{ElasticClient, Error} import models.overview.ClusterOverview import models.{CerebroResponse, Hosts, ShardStats} Loading @@ -26,9 +26,24 @@ class ClusterOverviewController @Inject()(val authentication: AuthenticationModu client.nodes(request.target), client.main(request.target) ) ).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 }.map(CerebroResponse(200, _)) ).map { responses => val failed = responses.find(_.isInstanceOf[Error]) failed match { case Some(f) => CerebroResponse(f.status, f.body) case None => val overview = ClusterOverview( responses(0).body, responses(1).body, responses(2).body, responses(3).body, responses(4).body, responses(5).body, responses(6).body, responses(7).body ) CerebroResponse(200, overview) } } } def disableShardAllocation = process { request => Loading Loading @@ -83,10 +98,21 @@ class ClusterOverviewController @Inject()(val authentication: AuthenticationModu val index = request.get("index") val shard = request.getInt("shard") val node = request.get("node") client.getShardStats(index, request.target).zip( Future.sequence( Seq( client.getShardStats(index, request.target), client.getIndexRecovery(index, request.target) ).map { case (stats, recovery) => CerebroResponse(200, ShardStats(index, node, shard, stats.body, recovery.body)) ) ).map { responses => val failed = responses.find(_.isInstanceOf[Error]) failed match { case None => val stats = responses(0).body val recovery = responses(1).body CerebroResponse(200, ShardStats(index, node, shard, stats, recovery)) case Some(f) => CerebroResponse(f.status, f.body) } } } Loading
app/controllers/CommonsController.scala +7 −5 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ package controllers import javax.inject.Inject import controllers.auth.AuthenticationModule import elastic.ElasticClient import elastic.{ElasticClient, Error, Success} import models.commons.{Indices, Nodes} import models.{CerebroResponse, Hosts} Loading @@ -14,14 +14,16 @@ class CommonsController @Inject()(val authentication: AuthenticationModule, client: ElasticClient) extends BaseController { def indices = process { request => client.getIndices(request.target).map { response => CerebroResponse(response.status, Indices(response.body)) client.getIndices(request.target).map { case Success(status, indices) => CerebroResponse(status, Indices(indices)) case Error(status, error) => CerebroResponse(status, error) } } def nodes = process { request => client.getNodes(request.target).map { response => CerebroResponse(response.status, Nodes(response.body)) client.getNodes(request.target).map { case Success(status, nodes) => CerebroResponse(status, Nodes(nodes)) case Error(status, error) => CerebroResponse(status, error) } } Loading