浏览代码

HUE-6870 [jb] Offer stdout log of most interesting job task by default

Romain Rigaux 8 年之前
父节点
当前提交
ece5a27

+ 7 - 1
apps/jobbrowser/src/jobbrowser/apis/job_api.py

@@ -203,7 +203,7 @@ class YarnApi(Api):
           response = job_single_logs(MockDjangoRequest(self.user), job=appid)
           logs = json.loads(response.content).get('logs')
           if logs and len(logs) == 4:
-            logs = logs[3]
+            logs = logs[1]
         else:
           response = job_attempt_logs_json(MockDjangoRequest(self.user), job=appid, name=log_name)
           logs = json.loads(response.content).get('log')
@@ -294,6 +294,9 @@ class YarnMapReduceTaskApi(Api):
 
 
   def logs(self, appid, app_type, log_name):
+    if log_name == 'default':
+      log_name = 'stdout'
+
     try:
       response = job_attempt_logs_json(MockDjangoRequest(self.user), job=self.app_id, name=log_name)
       logs = json.loads(response.content)['log']
@@ -359,6 +362,9 @@ class YarnMapReduceTaskAttemptApi(Api):
 
 
   def logs(self, appid, app_type, log_name):
+    if log_name == 'default':
+      log_name = 'stdout'
+
     task = NativeYarnApi(self.user).get_task(jobid=self.app_id, task_id=self.task_id).get_attempt(self.attempt_id)
     stdout, stderr, syslog = task.get_task_log()
 

+ 3 - 3
apps/jobbrowser/src/jobbrowser/templates/job_browser.mako

@@ -596,7 +596,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
         <div class="tab-pane active" id="job-mapreduce-task-page-logs${ SUFFIX }">
           <ul class="nav nav-tabs">
           % for name in ['stdout', 'stderr', 'syslog']:
-            <li class="${ name == 'syslog' and 'active' or '' }"><a href="javascript:void(0)" data-bind="click: function(data, e) { $(e.currentTarget).parent().siblings().removeClass('active'); $(e.currentTarget).parent().addClass('active'); fetchLogs('${ name }'); }, text: '${ name }'"></a></li>
+            <li class="${ name == 'stdout' and 'active' or '' }"><a href="javascript:void(0)" data-bind="click: function(data, e) { $(e.currentTarget).parent().siblings().removeClass('active'); $(e.currentTarget).parent().addClass('active'); fetchLogs('${ name }'); }, text: '${ name }'"></a></li>
           % endfor
           </ul>
 
@@ -696,7 +696,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
         <div class="tab-pane active" id="job-mapreduce-task-attempt-page-logs${ SUFFIX }">
           <ul class="nav nav-tabs">
           % for name in ['stdout', 'stderr', 'syslog']:
-            <li class="${ name == 'syslog' and 'active' or '' }"><a href="javascript:void(0)" data-bind="click: function(data, e) { $(e.currentTarget).parent().siblings().removeClass('active'); $(e.currentTarget).parent().addClass('active'); fetchLogs('${ name }'); }, text: '${ name }'"></a></li>
+            <li class="${ name == 'stdout' and 'active' or '' }"><a href="javascript:void(0)" data-bind="click: function(data, e) { $(e.currentTarget).parent().siblings().removeClass('active'); $(e.currentTarget).parent().addClass('active'); fetchLogs('${ name }'); }, text: '${ name }'"></a></li>
           % endfor
           </ul>
           <pre data-bind="html: logs, logScroller: logs"></pre>
@@ -2340,7 +2340,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
 
         huePubSub.subscribe('oozie.action.logs.click', function (widget) {
           $.get(widget.logsURL(), {
-              format: 'json'
+              format: 'link'
             },
             function(data) {
               if (data.attemptid) {

+ 1 - 1
apps/jobbrowser/src/jobbrowser/views.py

@@ -399,7 +399,7 @@ def job_single_logs(request, job, offset=LOG_OFFSET_BYTES):
 
   params = {'job': job.jobId, 'taskid': task.taskId, 'attemptid': task.taskAttemptIds[-1], 'offset': offset}
 
-  if request.GET.get('format') == 'json':
+  if request.GET.get('format') == 'link':
     return JsonResponse(params)
   else:
     return single_task_attempt_logs(request, **params)