Browse Source

HUE-2281 [oozie] Dive into logs for Sub-Workflow action

krish 10 năm trước cách đây
mục cha
commit
002592e

+ 8 - 5
apps/oozie/src/oozie/templates/dashboard/list_oozie_workflow_action.mako

@@ -43,13 +43,16 @@ ${ layout.menubar(section='workflows', dashboard=True) }
           <li class="nav-header">${ _('Name') }</li>
           <li class="white">${ action.name }</li>
 
-          % if action.externalId:
-            <li class="nav-header">${ _('External Id') }</li>
-            <li><a href="${ url('jobbrowser.views.single_job', job=action.externalId) }">${ "_".join(action.externalId.split("_")[-2:]) }</a></li>
-
+          <li class="nav-header">${ _('External Id') }</li>
+          % if action.get_externalId_url():
+            <li><a href="${ action.get_externalId_url() }">${ action.externalId }</a></li>
+          % else:
+            <li>${ action.externalId } </li>
+          % endif
+          %  if action.get_absolute_log_url():
             <li class="nav-header">${ _('Logs') }</li>
             <li>
-              <a href="${ url('jobbrowser.views.job_single_logs', job=action.externalId) }" title="${ _('View the logs') }" rel="tooltip"><i class="fa fa-tasks"></i></a>
+              <a href="${ action.get_absolute_log_url() }" title="${ _('View the logs') }" rel="tooltip"><i class="fa fa-tasks"></i></a>
             </li>
           % endif
 

+ 3 - 3
apps/oozie/src/oozie/views/dashboard.py

@@ -779,13 +779,13 @@ def massaged_workflow_actions_for_json(workflow_actions, oozie_coordinator, oozi
 
     massaged_action = {
       'id': action.id,
-      'log': action.externalId and reverse('jobbrowser.views.job_single_logs', kwargs={'job': action.externalId}) or '',
+      'log': action.get_absolute_log_url(),
       'url': action.get_absolute_url(),
       'name': action.name,
       'type': action.type,
       'status': action.status,
-      'externalIdUrl': action.externalId and reverse('jobbrowser.views.single_job', kwargs={'job': action.externalId}) or '',
-      'externalId': action.externalId and '_'.join(action.externalId.split('_')[-2:]) or '',
+      'externalIdUrl': action.get_externalId_url(),
+      'externalId': action.externalId,
       'startTime': format_time(action.startTime),
       'endTime': format_time(action.endTime),
       'retries': action.retries,

+ 14 - 3
desktop/libs/liboozie/src/liboozie/types.py

@@ -152,9 +152,6 @@ class WorkflowAction(Action):
     else:
       self.conf_dict = {}
 
-    if self.externalId is not None and not re.match('job_.*', self.externalId):
-      self.externalId = None
-
   def get_absolute_url(self):
     related_job_ids = []
 
@@ -170,6 +167,20 @@ class WorkflowAction(Action):
 
     return reverse('oozie:list_oozie_workflow_action', kwargs={'action': self.id}) + extra_params
 
+  def get_absolute_log_url(self):
+    url = None
+    if self.externalId and re.match('job_.*', self.externalId):
+      url = self.externalId and reverse('jobbrowser.views.job_single_logs', kwargs={'job': self.externalId}) or ''
+    return url
+
+  def get_externalId_url(self):
+    url = None
+    if self.externalId and self.externalId.endswith('W'):
+      url = reverse('oozie:list_oozie_workflow', kwargs={'job_id': self.externalId}) or ''
+    elif self.externalId and re.match('job_.*', self.externalId):
+      url = reverse('jobbrowser.views.single_job', kwargs={'job': self.externalId}) or ''
+    return url
+
 
 class CoordinatorAction(Action):
   _ATTRS = [