aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRohit Agarwal <rohita@qubole.com>2015-08-12 17:48:43 -0700
committerMarcelo Vanzin <vanzin@cloudera.com>2015-08-12 17:48:43 -0700
commit0d1d146c220f0d47d0e62b368d5b94d3bd9dd197 (patch)
treebc4dfd3a8133b25828969a4e25e5db38417e3ed3
parent8ce60963cb0928058ef7b6e29ff94eb69d1143af (diff)
downloadspark-0d1d146c220f0d47d0e62b368d5b94d3bd9dd197.tar.gz
spark-0d1d146c220f0d47d0e62b368d5b94d3bd9dd197.tar.bz2
spark-0d1d146c220f0d47d0e62b368d5b94d3bd9dd197.zip
[SPARK-9724] [WEB UI] Avoid unnecessary redirects in the Spark Web UI.
Author: Rohit Agarwal <rohita@qubole.com> Closes #8014 from mindprince/SPARK-9724 and squashes the following commits: a7af5ff [Rohit Agarwal] [SPARK-9724] [WEB UI] Inline attachPrefix and attachPrefixForRedirect. Fix logic of attachPrefix 8a977cd [Rohit Agarwal] [SPARK-9724] [WEB UI] Address review comments: Remove unneeded code, update scaladoc. b257844 [Rohit Agarwal] [SPARK-9724] [WEB UI] Avoid unnecessary redirects in the Spark Web UI.
-rw-r--r--core/src/main/scala/org/apache/spark/ui/JettyUtils.scala13
-rw-r--r--core/src/main/scala/org/apache/spark/ui/SparkUI.scala4
2 files changed, 8 insertions, 9 deletions
diff --git a/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala b/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala
index c8356467fa..779c0ba083 100644
--- a/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala
+++ b/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala
@@ -106,7 +106,11 @@ private[spark] object JettyUtils extends Logging {
path: String,
servlet: HttpServlet,
basePath: String): ServletContextHandler = {
- val prefixedPath = attachPrefix(basePath, path)
+ val prefixedPath = if (basePath == "" && path == "/") {
+ path
+ } else {
+ (basePath + path).stripSuffix("/")
+ }
val contextHandler = new ServletContextHandler
val holder = new ServletHolder(servlet)
contextHandler.setContextPath(prefixedPath)
@@ -121,7 +125,7 @@ private[spark] object JettyUtils extends Logging {
beforeRedirect: HttpServletRequest => Unit = x => (),
basePath: String = "",
httpMethods: Set[String] = Set("GET")): ServletContextHandler = {
- val prefixedDestPath = attachPrefix(basePath, destPath)
+ val prefixedDestPath = basePath + destPath
val servlet = new HttpServlet {
override def doGet(request: HttpServletRequest, response: HttpServletResponse): Unit = {
if (httpMethods.contains("GET")) {
@@ -246,11 +250,6 @@ private[spark] object JettyUtils extends Logging {
val (server, boundPort) = Utils.startServiceOnPort[Server](port, connect, conf, serverName)
ServerInfo(server, boundPort, collection)
}
-
- /** Attach a prefix to the given path, but avoid returning an empty path */
- private def attachPrefix(basePath: String, relativePath: String): String = {
- if (basePath == "") relativePath else (basePath + relativePath).stripSuffix("/")
- }
}
private[spark] case class ServerInfo(
diff --git a/core/src/main/scala/org/apache/spark/ui/SparkUI.scala b/core/src/main/scala/org/apache/spark/ui/SparkUI.scala
index 3788916cf3..d8b90568b7 100644
--- a/core/src/main/scala/org/apache/spark/ui/SparkUI.scala
+++ b/core/src/main/scala/org/apache/spark/ui/SparkUI.scala
@@ -64,11 +64,11 @@ private[spark] class SparkUI private (
attachTab(new EnvironmentTab(this))
attachTab(new ExecutorsTab(this))
attachHandler(createStaticHandler(SparkUI.STATIC_RESOURCE_DIR, "/static"))
- attachHandler(createRedirectHandler("/", "/jobs", basePath = basePath))
+ attachHandler(createRedirectHandler("/", "/jobs/", basePath = basePath))
attachHandler(ApiRootResource.getServletHandler(this))
// This should be POST only, but, the YARN AM proxy won't proxy POSTs
attachHandler(createRedirectHandler(
- "/stages/stage/kill", "/stages", stagesTab.handleKillRequest,
+ "/stages/stage/kill", "/stages/", stagesTab.handleKillRequest,
httpMethods = Set("GET", "POST")))
}
initialize()