Browse Source

AMBARI-4779. Add services wizard throw JS exception. (onechiporenko)

Oleg Nechiporenko 11 years ago
parent
commit
0f9a5bf535

+ 5 - 1
ambari-web/app/controllers/wizard/step7_controller.js

@@ -75,7 +75,11 @@ App.WizardStep7Controller = Em.Controller.extend({
   }.property('content.services').cacheable(),
 
   installedServiceNames: function () {
-    return this.get('content.services').filterProperty('isInstalled').mapProperty('serviceName');
+    var serviceNames = this.get('content.services').filterProperty('isInstalled').mapProperty('serviceName');
+    if(this.get('content.controllerName') !== 'installerController') {
+      return serviceNames.without('SQOOP');
+    }
+    return serviceNames;
   }.property('content.services').cacheable(),
 
   masterComponentHosts: function () {

+ 93 - 2
ambari-web/test/installer/step7_test.js

@@ -17,9 +17,100 @@
  */
 
 var App = require('app');
+var numberUtils = require('utils/number_utils');
 require('controllers/wizard/step7_controller');
 
-/*
+var installerStep7Controller;
+
 describe('App.InstallerStep7Controller', function () {
 
-})*/
+  describe('#installedServiceNames', function() {
+
+    var tests = Em.A([
+      {
+        content: Em.Object.create({
+          controllerName: 'installerController',
+          services: Em.A([
+            Em.Object.create({
+              isInstalled: true,
+              serviceName: 'SQOOP'
+            }),
+            Em.Object.create({
+              isInstalled: true,
+              serviceName: 'HDFS'
+            })
+          ])
+        }),
+        e: ['SQOOP', 'HDFS'],
+        m: 'installerController with SQOOP'
+      },
+      {
+        content: Em.Object.create({
+          controllerName: 'installerController',
+          services: Em.A([
+            Em.Object.create({
+              isInstalled: true,
+              serviceName: 'HIVE'
+            }),
+            Em.Object.create({
+              isInstalled: true,
+              serviceName: 'HDFS'
+            })
+          ])
+        }),
+        e: ['HIVE', 'HDFS'],
+        m: 'installerController without SQOOP'
+      },
+      {
+        content: Em.Object.create({
+          controllerName: 'addServiceController',
+          services: Em.A([
+            Em.Object.create({
+              isInstalled: true,
+              serviceName: 'HIVE'
+            }),
+            Em.Object.create({
+              isInstalled: true,
+              serviceName: 'HDFS'
+            })
+          ])
+        }),
+        e: ['HIVE', 'HDFS'],
+        m: 'addServiceController without SQOOP'
+      },
+      {
+        content: Em.Object.create({
+          controllerName: 'addServiceController',
+          services: Em.A([
+            Em.Object.create({
+              isInstalled: true,
+              serviceName: 'SQOOP'
+            }),
+            Em.Object.create({
+              isInstalled: true,
+              serviceName: 'HIVE'
+            }),
+            Em.Object.create({
+              isInstalled: true,
+              serviceName: 'HDFS'
+            })
+          ])
+        }),
+        e: ['HIVE', 'HDFS'],
+        m: 'addServiceController with SQOOP'
+      }
+    ]);
+
+    tests.forEach(function(test) {
+      it(test.m, function() {
+        installerStep7Controller = App.WizardStep7Controller.create({
+          content: test.content
+        });
+        expect(installerStep7Controller.get('installedServiceNames')).to.include.members(test.e);
+        expect(test.e).to.include.members(installerStep7Controller.get('installedServiceNames'));
+      });
+    });
+
+  });
+
+});