Repository: ambari Updated Branches: refs/heads/trunk c507a1017 -> 7da19ffd8
AMBARI-8412. Unable to add hosts through UI (onechiporenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7da19ffd Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7da19ffd Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7da19ffd Branch: refs/heads/trunk Commit: 7da19ffd8594d40911738d9848d93f7ba13bfb61 Parents: c507a10 Author: Oleg Nechiporenko <onechipore...@apache.org> Authored: Fri Nov 21 17:42:27 2014 +0200 Committer: Oleg Nechiporenko <onechipore...@apache.org> Committed: Fri Nov 21 17:42:27 2014 +0200 ---------------------------------------------------------------------- ambari-web/app/assets/test/tests.js | 1 + .../main/host/addHost/step4_controller.js | 8 ++++- ambari-web/app/mappers/stack_service_mapper.js | 7 ++-- ambari-web/app/routes/add_host_routes.js | 14 ++++---- .../main/host/addHost/step4_controller_test.js | 36 ++++++++++++++++++++ 5 files changed, 56 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/7da19ffd/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 c831716..0619981 100644 --- a/ambari-web/app/assets/test/tests.js +++ b/ambari-web/app/assets/test/tests.js @@ -79,6 +79,7 @@ var files = ['test/init_model_test', 'test/controllers/main/host/add_controller_test', 'test/controllers/main/host/configs_service_test', 'test/controllers/main/host/details_test', + 'test/controllers/main/host/addHost/step4_controller_test', 'test/controllers/main/service/add_controller_test', 'test/controllers/main/service/manage_config_groups_controller_test', 'test/controllers/main/service/reassign_controller_test', http://git-wip-us.apache.org/repos/asf/ambari/blob/7da19ffd/ambari-web/app/controllers/main/host/addHost/step4_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/host/addHost/step4_controller.js b/ambari-web/app/controllers/main/host/addHost/step4_controller.js index 9744458..7025a3a 100644 --- a/ambari-web/app/controllers/main/host/addHost/step4_controller.js +++ b/ambari-web/app/controllers/main/host/addHost/step4_controller.js @@ -27,7 +27,8 @@ App.AddHostStep4Controller= Em.Controller.extend({ App.ajax.send({ name: 'config_groups.all_fields', sender: this, - success: 'successLoadingConfigGroup' + success: 'successLoadingConfigGroup', + error: 'errorLoadingConfigGroup' }); }, @@ -36,6 +37,11 @@ App.AddHostStep4Controller= Em.Controller.extend({ this.set('isConfigGroupLoaded', true); }, + errorLoadingConfigGroup: function(data) { + App.router.get('addHostController.content').set('configGroups', []); + this.set('isConfigGroupLoaded', true); + }, + configGroupsLoading: function () { var df = $.Deferred(); if (this.get('isConfigGroupLoaded')) { http://git-wip-us.apache.org/repos/asf/ambari/blob/7da19ffd/ambari-web/app/mappers/stack_service_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/stack_service_mapper.js b/ambari-web/app/mappers/stack_service_mapper.js index eab2576..43cfd86 100644 --- a/ambari-web/app/mappers/stack_service_mapper.js +++ b/ambari-web/app/mappers/stack_service_mapper.js @@ -76,6 +76,7 @@ App.stackServiceMapper = App.QuickDataMapper.create({ var model = this.get('model'); var result = []; var stackServiceComponents = []; + var nonInstallableServices = ['KERBEROS']; this.rearrangeServicesForDisplayOrder(json.items, App.StackService.displayOrder); json.items.forEach(function (item) { var stackService = item.StackServices; @@ -92,8 +93,10 @@ App.stackServiceMapper = App.QuickDataMapper.create({ stackService.stack_id = stackService.stack_name + '-' + stackService.stack_version; stackService.service_components = serviceComponents; // @todo: replace with server response value after API implementation - stackService.is_installable = !['KERBEROS'].contains(stackService.service_name); - stackService.is_selected = stackService.is_installable; + if (nonInstallableServices.contains(stackService.service_name)) { + stackService.is_installable = false; + stackService.is_selected = false; + } result.push(this.parseIt(stackService, this.get('config'))); }, this); App.store.loadMany(this.get('component_model'), stackServiceComponents); http://git-wip-us.apache.org/repos/asf/ambari/blob/7da19ffd/ambari-web/app/routes/add_host_routes.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/routes/add_host_routes.js b/ambari-web/app/routes/add_host_routes.js index a91b618..2abbff6 100644 --- a/ambari-web/app/routes/add_host_routes.js +++ b/ambari-web/app/routes/add_host_routes.js @@ -210,19 +210,19 @@ module.exports = App.WizardRoute.extend({ var controller = router.get('addHostController'); var addHostStep4Controller = router.get('addHostStep4Controller'); controller.setCurrentStep('4'); - addHostStep4Controller.loadConfigGroups(); - addHostStep4Controller.set('isConfigGroupLoaded', false); - addHostStep4Controller.configGroupsLoading().done(function () { - controller.dataLoading().done(function () { + controller.dataLoading().done(function () { + addHostStep4Controller.loadConfigGroups(); + addHostStep4Controller.set('isConfigGroupLoaded', false); + addHostStep4Controller.configGroupsLoading().done(function () { controller.loadAllPriorSteps(); controller.loadServiceConfigGroups(); addHostStep4Controller.set('wizardController', controller); controller.connectOutlet('addHostStep4', controller.get('content')); - }) - }) + }); + }); }, back: function(router){ - router.transitionTo('step3'); + router.transitionTo('step3'); }, next: function (router) { var addHostController = router.get('addHostController'); http://git-wip-us.apache.org/repos/asf/ambari/blob/7da19ffd/ambari-web/test/controllers/main/host/addHost/step4_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/host/addHost/step4_controller_test.js b/ambari-web/test/controllers/main/host/addHost/step4_controller_test.js new file mode 100644 index 0000000..7d9ffc7 --- /dev/null +++ b/ambari-web/test/controllers/main/host/addHost/step4_controller_test.js @@ -0,0 +1,36 @@ +/** + * 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'); + +describe('App.AddHostStep4Controller', function() { + var controller; + + describe('#errorLoadingConfigGroup()', function() { + before(function() { + controller = App.AddHostStep4Controller.create({}); + controller.errorLoadingConfigGroup(); + }); + it('should set config groups on failed request', function() { + expect(App.router.get('addHostController.content.configGroups')).to.eql([]); + }); + it('should set `isConfigGroupLoaded` to true', function() { + expect(controller.get('isConfigGroupLoaded')).to.true; + }); + }); +});