瀏覽代碼

HUE-6595 [fb] Opening a job might throw a 500 error if its tasks are None

Prachi Poddar 8 年之前
父節點
當前提交
9c22dde6b1
共有 1 個文件被更改,包括 8 次插入4 次删除
  1. 8 4
      apps/jobbrowser/src/jobbrowser/yarn_models.py

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

@@ -279,10 +279,14 @@ class Job(object):
     return Task(self, json)
 
   def filter_tasks(self, task_types=None, task_states=None, task_text=None):
-    return [Task(self, task) for task in self.api.tasks(self.id).get('tasks', {}).get('task', [])
-          if (not task_types or task['type'].lower() in task_types) and
-             (not task_states or task['state'].lower() in task_states) and
-             (not task_text or task_text.lower() in str(task).lower())]
+    tasks = self.api.tasks(self.id).get('tasks', {})
+    if tasks and tasks.get('task'):
+      return [Task(self, task) for task in tasks.get('task', [])
+              if (not task_types or task['type'].lower() in task_types) and
+              (not task_states or task['state'].lower() in task_states) and
+              (not task_text or task_text.lower() in str(task).lower())]
+    else:
+      return []
 
   @property
   def job_attempts(self):