Github user vijoshi commented on a diff in the pull request:

    https://github.com/apache/spark/pull/15742#discussion_r86662723
  
    --- Diff: 
core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala ---
    @@ -275,6 +277,79 @@ class HistoryServerSuite extends SparkFunSuite with 
BeforeAndAfter with Matchers
         all (siteRelativeLinks) should startWith (uiRoot)
       }
     
    +  test("ajax rendered relative links are prefixed with uiRoot 
(spark.ui.proxyBase)") {
    +
    +    val proxyBaseBeforeTest = System.getProperty("spark.ui.proxyBase")
    +    val uiRoot = "/testwebproxybase"
    +    System.setProperty("spark.ui.proxyBase", uiRoot)
    +
    +    server.stop()
    +
    +    val conf = new SparkConf()
    +      .set("spark.history.fs.logDirectory", logDir)
    +      .set("spark.history.fs.update.interval", "0")
    +      .set("spark.testing", "true")
    +
    +    provider = new FsHistoryProvider(conf)
    +    provider.checkForLogs()
    +    val securityManager = new SecurityManager(conf)
    +
    +    server = new HistoryServer(conf, provider, securityManager, 18080)
    +    server.initialize()
    +    server.bind()
    +    val port = server.boundPort
    +
    +    val servlet = new ProxyServlet {
    +      override def rewriteTarget(request: HttpServletRequest): String = {
    +        // servlet acts like a proxy that redirects calls made on
    +        // spark.ui.proxyBase context path to the normal servlet handlers 
operating off "/"
    +        val sb = request.getRequestURL()
    +
    +        if (request.getQueryString() != null) {
    +          sb.append (s"?${request.getQueryString()}")
    +        }
    +
    +        val proxyidx = sb.indexOf(uiRoot)
    +        sb.delete(proxyidx, proxyidx + uiRoot.length).toString
    +      }
    +    }
    +
    +    val contextHandler = new ServletContextHandler
    +    val holder = new ServletHolder(servlet)
    +    contextHandler.setContextPath(uiRoot)
    +    contextHandler.addServlet(holder, "/")
    +    server.attachHandler(contextHandler)
    +
    +    implicit val webDriver: WebDriver = new HtmlUnitDriver (true) {
    +      getWebClient.getOptions.setThrowExceptionOnScriptError(false)
    +    }
    +
    +    val url = s"http://localhost:$port";
    +
    +    go to s"$url$uiRoot"
    +
    +    // expect the ajax call to finish in 5 seconds
    +    implicitlyWait(org.scalatest.time.Span(5, org.scalatest.time.Seconds))
    +
    +    // once this findAll call returns, we know the ajax load of the table 
completed
    +    findAll (ClassNameQuery("odd"))
    --- End diff --
    
    fixed.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to