浏览代码

[jb] Use MR API if the job is in a running state, fix tests

Jenny Kim 9 年之前
父节点
当前提交
026ff0c
共有 2 个文件被更改,包括 7 次插入3 次删除
  1. 4 0
      apps/jobbrowser/src/jobbrowser/api.py
  2. 3 3
      apps/jobbrowser/src/jobbrowser/tests.py

+ 4 - 0
apps/jobbrowser/src/jobbrowser/api.py

@@ -239,6 +239,10 @@ class YarnApi(JobBrowserApi):
       else:
         if app['state'] == 'ACCEPTED':
           raise ApplicationNotRunning(app_id, app)
+        # The MapReduce API only returns JSON when the application is in a RUNNING state
+        elif app['state'] in ('NEW', 'SUBMITTED', 'RUNNING') and app['applicationType'] == 'MAPREDUCE':
+          resp = self.mapreduce_api.job(self.user, job_id)
+          job = YarnJob(self.mapreduce_api, resp['job'])
         else:
           job = Application(app, self.resource_manager_api)
     except RestException, e:

+ 3 - 3
apps/jobbrowser/src/jobbrowser/tests.py

@@ -462,7 +462,7 @@ class TestMapReduce2NoHadoop:
 
   def test_yarn_job(self):
     response = self.c.get('/jobbrowser/jobs/application_1428442704693_0007')
-    assert_equal(response.context['job'].jobId, 'application_1428442704693_0007')
+    assert_equal(response.context['job'].jobId, 'job_1356251510842_0009')
 
   def job_not_assigned(self):
     response = self.c.get('/jobbrowser/jobs/job_1356251510842_0009/job_not_assigned//my_url')
@@ -591,7 +591,7 @@ class MockResourceManagerApi:
         u'trackingUrl': u'http://N/A',
         u'user': u'test',
         u'vcoreSeconds': 1,
-    },
+    }
   }
 
   def __init__(self, user, rm_url=None): pass
@@ -785,7 +785,7 @@ class HistoryServerApi(MockMapreduce2Api):
               u'successfulReduceAttempts': 1, u'successfulMapAttempts': 2, u'uberized': False, u'reducesTotal': 1,
               u'state': u'SUCCEEDED', u'failedReduceAttempts': 0, u'mapsCompleted': 2,
               u'killedMapAttempts': 0, u'diagnostics': u'', u'mapsTotal': 2, u'user': u'test',
-              u'startTime': 1357151916268, u'avgReduceTime': 137,
+              u'startTime': 0, u'avgReduceTime': 137,
               u'finishTime': 1357151923925, u'name': u'oozie:action:T=map-reduce:W=MapReduce-copy:A=Sleep:ID=0000004-121223003201296-oozie-oozi-W',
               u'avgShuffleTime': 1421, u'queue': u'default', u'killedReduceAttempts': 0, u'failedMapAttempts': 0
           }