Просмотр исходного кода

HUE-1176 [jb] Properly get the app state for YARN jobs

Romain Rigaux 8 лет назад
Родитель
Сommit
a6dd1d5

+ 2 - 2
apps/jobbrowser/src/jobbrowser/apis/job_api.py

@@ -108,7 +108,7 @@ class YarnApi(Api):
         'name': app['name'],
         'type': app['applicationType'],
         'status': app['status'],
-        'apiStatus': self._api_status(app['status']),
+        'apiStatus': self._api_status(app['yarnStatus']),
         'user': app['user'],
         'progress': app['progress'],
         'duration': app['durationMs'],
@@ -142,7 +142,7 @@ class YarnApi(Api):
         'name': app['name'],
         'type': app['applicationType'],
         'status': app['status'],
-        'apiStatus': self._api_status(app['status']),
+        'apiStatus': self._api_status(app['yarnStatus']),
         'user': app['user'],
         'progress': app['progress'],
         'duration': app['durationMs'],

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

@@ -171,7 +171,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
                       <div class="hueCheckbox fa" data-bind="click: function() {}, clickBubble: false, multiCheck: '#jobsTable', value: $data, hueChecked: $parent.jobs.selectedJobs"></div>
                     </td>
                     <td>
-                      <div class="status-circle" data-bind="attr:{ 'title': status }, css: {'green': status() == 'SUCCEEDED','orange': ['RUNNING', 'ACCEPTED'].indexOf(status()) > -1, 'red': status() == 'KILLED'}"></div>
+                      <div class="status-circle" data-bind="attr:{ 'title': status }, css: {'green': apiStatus() == 'SUCCEEDED', 'orange': isRunning(), 'red': apiStatus() == 'FAILED'}"></div>
                     </td>
                     <td data-bind="text: duration"></td>
                     <td data-bind="text: submitted"></td>

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

@@ -171,6 +171,7 @@ def massage_job_for_json(job, request=None, user=None):
     'shortId': job.jobId_short,
     'name': hasattr(job, 'jobName') and job.jobName or '',
     'status': job.status,
+    'yarnStatus': hasattr(job, 'yarnStatus') and job.yarnStatus or '',
     'url': job.jobId and reverse('jobbrowser.views.single_job', kwargs={'job': job.jobId}) or '',
     'logs': job.jobId and reverse('jobbrowser.views.job_single_logs', kwargs={'job': job.jobId}) or '',
     'queueName': hasattr(job, 'queueName') and job.queueName or _('N/A'),

+ 1 - 0
apps/jobbrowser/src/jobbrowser/yarn_models.py

@@ -56,6 +56,7 @@ class Application(object):
   def _fixup(self):
     self.is_mr2 = True
     jobid = self.id
+    self.yarnStatus = self.state
     if self.state in ('FINISHED', 'FAILED', 'KILLED'):
       setattr(self, 'status', self.finalStatus)
     else:

+ 1 - 1
desktop/core/src/desktop/templates/assist.mako

@@ -777,7 +777,7 @@ from notebook.conf import get_ordered_interpreters
           <i class="pointer fa fa-sort" title="${_('Sort')}"></i>
           <!-- /ko -->
           <!-- ko if: $parent.activeSort() === 'popular' -->
-          <i class="pointer fa fa-star-0" title="${_('Sort')}"></i>
+          <i class="pointer fa fa-star-o" title="${_('Sort')}"></i>
           <!-- /ko -->
           <!-- ko if: $parent.activeSort() === 'alpha' -->
           <i class="pointer fa fa-sort-alpha-asc" title="${_('Sort')}"></i>