Browse Source

AMBARI-4989 Request status shows 2% completed although only 1 out of 800 tasks is pending. (atkach)

atkach 11 years ago
parent
commit
7dc110d646

+ 13 - 3
ambari-web/app/controllers/global/background_operations_controller.js

@@ -129,6 +129,16 @@ App.BackgroundOperationsController = Em.Controller.extend({
       }
       currentTaskStatusMap[task.Tasks.id] = task.Tasks.status;
     }, this);
+    /**
+     * sync up request progress with up to date progress of hosts on Host's list,
+     * to avoid discrepancies while waiting for response with latest progress of request
+     * after switching to operation's list
+     */
+    if (request.get('isRunning')) {
+      request.set('progress', App.HostPopup.getProgress(data.tasks));
+      request.set('status', App.HostPopup.getStatus(data.tasks)[0]);
+      request.set('isRunning', (request.get('progress') !== 100));
+    }
     request.set('previousTaskStatusMap', currentTaskStatusMap);
     request.set('hostsMap', hostsMap);
     this.set('serviceTimestamp', App.dateTime());
@@ -167,12 +177,12 @@ App.BackgroundOperationsController = Em.Controller.extend({
       var inputs = null;
       if (request.Requests.inputs) {
         inputs = JSON.parse(request.Requests.inputs);
-      };
+      }
       var oneHost = false;
       if (inputs && inputs.included_hosts) {
         var hosts = inputs.included_hosts.split(',');
-        oneHost = hosts.length < 2 ? true : false;
-      };
+        oneHost = (hosts.length < 2);
+      }
       if(request.Requests.request_schedule && oneHost && /Recommission/.test(requestParams.requestContext)){
         request.Requests.request_schedule.schedule_id = null;
       }