Loading app/controllers/TemplatesController.scala 0 → 100644 +33 −0 Original line number Diff line number Diff line package controllers import models.ElasticServer import models.analysis.OpenIndices import models.templates.Templates import scala.concurrent.ExecutionContext.Implicits.global class TemplatesController extends BaseController { def templates = process { (request, client) => client.getTemplates(ElasticServer(request.host, request.authentication)).map { response => Status(response.status)(Templates(response.body)) } } def delete = process { (request, client) => val name = request.get("name") client.deleteTemplate(name, ElasticServer(request.host, request.authentication)).map { response => Status(response.status)(Templates(response.body)) } } def create = process { (request, client) => val name = request.get("name") val template = request.getObj("template") client.createTemplate(name, template, ElasticServer(request.host, request.authentication)).map { response => Status(response.status)(Templates(response.body)) } } } app/elastic/ElasticClient.scala +15 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,21 @@ trait ElasticClient { execute(s"${target.host}$path", "GET", None, target.authentication) } def getTemplates(target: ElasticServer) = { val path = s"/_template" execute(s"${target.host}$path", "GET", None, target.authentication) } def createTemplate(name: String, template: JsValue, target: ElasticServer) = { val path = s"/_template/$name" execute(s"${target.host}$path", "PUT", Some(template.toString), target.authentication) } def deleteTemplate(name: String, target: ElasticServer) = { val path = s"/_template/$name" execute(s"${target.host}$path", "DELETE", None, target.authentication) } def getNodes(target: ElasticServer) = { val path = s"/_cat/nodes?format=json" execute(s"${target.host}$path", "GET", None, target.authentication) Loading app/models/CerebroRequest.scala +3 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,9 @@ class CerebroRequest(val host: String, val authentication: Option[ESAuth], body: def getArray(name: String) = (body \ name).asOpt[Array[String]].getOrElse(throw MissingRequiredParamException(name)) def getObj(name: String) = (body \ name).asOpt[JsObject].getOrElse(throw MissingRequiredParamException(name)) def getOpt(name: String) = (body \ name).asOpt[JsValue] Loading app/models/templates/Templates.scala 0 → 100644 +14 −0 Original line number Diff line number Diff line package models.templates import play.api.libs.json._ object Templates { def apply(json: JsValue): JsValue = { val names = json.as[JsObject].keys JsArray(names.map { name => Json.obj("name" -> name, "template" -> (json \ name).as[JsValue]) }.toSeq) } } conf/routes +5 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,11 @@ POST /commons/get_node_stats @controllers.CommonsContro POST /create_index/get_index_metadata @controllers.CreateIndexController.getIndexMetadata POST /create_index/create @controllers.CreateIndexController.execute # Index templates module POST /templates @controllers.TemplatesController.templates POST /templates/delete @controllers.TemplatesController.delete POST /templates/create @controllers.TemplatesController.create # Connect module GET /connect/hosts @controllers.ConnectController.index Loading Loading
app/controllers/TemplatesController.scala 0 → 100644 +33 −0 Original line number Diff line number Diff line package controllers import models.ElasticServer import models.analysis.OpenIndices import models.templates.Templates import scala.concurrent.ExecutionContext.Implicits.global class TemplatesController extends BaseController { def templates = process { (request, client) => client.getTemplates(ElasticServer(request.host, request.authentication)).map { response => Status(response.status)(Templates(response.body)) } } def delete = process { (request, client) => val name = request.get("name") client.deleteTemplate(name, ElasticServer(request.host, request.authentication)).map { response => Status(response.status)(Templates(response.body)) } } def create = process { (request, client) => val name = request.get("name") val template = request.getObj("template") client.createTemplate(name, template, ElasticServer(request.host, request.authentication)).map { response => Status(response.status)(Templates(response.body)) } } }
app/elastic/ElasticClient.scala +15 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,21 @@ trait ElasticClient { execute(s"${target.host}$path", "GET", None, target.authentication) } def getTemplates(target: ElasticServer) = { val path = s"/_template" execute(s"${target.host}$path", "GET", None, target.authentication) } def createTemplate(name: String, template: JsValue, target: ElasticServer) = { val path = s"/_template/$name" execute(s"${target.host}$path", "PUT", Some(template.toString), target.authentication) } def deleteTemplate(name: String, target: ElasticServer) = { val path = s"/_template/$name" execute(s"${target.host}$path", "DELETE", None, target.authentication) } def getNodes(target: ElasticServer) = { val path = s"/_cat/nodes?format=json" execute(s"${target.host}$path", "GET", None, target.authentication) Loading
app/models/CerebroRequest.scala +3 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,9 @@ class CerebroRequest(val host: String, val authentication: Option[ESAuth], body: def getArray(name: String) = (body \ name).asOpt[Array[String]].getOrElse(throw MissingRequiredParamException(name)) def getObj(name: String) = (body \ name).asOpt[JsObject].getOrElse(throw MissingRequiredParamException(name)) def getOpt(name: String) = (body \ name).asOpt[JsValue] Loading
app/models/templates/Templates.scala 0 → 100644 +14 −0 Original line number Diff line number Diff line package models.templates import play.api.libs.json._ object Templates { def apply(json: JsValue): JsValue = { val names = json.as[JsObject].keys JsArray(names.map { name => Json.obj("name" -> name, "template" -> (json \ name).as[JsValue]) }.toSeq) } }
conf/routes +5 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,11 @@ POST /commons/get_node_stats @controllers.CommonsContro POST /create_index/get_index_metadata @controllers.CreateIndexController.getIndexMetadata POST /create_index/create @controllers.CreateIndexController.execute # Index templates module POST /templates @controllers.TemplatesController.templates POST /templates/delete @controllers.TemplatesController.delete POST /templates/create @controllers.TemplatesController.create # Connect module GET /connect/hosts @controllers.ConnectController.index Loading