Przeglądaj źródła

HUE-6870 [jb] Open launcher task log of workflow action in one click

Romain Rigaux 8 lat temu
rodzic
commit
0b8fee0

+ 12 - 7
apps/jobbrowser/src/jobbrowser/templates/job_browser.mako

@@ -1619,7 +1619,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
         self.loadingJob(true);
 
         var interface = vm.interface();
-        if (/application_/.test(self.id()) || /job_/.test(self.id())) {
+        if (/application_/.test(self.id()) || /job_/.test(self.id()) || /attempt_/.test(self.id())) {
           interface = 'jobs';
         }
         if (/oozie-oozi-W/.test(self.id())) {
@@ -2339,12 +2339,17 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
         ko.applyBindings(jobBrowserViewModel, $('#jobbrowserComponents')[0]);
 
         huePubSub.subscribe('oozie.action.logs.click', function (widget) {
-          var jobId = widget.logsURL().match(/jobbrowser\/jobs\/(.+?)\/single_logs$/i);
-          if (jobId) {
-            openJob(jobId[1]);
-          } else {
-            console.error('Unknown job log url: ' + widget.logsURL());
-          }
+          $.get(widget.logsURL(), {
+              format: 'json'
+            },
+            function(data) {
+              if (data.attemptid) {
+                openJob(data.attemptid);
+              } else {
+                $(document).trigger("error", '${ _("No log available") }');
+              }
+            }
+          );
         }, 'jobbrowser');
 
         huePubSub.subscribe('oozie.action.click', function (widget) {

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

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