Pārlūkot izejas kodu

HUE-2793 [JB] Fix Mapper & Reducer counts in job page

krish 10 gadi atpakaļ
vecāks
revīzija
27aa004

+ 4 - 4
apps/jobbrowser/src/jobbrowser/templates/job.mako

@@ -639,18 +639,18 @@ $(document).ready(function () {
     $("#jobStatus").html('<span class="label ' + getStatusClass(job.status) + '">' + (job.isRetired && !job.isMR2 ? '<i class="fa fa-briefcase fa fa-white" title="${ _('Retired') }"></i> ' : '') + job.status + '</span>');
     var _title = "";
     if (job.desiredMaps > 0) {
-      $("#jobMaps").html((job.isRetired ? '${_('N/A')}' : '<div class="progress" style="width:100px" title="' + (job.isMR2 ? job.mapsPercentComplete : job.finishedMaps + '/' + job.desiredMaps) + '"><div class="bar-label">' + job.mapsPercentComplete + '%</div><div class="' + 'bar ' + getStatusClass(job.status, "bar-") + '" style="margin-top:-20px;width:' + job.mapsPercentComplete + '%"></div></div>'));
+      $("#jobMaps").html((job.isRetired ? '${_('N/A')}' : '<div class="progress" style="width:100px" title="' + (job.finishedMaps + '/' + job.desiredMaps) + '"><div class="bar-label">' + job.mapsPercentComplete + '%</div><div class="' + 'bar ' + getStatusClass(job.status, "bar-") + '" style="margin-top:-20px;width:' + job.mapsPercentComplete + '%"></div></div>'));
       _title += "M " + job.mapsPercentComplete + "%";
     }
     else {
-      $("#jobMaps").html('${_('N/A')}');
+      $("#jobMaps").html('${_('0/0')}');
     }
     if (job.desiredReduces > 0) {
-      $("#jobReduces").html((job.isRetired ? '${_('N/A')}' : '<div class="progress" style="width:100px" title="' + (job.isMR2 ? job.reducesPercentComplete : job.finishedReduces + '/' + job.desiredReduces) + '"><div class="bar-label">' + job.reducesPercentComplete + '%</div><div class="' + 'bar ' + getStatusClass(job.status, "bar-") + '" style="margin-top:-20px;width:' + job.reducesPercentComplete + '%"></div></div>'));
+      $("#jobReduces").html((job.isRetired ? '${_('N/A')}' : '<div class="progress" style="width:100px" title="' + (job.finishedReduces + '/' + job.desiredReduces) + '"><div class="bar-label">' + job.reducesPercentComplete + '%</div><div class="' + 'bar ' + getStatusClass(job.status, "bar-") + '" style="margin-top:-20px;width:' + job.reducesPercentComplete + '%"></div></div>'));
       _title += " R " + job.reducesPercentComplete + "%";;
     }
     else {
-      $("#jobReduces").html('${_('N/A')}');
+      $("#jobReduces").html('${_('0/0')}');
     }
     if (_title != ""){
       $.jHueTitleUpdater.set(_title);

+ 20 - 4
apps/jobbrowser/src/jobbrowser/yarn_models.py

@@ -140,6 +140,22 @@ class Job(object):
 
     self._fixup()
 
+    # Set MAPS/REDUCES completion percentage
+    if hasattr(self, 'mapsTotal'):
+      self.desiredMaps = self.mapsTotal
+      if self.desiredMaps == 0:
+        self.maps_percent_complete = 0
+      else:
+        self.maps_percent_complete = int(round(float(self.finishedMaps) / self.desiredMaps * 100))
+
+    if hasattr(self, 'reducesTotal'):
+      self.desiredReduces = self.reducesTotal
+      if self.desiredReduces == 0:
+        self.reduces_percent_complete = 0
+      else:
+        self.reduces_percent_complete = int(round(float(self.finishedReduces) / self.desiredReduces * 100))
+
+
   def _fixup(self):
     jobid = self.id
 
@@ -154,9 +170,9 @@ class Job(object):
     setattr(self, 'finishTimeFormatted', format_unixtime_ms(self.finishTime))
     setattr(self, 'startTimeFormatted', format_unixtime_ms(self.startTime))
     setattr(self, 'finishedMaps', self.mapsCompleted)
-    setattr(self, 'desiredMaps', None)
+    setattr(self, 'desiredMaps', 0)
     setattr(self, 'finishedReduces', self.reducesCompleted)
-    setattr(self, 'desiredReduces', None)
+    setattr(self, 'desiredReduces', 0)
     setattr(self, 'applicationType', 'MR2')
 
   def kill(self):
@@ -220,9 +236,9 @@ class KilledJob(Job):
 
   def _fixup(self):
     if not hasattr(self, 'mapsCompleted'):
-      setattr(self, 'mapsCompleted', 1)
+      setattr(self, 'mapsCompleted', 0)
     if not hasattr(self, 'reducesCompleted'):
-      setattr(self, 'reducesCompleted', 1)
+      setattr(self, 'reducesCompleted', 0)
 
   @property
   def counters(self):