瀏覽代碼

AMBARI-6878. Rebalancer: The UI still shows the rebalancer as running though its completed. (Max Shepel via alexantonenko)

Alex Antonenko 11 年之前
父節點
當前提交
91d69358e4
共有 2 個文件被更改,包括 18 次插入4 次删除
  1. 4 2
      ambari-web/app/templates/common/host_progress_popup.hbs
  2. 14 2
      ambari-web/app/utils/host_progress_popup.js

+ 4 - 2
ambari-web/app/templates/common/host_progress_popup.hbs

@@ -202,7 +202,7 @@
                     {{#if view.openedTask.isRebalanceHDFSTask }}
                       <h5>{{t services.hdfs.rebalance.title}}</h5>
                       <div class="progresspopup-rebalancehdfs">
-                        <div class="progress progress-striped active">
+                        <div {{bindAttr class=":progress view.openedTask.isInProgress:progress-striped view.openedTask.barColor :active"}}>
                           <div class="bar" {{bindAttr style="view.openedTask.completionProgressStyle"}}></div>
                         </div>
                       </div>
@@ -212,7 +212,9 @@
                           {{view.openedTask.dataLeft}} left /
                           {{view.openedTask.dataBeingMoved}} being processed
                         </div>
-                        <button class="btn btn-danger pull-right" {{action stopRebalanceHDFS}}>{{t common.cancel}}</button>
+                        {{#if view.openedTask.isNotComplete}}
+                          <button class="btn btn-danger pull-right" {{action stopRebalanceHDFS}}>{{t common.cancel}}</button>
+                        {{/if}}
                       </div>
                       <hr>
                     {{/if}}

+ 14 - 2
ambari-web/app/utils/host_progress_popup.js

@@ -461,7 +461,8 @@ App.HostPopup = Em.Object.create({
               newHostInfo.logTasks.forEach(function (_task) {
                 var existTask = existTasks.findProperty('id', _task.Tasks.id);
                 if (existTask) {
-                  existTask.set('status', App.format.taskStatus(_task.Tasks.status));
+                  var status = _task.Tasks.status;
+                  existTask.set('status', App.format.taskStatus(status));
                   existTask.set('stdout', _task.Tasks.stdout);
                   existTask.set('stderr', _task.Tasks.stderr);
                   // Verified that this is needed.
@@ -477,10 +478,21 @@ App.HostPopup = Em.Object.create({
                     if (!structuredOut || structuredOut === 'null') {
                       structuredOut = {};
                     }
-                    
+
+                    var barColorMap = {
+                      'FAILED': 'progress-danger',
+                      'ABORTED': 'progress-warning',
+                      'TIMEDOUT': 'progress-warning',
+                      'IN_PROGRESS': 'progress-info',
+                      'COMPLETED': 'progress-success'
+                    };
+
                     existTask.set('dataMoved', structuredOut['dataMoved'] || '0');
                     existTask.set('dataLeft', structuredOut['dataLeft'] || '0');
                     existTask.set('dataBeingMoved', structuredOut['dataBeingMoved'] || '0');
+                    existTask.set('barColor', barColorMap[status]);
+                    existTask.set('isInProgress', status == 'IN_PROGRESS');
+                    existTask.set('isNotComplete', ['QUEUED', 'IN_PROGRESS'].contains(status));
                     existTask.set('completionProgressStyle', 'width:' + (structuredOut['completePercent'] || 0) * 100 + '%;');
 
                     existTask.set('command', _task.Tasks.command);