Эх сурвалжийг харах

HUE-2341 [oozie] JqCron breaks Coordinator pages after some time

Romain Rigaux 11 жил өмнө
parent
commit
eafc68d

+ 13 - 0
apps/oozie/src/oozie/models.py

@@ -1417,6 +1417,15 @@ class Coordinator(Job):
   HUE_ID = 'hue-id-c'
   ICON = '/oozie/static/art/icon_oozie_coordinator_48.png'
   METADATA_FORMAT_VERSION = "0.0.1"
+  CRON_MAPPING = {
+    '0,15,30,45 * * * *': _('Every 15 minutes'),
+    '0,30 * * * *': _('Every 30 minutes'),
+    '0 * * * *': _('Every hour'),
+    '0 0 * * *': _('Every day at midnight'),
+    '0 0 * * 0': _('Every week'),
+    '0 0 1 * *': _('Every month'),
+    '0 0 1 1 *': _('Every year'),
+  }
 
   def get_type(self):
     return 'coordinator'
@@ -1600,6 +1609,10 @@ class Coordinator(Job):
           freq = '0 0 * * *'
       return {'frequency': freq, 'isAdvancedCron': False}
 
+  @property
+  def cron_frequency_human(self):
+    frequency = self.cron_frequency['frequency']
+    return Coordinator.CRON_MAPPING.get(frequency, frequency)
 
   @cron_frequency.setter
   def cron_frequency(self, cron_frequency):

+ 2 - 11
apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinator.mako

@@ -57,9 +57,9 @@ ${ layout.menubar(section='coordinators', dashboard=True) }
 
         <li class="nav-header">${ _('Frequency') }</li>
         % if enable_cron_scheduling:
-        <li class="white cron-frequency"><input class="value" type="hidden" value="${ oozie_coordinator.frequency }"/></li>
+          <li class="white cron-frequency">${ oozie_coordinator.human_frequency }</li>
         % else:
-        <li class="white">${ oozie_coordinator.frequency } ${ oozie_coordinator.timeUnit }</li>
+          <li class="white">${ oozie_coordinator.frequency } ${ oozie_coordinator.timeUnit }</li>
         % endif
 
         <li class="nav-header">${ _('Next Materialized Time') }</li>
@@ -361,10 +361,6 @@ ${ layout.menubar(section='coordinators', dashboard=True) }
 <script src="/static/js/jquery.blueprint.js"></script>
 % endif
 
-% if enable_cron_scheduling:
-<link href="/static/css/jqCron.css" rel="stylesheet" type="text/css" />
-<script src="/static/js/jqCron.js" type="text/javascript"></script>
-% endif
 
 <style type="text/css">
   .CodeMirror.cm-s-default {
@@ -449,11 +445,6 @@ ${ layout.menubar(section='coordinators', dashboard=True) }
 
     $("*[rel=tooltip]").tooltip();
 
-    % if enable_cron_scheduling:
-      ${ utils.cron_js() }
-      renderCrons();
-    % endif
-
     $(".dataset").each(function () {
       if ($(this).text().length > 15) {
         $(this).html($(this).text().substr(0, 14) + "&hellip;");

+ 3 - 18
apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinators.mako

@@ -157,10 +157,6 @@ ${layout.menubar(section='coordinators', dashboard=True)}
 <script src="/oozie/static/js/bundles.utils.js" type="text/javascript" charset="utf-8"></script>
 <script src="/static/ext/js/datatables-paging-0.1.js" type="text/javascript" charset="utf-8"></script>
 
-% if enable_cron_scheduling:
-<link href="/static/css/jqCron.css" rel="stylesheet" type="text/css" />
-<script src="/static/js/jqCron.js" type="text/javascript"></script>
-% endif
 
 <script type="text/javascript" charset="utf-8">
 
@@ -369,11 +365,6 @@ ${layout.menubar(section='coordinators', dashboard=True)}
       });
     });
 
-    % if enable_cron_scheduling:
-    ${ utils.cron_js() }
-    % endif
-
-
     var numRunning = 0;
 
     refreshRunning = function () {
@@ -454,9 +445,6 @@ ${layout.menubar(section='coordinators', dashboard=True)}
           refreshCompleted();
         }
         numRunning = data.length;
-        % if enable_cron_scheduling:
-        renderCrons(); // utils.inc.mako
-        % endif
         window.setTimeout(refreshRunning, 20000);
       });
     }
@@ -474,10 +462,10 @@ ${layout.menubar(section='coordinators', dashboard=True)}
               emptyStringIfNull(coord.duration),
               coord.user,
               % if enable_cron_scheduling:
-              '<div class="cron-frequency"><input class="value" type="hidden" value="'+emptyStringIfNull(coord.frequency)+'"/></div>',
+                emptyStringIfNull(coord.frequency),
               % else:
-              emptyStringIfNull(coord.frequency),
-              emptyStringIfNull(coord.timeUnit),
+                emptyStringIfNull(coord.frequency),
+                emptyStringIfNull(coord.timeUnit),
               % endif
               emptyStringIfNull(coord.startTime),
               '<a href="' + coord.absoluteUrl + '" data-row-selector="true">' + coord.id + '</a>'
@@ -488,9 +476,6 @@ ${layout.menubar(section='coordinators', dashboard=True)}
           }
         });
         completedTable.fnDraw();
-        % if enable_cron_scheduling:
-        renderCrons(); // utils.inc.mako
-        % endif
       });
     }
 

+ 2 - 13
apps/oozie/src/oozie/templates/editor/list_coordinators.mako

@@ -107,9 +107,9 @@ ${ layout.menubar(section='coordinators') }
             % endif
           </td>
           % if enable_cron_scheduling:
-          <td class="cron-frequency"><input class="value" type="hidden" value="${ coordinator.cron_frequency["frequency"] }"/></td>
+            <td class="cron-frequency">${ coordinator.cron_frequency_human }</td>
           % else:
-          <td>${ coordinator.text_frequency }</td>
+            <td>${ coordinator.text_frequency }</td>
           % endif
           <td>
             <span class="label label-info">${ coordinator.status }</span>
@@ -169,11 +169,6 @@ ${ layout.menubar(section='coordinators') }
 <script src="/static/ext/js/datatables-paging-0.1.js" type="text/javascript" charset="utf-8"></script>
 <script src="/static/ext/js/knockout-min.js" type="text/javascript" charset="utf-8"></script>
 
-% if enable_cron_scheduling:
-<link href="/static/css/jqCron.css" rel="stylesheet" type="text/css" />
-<script src="/static/js/jqCron.js" type="text/javascript"></script>
-% endif
-
 
 <script type="text/javascript" charset="utf-8">
   $(document).ready(function () {
@@ -323,12 +318,6 @@ ${ layout.menubar(section='coordinators') }
     });
 
     $("a[data-row-selector='true']").jHueRowSelector();
-
-    % if enable_cron_scheduling:
-    ${ utils.cron_js() }
-    renderCrons(); // from utils.inc.mako
-    % endif
-
   });
 </script>
 

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

@@ -812,7 +812,7 @@ def massaged_oozie_jobs_for_json(oozie_jobs, user, just_sla=False):
         'created': hasattr(job, 'createdTime') and job.createdTime and job.createdTime and ((job.type == 'Bundle' and job.createdTime) or format_time(job.createdTime)),
         'startTime': hasattr(job, 'startTime') and format_time(job.startTime) or None,
         'run': hasattr(job, 'run') and job.run or 0,
-        'frequency': hasattr(job, 'frequency') and job.frequency or None,
+        'frequency': hasattr(job, 'frequency') and Coordinator.CRON_MAPPING.get(job.frequency, job.frequency) or None,
         'timeUnit': hasattr(job, 'timeUnit') and job.timeUnit or None,
       }
       jobs.append(massaged_job)

+ 5 - 0
desktop/libs/liboozie/src/liboozie/types.py

@@ -545,6 +545,11 @@ class Coordinator(Job):
 
     return result
 
+  @property
+  def human_frequency(self):
+    from oozie.models import Coordinator
+    return Coordinator.CRON_MAPPING.get(self.frequency, self.frequency)
+
 
 class Bundle(Job):
   _ATTRS = [