This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch kylin-on-parquet-v2
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit c4d3168268f189aaec4e7406d08dcc10fffb2888
Author: zl03 <zhuleiwe...@163.com>
AuthorDate: Mon Nov 23 15:37:54 2020 +0800

    KYLIN-4813 Add download all log link in front-end
---
 .../engine/spark/common/logging/SparkExecutorHdfsAppender.java |  4 ++--
 webapp/app/js/controllers/job.js                               | 10 +++++++++-
 webapp/app/partials/jobs/job_steps.html                        |  1 +
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git 
a/kylin-spark-project/kylin-spark-common/src/main/java/org/apache/kylin/engine/spark/common/logging/SparkExecutorHdfsAppender.java
 
b/kylin-spark-project/kylin-spark-common/src/main/java/org/apache/kylin/engine/spark/common/logging/SparkExecutorHdfsAppender.java
index 381fd2d..d8b250f 100644
--- 
a/kylin-spark-project/kylin-spark-common/src/main/java/org/apache/kylin/engine/spark/common/logging/SparkExecutorHdfsAppender.java
+++ 
b/kylin-spark-project/kylin-spark-common/src/main/java/org/apache/kylin/engine/spark/common/logging/SparkExecutorHdfsAppender.java
@@ -42,8 +42,8 @@ public class SparkExecutorHdfsAppender extends 
AbstractHdfsLogAppender {
 
     private static final long A_DAY_MILLIS = 24 * 60 * 60 * 1000L;
     private static final long A_HOUR_MILLIS = 60 * 60 * 1000L;
-    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", 
Locale.getDefault());
-    private SimpleDateFormat hourFormat = new SimpleDateFormat("HH");
+    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", 
Locale.ROOT);
+    private SimpleDateFormat hourFormat = new SimpleDateFormat("HH", 
Locale.ROOT);
 
     @VisibleForTesting
     String outPutPath;
diff --git a/webapp/app/js/controllers/job.js b/webapp/app/js/controllers/job.js
index a2fed31..a36a049 100644
--- a/webapp/app/js/controllers/job.js
+++ b/webapp/app/js/controllers/job.js
@@ -354,6 +354,9 @@ KylinApp
                     },
                     attr: function () {
                         return $scope.state.stepAttrToShow;
+                    },
+                    job: function () {
+                        return $scope.state.selectedJob;
                     }
                 }
             });
@@ -361,10 +364,15 @@ KylinApp
     }
 );
 
-var jobStepDetail = function ($scope, $modalInstance, step, attr) {
+var jobStepDetail = function ($scope, $modalInstance, $window, step, attr, 
job) {
     $scope.step = step;
     $scope.stepAttrToShow = attr;
+    $scope.job = job;
     $scope.cancel = function () {
         $modalInstance.dismiss('cancel');
     }
+    $scope.downloadAllLogs =function () {
+        var downloadUrl = Config.service.url + 'jobs/'+ job.uuid +'/steps/'+ 
step.id +'/log' + '?project=' + job.projectName;
+        $window.open(downloadUrl);
+    }
 };
diff --git a/webapp/app/partials/jobs/job_steps.html 
b/webapp/app/partials/jobs/job_steps.html
index 993b302..13516c1 100644
--- a/webapp/app/partials/jobs/job_steps.html
+++ b/webapp/app/partials/jobs/job_steps.html
@@ -161,6 +161,7 @@
     <div class="modal-header">
         <h4>{{stepAttrToShow == 'cmd' ? 'Parameters' : 'Output'}}
             <i ng-if="stepAttrToShow == 'output' && step.loadingOp" class="fa 
fa-spinner fa-spin"></i></h4>
+            The output log shows the first and last 100 lines by default. To 
view all the output, please click to <a ng-click="downloadAllLogs()">download 
the log file</a >.
     </div>
     <div class="modal-body">
         <pre>{{stepAttrToShow == 'cmd' ? step.exec_cmd : (step.loadingOp ? 
"Loading..." : !!(step.cmd_output)?step.cmd_output:'No Data Available')}}</pre>

Reply via email to