aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/spark/ui/jobs/PoolPage.scala
blob: 7fb74dce4065967e23ced4669e1eacb259cb923f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package spark.ui.jobs

import javax.servlet.http.HttpServletRequest

import scala.xml.{NodeSeq, Node}
import scala.collection.mutable.HashSet

import spark.scheduler.Stage
import spark.ui.UIUtils._
import spark.ui.Page._

/** Page showing specific pool details */
private[spark] class PoolPage(parent: JobProgressUI) {
  def listener = parent.listener

  def render(request: HttpServletRequest): Seq[Node] = {
    listener.synchronized {
      val poolName = request.getParameter("poolname")
      val poolToActiveStages = listener.poolToActiveStages
      val activeStages = poolToActiveStages.get(poolName).toSeq.flatten
      val activeStagesTable = new StageTable(activeStages.sortBy(_.submissionTime).reverse, parent)

      val pool = listener.sc.getPoolForName(poolName).get
      val poolTable = new PoolTable(Seq(pool), listener)

      val content = <h4>Summary </h4> ++ poolTable.toNodeSeq() ++
                    <h4>{activeStages.size} Active Stages</h4> ++ activeStagesTable.toNodeSeq()

      headerSparkPage(content, parent.sc, "Fair Scheduler Pool: " + poolName, Stages)
    }
  }
}