Forráskód Böngészése

AMBARI-6483. JS errors on Jobs page if ATS is stopped. (onechiporenko)

Oleg Nechiporenko 11 éve
szülő
commit
ff82ef3664
1 módosított fájl, 12 hozzáadás és 9 törlés
  1. 12 9
      ambari-web/app/controllers/main/jobs_controller.js

+ 12 - 9
ambari-web/app/controllers/main/jobs_controller.js

@@ -401,15 +401,17 @@ App.MainJobsController = Em.Controller.extend({
   },
 
   loadJobs : function() {
-    var self = this;
-    var timeout = this.get('loadTimeout');
-    var yarnService = App.YARNService.find().objectAt(0);
-    var retryLoad = this.checkDataLoadingError();
-    if (yarnService != null) {
+    var self = this,
+      timeout = this.get('loadTimeout'),
+      yarnService = App.YARNService.find().objectAt(0),
+      atsComponent = App.HostComponent.find().findProperty('componentName','APP_TIMELINE_SERVER'),
+      atsInValidState = !!atsComponent && atsComponent.get('workStatus') === "STARTED",
+      retryLoad = this.checkDataLoadingError();
+    if (yarnService != null && atsInValidState) {
       this.set('loading', true);
-      var historyServerHostName = yarnService.get('appTimelineServer.hostName');
-      var filtersLink = this.get('filterObject').createJobsFiltersLink();
-      var hiveQueriesUrl = App.testMode ? "/data/jobs/hive-queries.json" : "/proxy?url=http://" + historyServerHostName
+      var historyServerHostName = yarnService.get('appTimelineServer.hostName'),
+        filtersLink = this.get('filterObject').createJobsFiltersLink(),
+        hiveQueriesUrl = App.get('testMode') ? "/data/jobs/hive-queries.json" : "/proxy?url=http://" + historyServerHostName
         + ":" + yarnService.get('ahsWebPort') + "/ws/v1/timeline/HIVE_QUERY_ID" + filtersLink;
       App.ajax.send({
         name: 'jobs.lastID',
@@ -420,7 +422,7 @@ App.MainJobsController = Em.Controller.extend({
         },
         success: 'lastIDSuccessCallback',
         error : 'lastIDErrorCallback'
-      }),
+      });
       App.HttpClient.get(hiveQueriesUrl, App.hiveJobsMapper, {
         complete : function(data, jqXHR, textStatus) {
           self.set('loading', false);
@@ -435,6 +437,7 @@ App.MainJobsController = Em.Controller.extend({
         self.checkDataLoadingError(jqXHR);
       });
     }else{
+      this.checkDataLoadingError();
       clearTimeout(timeout);
       timeout = setTimeout(function(){
         self.loadJobs();