Repository: ambari Updated Branches: refs/heads/trunk 1910dd488 -> c7640d0db
AMBARI-4916 'Start All' button is enabled if all services are started. (ababiichuk) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c7640d0d Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c7640d0d Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c7640d0d Branch: refs/heads/trunk Commit: c7640d0db54ebccd11edc1d14ce1495f6258eda5 Parents: 1910dd4 Author: aBabiichuk <[email protected]> Authored: Mon Mar 3 16:15:49 2014 +0200 Committer: aBabiichuk <[email protected]> Committed: Mon Mar 3 16:16:01 2014 +0200 ---------------------------------------------------------------------- ambari-web/app/assets/test/tests.js | 1 + ambari-web/app/controllers/main/service.js | 12 +- .../test/controllers/main/service_test.js | 124 +++++++++++++++++++ 3 files changed, 128 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/c7640d0d/ambari-web/app/assets/test/tests.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js index bd6fcdb..8ae95d6 100644 --- a/ambari-web/app/assets/test/tests.js +++ b/ambari-web/app/assets/test/tests.js @@ -42,6 +42,7 @@ require('test/controllers/main/service/reassign_controller_test'); require('test/controllers/main/dashboard_test'); require('test/controllers/main/host_test'); require('test/controllers/main/item_test'); +require('test/controllers/main/service_test'); require('test/controllers/wizard/stack_upgrade/step3_controller_test'); require('test/controllers/installer_test'); require('test/controllers/wizard_test'); http://git-wip-us.apache.org/repos/asf/ambari/blob/c7640d0d/ambari-web/app/controllers/main/service.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/service.js b/ambari-web/app/controllers/main/service.js index 030c045..67bccf6 100644 --- a/ambari-web/app/controllers/main/service.js +++ b/ambari-web/app/controllers/main/service.js @@ -75,21 +75,15 @@ App.MainServiceController = Em.ArrayController.extend({ if(this.get('isStartStopAllClicked') == true) { return true; } - var stoppedServiceLength = this.get('content').filterProperty('healthStatus','red').length; + var stoppedServiceLength = this.get('content').filterProperty('healthStatus','red').filterProperty('isClientsOnly', false).length; return (stoppedServiceLength === 0); // all green status }.property('isStartStopAllClicked', '[email protected]'), isStopAllDisabled: function(){ if(this.get('isStartStopAllClicked') == true) { return true; } - var startedService = this.get('content').filterProperty('healthStatus','green'); - var flag = true; - startedService.forEach(function(item){ - if(!['HCATALOG', 'PIG', 'SQOOP'].contains(item.get('serviceName'))){ - flag = false; - } - }); - return flag; + var startedServiceLength = this.get('content').filterProperty('healthStatus','green').length; + return (startedServiceLength === 0); }.property('isStartStopAllClicked', '[email protected]'), isStartStopAllClicked: function(){ return (App.router.get('backgroundOperationsController').get('allOperationsCount') !== 0); http://git-wip-us.apache.org/repos/asf/ambari/blob/c7640d0d/ambari-web/test/controllers/main/service_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/service_test.js b/ambari-web/test/controllers/main/service_test.js new file mode 100644 index 0000000..d530c15 --- /dev/null +++ b/ambari-web/test/controllers/main/service_test.js @@ -0,0 +1,124 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var App = require('app'); +require('controllers/main/service'); + +var mainServiceController; + +describe('App.MainServiceController', function () { + + var tests = Em.A([ + { + isStartStopAllClicked: false, + content: Em.A([ + Em.Object.create({ + healthStatus: 'green', + serviceName: 'HIVE', + isClientsOnly: false + }), + Em.Object.create({ + healthStatus: 'green', + serviceName: 'HDFS', + isClientsOnly: false + }), + Em.Object.create({ + healthStatus: 'red', + serviceName: 'TEZ', + isClientsOnly: true + }) + ]), + eStart: true, + eStop: false, + mStart: 'mainServiceController StartAll is Disabled 1', + mStop: 'mainServiceController StopAll is Enabled 1' + }, + { + isStartStopAllClicked: true, + content: Em.A([ + Em.Object.create({ + healthStatus: 'red', + serviceName: 'HIVE', + isClientsOnly: false + }), + Em.Object.create({ + healthStatus: 'red', + serviceName: 'HDFS', + isClientsOnly: false + }), + Em.Object.create({ + healthStatus: 'red', + serviceName: 'TEZ', + isClientsOnly: true + }) + ]), + eStart: true, + eStop: true, + mStart: 'mainServiceController StartAll is Disabled 2', + mStop: 'mainServiceController StopAll is Disabled 2' + }, + { + isStartStopAllClicked: false, + content: Em.A([ + Em.Object.create({ + healthStatus: 'green', + serviceName: 'HIVE', + isClientsOnly: false + }), + Em.Object.create({ + healthStatus: 'red', + serviceName: 'HDFS', + isClientsOnly: false + }), + Em.Object.create({ + healthStatus: 'red', + serviceName: 'TEZ', + isClientsOnly: true + }) + ]), + eStart: false, + eStop: false, + mStart: 'mainServiceController StartAll is Enabled 3', + mStop: 'mainServiceController StopAll is Enabled 3' + } + + ]); + describe('#isStartAllDisabled', function () { + tests.forEach(function (test) { + it(test.mStart, function () { + mainServiceController = App.MainServiceController.create({ + content: test.content, + isStartStopAllClicked: test.isStartStopAllClicked + }); + expect(mainServiceController.get('isStartAllDisabled')).to.equals(test.eStart); + }); + }); + }); + + describe('#isStopAllDisabled', function () { + tests.forEach(function (test) { + it(test.mStop, function () { + mainServiceController = App.MainServiceController.create({ + content: test.content, + isStartStopAllClicked: test.isStartStopAllClicked + }); + expect(mainServiceController.get('isStopAllDisabled')).to.equals(test.eStop); + }); + }); + }); +});
