Prechádzať zdrojové kódy

AMBARI-17549 Client Install Failed icon appears even after reinstall. (akovalenko)

Aleksandr Kovalenko 9 rokov pred
rodič
commit
673f524b16

+ 2 - 4
ambari-web/app/views/main/host/summary.js

@@ -181,14 +181,12 @@ App.MainHostSummaryView = Em.View.extend(App.TimeRangeMixin, {
           clients[clients.length - 1].set('isLast', false);
         }
         component.set('isLast', true);
-        if (['INSTALL_FAILED', 'INIT'].contains(component.get('workStatus'))) {
-          component.set('isInstallFailed', true);
-        }
+        component.set('isInstallFailed', ['INSTALL_FAILED', 'INIT'].contains(component.get('workStatus')));
         clients.push(component);
       }
     }, this);
     return clients;
-  }.property('content.hostComponents.length'),
+  }.property('content.hostComponents.length', 'content.hostComponents.@each.workStatus'),
 
   anyClientFailedToInstall: Em.computed.someBy('clients', 'isInstallFailed', true),
 

+ 13 - 0
ambari-web/test/views/main/host/summary_test.js

@@ -216,6 +216,19 @@ describe('App.MainHostSummaryView', function() {
       });
     });
 
+    it('should set isInstallFailed for clients with INIT and INSTALL_FAILED workStatus', function() {
+      mainHostSummaryView.set('content', Em.Object.create({
+        hostComponents: [
+          Em.Object.create({isMaster: false, isSlave: false, componentName: 'B', workStatus: 'INIT'}),
+          Em.Object.create({isMaster: false, isSlave: false, componentName: 'A', workStatus: 'INSTALLED'}),
+          Em.Object.create({isMaster: false, isSlave: false, componentName: 'C', workStatus: 'INSTALL_FAILED'}),
+          Em.Object.create({isMaster: false, isSlave: false, componentName: 'D', workStatus: 'INSTALLING'})
+        ]
+      }));
+      expect(mainHostSummaryView.get('clients').filterProperty('isInstallFailed', true).mapProperty('componentName')).to.eql(['B', 'C']);
+      expect(mainHostSummaryView.get('clients').filterProperty('isInstallFailed', false).mapProperty('componentName')).to.eql(['A', 'D']);
+    });
+
   });
 
   describe('#areClientWithStaleConfigs', function() {