aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Köth <okoeth@de.ibm.com>2017-04-05 08:09:42 +0100
committerSean Owen <sowen@cloudera.com>2017-04-05 08:09:42 +0100
commit6f09dc70d9808cae004ceda9ad615aa9be50f43d (patch)
treecaa192a31aedc648363f2093046620adba31fd25
parentdad499f324c6a93650aecfeb8cde10a405372930 (diff)
downloadspark-6f09dc70d9808cae004ceda9ad615aa9be50f43d.tar.gz
spark-6f09dc70d9808cae004ceda9ad615aa9be50f43d.tar.bz2
spark-6f09dc70d9808cae004ceda9ad615aa9be50f43d.zip
[SPARK-20042][WEB UI] Fix log page buttons for reverse proxy mode
with spark.ui.reverseProxy=true, full path URLs like /log will point to the master web endpoint which is serving the worker UI as reverse proxy. To access a REST endpoint in the worker in reverse proxy mode , the leading /proxy/"target"/ part of the base URI must be retained. Added logic to log-view.js to handle this, similar to executorspage.js Patch was tested manually Author: Oliver Köth <okoeth@de.ibm.com> Closes #17370 from okoethibm/master.
-rw-r--r--core/src/main/resources/org/apache/spark/ui/static/log-view.js19
1 files changed, 16 insertions, 3 deletions
diff --git a/core/src/main/resources/org/apache/spark/ui/static/log-view.js b/core/src/main/resources/org/apache/spark/ui/static/log-view.js
index 1782b4f209..b5c43e5788 100644
--- a/core/src/main/resources/org/apache/spark/ui/static/log-view.js
+++ b/core/src/main/resources/org/apache/spark/ui/static/log-view.js
@@ -51,13 +51,26 @@ function noNewAlert() {
window.setTimeout(function () {alert.css("display", "none");}, 4000);
}
+
+function getRESTEndPoint() {
+ // If the worker is served from the master through a proxy (see doc on spark.ui.reverseProxy),
+ // we need to retain the leading ../proxy/<workerid>/ part of the URL when making REST requests.
+ // Similar logic is contained in executorspage.js function createRESTEndPoint.
+ var words = document.baseURI.split('/');
+ var ind = words.indexOf("proxy");
+ if (ind > 0) {
+ return words.slice(0, ind + 2).join('/') + "/log";
+ }
+ return "/log"
+}
+
function loadMore() {
var offset = Math.max(startByte - byteLength, 0);
var moreByteLength = Math.min(byteLength, startByte);
$.ajax({
type: "GET",
- url: "/log" + baseParams + "&offset=" + offset + "&byteLength=" + moreByteLength,
+ url: getRESTEndPoint() + baseParams + "&offset=" + offset + "&byteLength=" + moreByteLength,
success: function (data) {
var oldHeight = $(".log-content")[0].scrollHeight;
var newlineIndex = data.indexOf('\n');
@@ -83,14 +96,14 @@ function loadMore() {
function loadNew() {
$.ajax({
type: "GET",
- url: "/log" + baseParams + "&byteLength=0",
+ url: getRESTEndPoint() + baseParams + "&byteLength=0",
success: function (data) {
var dataInfo = data.substring(0, data.indexOf('\n')).match(/\d+/g);
var newDataLen = dataInfo[2] - totalLogLength;
if (newDataLen != 0) {
$.ajax({
type: "GET",
- url: "/log" + baseParams + "&byteLength=" + newDataLen,
+ url: getRESTEndPoint() + baseParams + "&byteLength=" + newDataLen,
success: function (data) {
var newlineIndex = data.indexOf('\n');
var dataInfo = data.substring(0, newlineIndex).match(/\d+/g);