Skip to content

Commit

Permalink
#53 add Cortex name in status API. Preserver Cortex name order in lis…
Browse files Browse the repository at this point in the history
…tAnalyzers API
  • Loading branch information
To-om committed Dec 15, 2016
1 parent 670b234 commit c9be7a6
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 5 deletions.
6 changes: 4 additions & 2 deletions thehive-backend/app/connectors/Connectors.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,19 @@ import javax.inject.Inject

import scala.collection.immutable

import play.api.libs.json.{ JsObject, Json }
import play.api.mvc.{ Action, Results }
import play.api.routing.{ Router, SimpleRouter }
import play.api.routing.sird.UrlContext

import net.codingwell.scalaguice.{ ScalaModule, ScalaMultibinder }

import com.google.inject.AbstractModule

import net.codingwell.scalaguice.{ ScalaModule, ScalaMultibinder }

trait Connector {
val name: String
val router: Router
val status: JsObject = Json.obj("enabled" true)
}

class ConnectorRouter @Inject() (connectors: immutable.Set[Connector]) extends SimpleRouter {
Expand Down
2 changes: 1 addition & 1 deletion thehive-backend/app/controllers/Status.scala
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class StatusCtrl @Inject() (
"Play" getVersion(classOf[Controller]),
"Elastic4s" getVersion(classOf[ElasticDsl]),
"ElasticSearch" getVersion(classOf[org.elasticsearch.Build])),
"connectors" JsObject(connectors.map(c c.name Json.obj("enabled" true)).toSeq),
"connectors" JsObject(connectors.map(c c.name c.status).toSeq),
"config" Json.obj(
"authType" (authSrv match {
case multiAuthSrv: MultiAuthSrv multiAuthSrv.authProviders.map { a JsString(a.name) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ class CortexSrv @Inject() (
analysers
.groupBy(_.name)
.values
.map(_.reduce((a1, a2) a1.copy(cortexIds = a1.cortexIds ::: a2.cortexIds)))
.map(_.reduceLeft((a1, a2) a1.copy(cortexIds = a1.cortexIds ::: a2.cortexIds)))
.toSeq
}
}
Expand Down
5 changes: 4 additions & 1 deletion thehive-cortex/app/controllers/CortextCtrl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import scala.concurrent.ExecutionContext

import play.api.Logger
import play.api.http.Status
import play.api.libs.json.Json
import play.api.mvc.Controller
import play.api.routing.SimpleRouter
import play.api.routing.sird.{ DELETE, GET, PATCH, POST, UrlContext }
Expand All @@ -18,18 +19,20 @@ import org.elastic4play.services.JsonFormat.queryReads

import connectors.Connector
import connectors.cortex.models.JsonFormat.{ analyzerFormats, cortexJobFormat }
import connectors.cortex.services.CortexSrv
import connectors.cortex.services.{ CortexConfig, CortexSrv }

@Singleton
class CortextCtrl @Inject() (
reportTemplateCtrl: ReportTemplateCtrl,
cortexConfig: CortexConfig,
cortexSrv: CortexSrv,
authenticated: Authenticated,
fieldsBodyParser: FieldsBodyParser,
renderer: Renderer,
implicit val ec: ExecutionContext) extends Controller with Connector with Status {
val name = "cortex"
val log = Logger(getClass)
override val status = Json.obj("enabled" true, "servers" cortexConfig.instances.map(_.name))
val router = SimpleRouter {
case POST(p"/job") createJob
case GET(p"/job/$jobId<[^/]*>") getJob(jobId)
Expand Down

0 comments on commit c9be7a6

Please sign in to comment.