spark-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dbkerkela <...@git.apache.org>
Subject [GitHub] spark pull request #21688: [SPARK-21809] : Change Stage Page to use datatabl...
Date Tue, 16 Oct 2018 14:20:39 GMT
Github user dbkerkela commented on a diff in the pull request:

    https://github.com/apache/spark/pull/21688#discussion_r222561249
  
    --- Diff: core/src/main/resources/org/apache/spark/ui/static/stagepage.js ---
    @@ -0,0 +1,869 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *    http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +var blockUICount = 0;
    +
    +$(document).ajaxStop(function () {
    +    if (blockUICount == 0) {
    +        $.unblockUI();
    +        blockUICount++;
    +    }
    +});
    +
    +$(document).ajaxStart(function () {
    +    if (blockUICount == 0) {
    +        $.blockUI({message: '<h3>Loading Stage Page...</h3>'});
    +    }
    +});
    +
    +$.extend( $.fn.dataTable.ext.type.order, {
    +    "duration-pre": ConvertDurationString,
    +
    +    "duration-asc": function ( a, b ) {
    +        a = ConvertDurationString( a );
    +        b = ConvertDurationString( b );
    +        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
    +    },
    +
    +    "duration-desc": function ( a, b ) {
    +        a = ConvertDurationString( a );
    +        b = ConvertDurationString( b );
    +        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    +    }
    +} );
    +
    +// This function will only parse the URL under certain format
    +// e.g. (history) https://domain:50509/history/application_1536254569791_3806251/1/stages/stage/?id=4&attempt=1
    +// e.g. (proxy) https://domain:50505/proxy/application_1502220952225_59143/stages/stage?id=4&attempt=1
    +function stageEndPoint(appId) {
    +    var urlRegex = /https\:\/\/[^\/]+\/([^\/]+)\/([^\/]+)\/([^\/]+)?\/?([^\/]+)?\/?([^\/]+)?\/?([^\/]+)?/gm;
    +    var urlArray = urlRegex.exec(document.baseURI);
    +    var ind = urlArray.indexOf("proxy");
    +    var queryString = document.baseURI.split('?');
    +    var words = document.baseURI.split('/');
    +    if (ind > 0) {
    +        var appId = urlArray[2];
    +        var stageId = queryString[1].split("&").filter(word => word.includes("id="))[0].split("=")[1];
    +        var indexOfProxy = words.indexOf("proxy");
    +        var newBaseURI = words.slice(0, indexOfProxy + 2).join('/');
    +        return newBaseURI + "/api/v1/applications/" + appId + "/stages/" + stageId;
    +    }
    +    ind = urlArray.indexOf("history");
    +    if (ind > 0) {
    +        var appId = urlArray[2];
    +        var appAttemptId = urlArray[ind + 2];
    +        var stageId = queryString[1].split("&").filter(word => word.includes("id="))[0].split("=")[1];
    +        var indexOfHistory = words.indexOf("history");
    +        var newBaseURI = words.slice(0, indexOfHistory).join('/');
    +        if (isNaN(appAttemptId) || appAttemptId == "0") {
    +            return newBaseURI + "/api/v1/applications/" + appId + "/stages/" + stageId;
    +        } else {
    +            return newBaseURI + "/api/v1/applications/" + appId + "/" + appAttemptId
+ "/stages/" + stageId;
    +        }
    +    }
    +    var stageId = queryString[1].split("&").filter(word => word.includes("id="))[0].split("=")[1];
    +    return location.origin + "/api/v1/applications/" + appId + "/stages/" + stageId;
    +}
    +
    +function getColumnNameForTaskMetricSummary(columnKey) {
    +    switch(columnKey) {
    +        case "executorRunTime":
    +            return "Duration";
    +            break;
    --- End diff --
    
    I think break is redundant after return?


---

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


Mime
View raw message