Skip to content
Snippets Groups Projects
Commit 0da2ff10 authored by Tyson's avatar Tyson
Browse files

Added url query parameter json and handler

parent 269fe018
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,9 @@ import cc.spray.Directives
import cc.spray.directives._
import cc.spray.typeconversion.TwirlSupport._
import spark.deploy._
import cc.spray.http.MediaTypes
import JsonProtocol._
import cc.spray.typeconversion.SprayJsonSupport._
private[spark]
class MasterWebUI(val actorSystem: ActorSystem, master: ActorRef) extends Directives {
......@@ -19,13 +22,19 @@ class MasterWebUI(val actorSystem: ActorSystem, master: ActorRef) extends Direct
val handler = {
get {
path("") {
completeWith {
(path("") & parameters('json ?)) {
case Some(js) =>
val future = master ? RequestMasterState
future.map {
masterState => spark.deploy.master.html.index.render(masterState.asInstanceOf[MasterState])
respondWithMediaType(MediaTypes.`application/json`) { ctx =>
ctx.complete(future.mapTo[MasterState])
}
case None =>
completeWith {
val future = master ? RequestMasterState
future.map {
masterState => spark.deploy.master.html.index.render(masterState.asInstanceOf[MasterState])
}
}
}
} ~
path("job") {
parameter("jobId") { jobId =>
......
......@@ -7,7 +7,10 @@ import akka.util.Timeout
import akka.util.duration._
import cc.spray.Directives
import cc.spray.typeconversion.TwirlSupport._
import spark.deploy.{WorkerState, RequestWorkerState}
import spark.deploy.{JsonProtocol, WorkerState, RequestWorkerState}
import cc.spray.http.MediaTypes
import JsonProtocol._
import cc.spray.typeconversion.SprayJsonSupport._
private[spark]
class WorkerWebUI(val actorSystem: ActorSystem, worker: ActorRef) extends Directives {
......@@ -18,13 +21,20 @@ class WorkerWebUI(val actorSystem: ActorSystem, worker: ActorRef) extends Direct
val handler = {
get {
path("") {
completeWith{
(path("") & parameters('json ?)) {
case Some(js) => {
val future = worker ? RequestWorkerState
future.map { workerState =>
spark.deploy.worker.html.index(workerState.asInstanceOf[WorkerState])
respondWithMediaType(MediaTypes.`application/json`) { ctx =>
ctx.complete(future.mapTo[WorkerState])
}
}
case None =>
completeWith{
val future = worker ? RequestWorkerState
future.map { workerState =>
spark.deploy.worker.html.index(workerState.asInstanceOf[WorkerState])
}
}
} ~
path("log") {
parameters("jobId", "executorId", "logType") { (jobId, executorId, logType) =>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment