This is an automated email from the ASF dual-hosted git repository. ababiichuk pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push: new e6f1d35 AMBARI-24525 Accumulo does not startup in Federated Cluster. (ababiichuk) e6f1d35 is described below commit e6f1d35bf630ca3f7f5f479978baf3430a10089d Author: aBabiichuk <ababiic...@hortonworks.com> AuthorDate: Fri Aug 31 13:31:44 2018 +0300 AMBARI-24525 Accumulo does not startup in Federated Cluster. (ababiichuk) --- .../main/admin/federation/step3_controller.js | 55 +++++++++++++++++++--- .../main/admin/federation/step4_controller.js | 10 +++- .../data/configs/wizards/federation_properties.js | 3 +- .../main/admin/federation/step3_controller_test.js | 27 ++++++++--- 4 files changed, 80 insertions(+), 15 deletions(-) diff --git a/ambari-web/app/controllers/main/admin/federation/step3_controller.js b/ambari-web/app/controllers/main/admin/federation/step3_controller.js index 50dd211..1f9890b 100644 --- a/ambari-web/app/controllers/main/admin/federation/step3_controller.js +++ b/ambari-web/app/controllers/main/admin/federation/step3_controller.js @@ -53,27 +53,29 @@ App.NameNodeFederationWizardStep3Controller = Em.Controller.extend(App.Blueprint return App.ajax.send({ name: 'config.tags', sender: this, - success: 'onLoadConfigsTags', - error: 'onTaskError' + success: 'onLoadConfigsTags' }); }, onLoadConfigsTags: function (data) { + var servicesModel = App.Service.find(); var urlParams = '(type=hdfs-site&tag=' + data.Clusters.desired_configs['hdfs-site'].tag + ')'; - if (App.Service.find().someProperty('serviceName', 'RANGER')) { + if (servicesModel.someProperty('serviceName', 'RANGER')) { urlParams += '|(type=core-site&tag=' + data.Clusters.desired_configs['core-site'].tag + ')' + '|(type=ranger-tagsync-site&tag=' + data.Clusters.desired_configs['ranger-tagsync-site'].tag + ')' + '|(type=ranger-hdfs-security&tag=' + data.Clusters.desired_configs['ranger-hdfs-security'].tag + ')' } + if (servicesModel.someProperty('serviceName', 'ACCUMULO')) { + urlParams += '|(type=accumulo-site&tag=' + data.Clusters.desired_configs['accumulo-site'].tag + ')'; + } App.ajax.send({ name: 'admin.get.all_configurations', sender: this, data: { urlParams: urlParams }, - success: 'onLoadConfigs', - error: 'onTaskError' + success: 'onLoadConfigs' }); }, @@ -131,6 +133,7 @@ App.NameNodeFederationWizardStep3Controller = Em.Controller.extend(App.Blueprint }, tweakServiceConfigs: function (configs) { + var servicesModel = App.Service.find(); var dependencies = this.prepareDependencies(); var nameServices = App.HDFSService.find().objectAt(0).get('masterComponentGroups').mapProperty('name'); nameServices.push(dependencies.newNameservice); @@ -147,7 +150,7 @@ App.NameNodeFederationWizardStep3Controller = Em.Controller.extend(App.Blueprint ]); } - if (App.Service.find().someProperty('serviceName', 'RANGER')) { + if (servicesModel.someProperty('serviceName', 'RANGER')) { var hdfsRangerConfigs = this.get('serverConfigData').items.findProperty('type', 'ranger-hdfs-security').properties; var reponamePrefix = hdfsRangerConfigs['ranger.plugin.hdfs.service.name'] === '{{repo_name}}' ? dependencies.clustername + '_hadoop_' : hdfsRangerConfigs['ranger.plugin.hdfs.service.name'] + '_'; var coreSiteConfigs = this.get('serverConfigData').items.findProperty('type', 'core-site').properties; @@ -159,6 +162,46 @@ App.NameNodeFederationWizardStep3Controller = Em.Controller.extend(App.Blueprint }, this); } + if (servicesModel.someProperty('serviceName', 'ACCUMULO')) { + var hdfsNameSpacesModel = App.HDFSService.find().objectAt(0).get('masterComponentGroups'); + var newNameSpace = this.get('content.nameServiceId'); + var volumesValue = nameServices.map(function (ns) { + return 'hdfs://' + ns + '/apps/accumulo/data'; + }).join(); + var replacementsValue = nameServices.map(function (ns) { + var hostName; + if (ns === newNameSpace) { + var hostNames = this.get('content.masterComponentHosts').filter(function (hc) { + return hc.component === 'NAMENODE' && !hc.isInstalled; + }).mapProperty('hostName'); + hostName = hostNames[0]; + } else { + var nameSpaceObject = hdfsNameSpacesModel.findProperty('name', ns); + hostName = nameSpaceObject && nameSpaceObject.hosts[0]; + } + return 'hdfs://' + hostName + ':8020/apps/accumulo/data hdfs://' + ns + '/apps/accumulo/data'; + }, this).join(); + configs.push({ + name: 'instance.volumes', + displayName: 'instance.volumes', + isReconfigurable: false, + value: volumesValue, + recommendedValue: volumesValue, + category: 'ACCUMULO', + filename: 'accumulo-site', + serviceName: 'MISC' + }, { + name: 'instance.volumes.replacements', + displayName: 'instance.volumes.replacements', + isReconfigurable: false, + value: replacementsValue, + recommendedValue: replacementsValue, + category: 'ACCUMULO', + filename: 'accumulo-site', + serviceName: 'MISC' + }); + } + configs.forEach(function (config) { if (!configsToRemove.contains(config.name)) { config.isOverridable = false; diff --git a/ambari-web/app/controllers/main/admin/federation/step4_controller.js b/ambari-web/app/controllers/main/admin/federation/step4_controller.js index bf340f0..605c22f 100644 --- a/ambari-web/app/controllers/main/admin/federation/step4_controller.js +++ b/ambari-web/app/controllers/main/admin/federation/step4_controller.js @@ -50,6 +50,7 @@ App.NameNodeFederationWizardStep4Controller = App.HighAvailabilityProgressPageCo }, reconfigureServices: function () { + var servicesModel = App.Service.find(); var configs = []; var data = this.get('content.serviceConfigProperties'); var note = Em.I18n.t('admin.nameNodeFederation.wizard,step4.save.configuration.note'); @@ -58,13 +59,20 @@ App.NameNodeFederationWizardStep4Controller = App.HighAvailabilityProgressPageCo desired_config: this.reconfigureSites(['hdfs-site'], data, note) } }); - if (App.Service.find().someProperty('serviceName', 'RANGER')) { + if (servicesModel.someProperty('serviceName', 'RANGER')) { configs.push({ Clusters: { desired_config: this.reconfigureSites(['ranger-tagsync-site'], data, note) } }); } + if (servicesModel.someProperty('serviceName', 'ACCUMULO')) { + configs.push({ + Clusters: { + desired_config: this.reconfigureSites(['accumulo-site'], data, note) + } + }); + } return App.ajax.send({ name: 'common.service.multiConfigurations', sender: this, diff --git a/ambari-web/app/data/configs/wizards/federation_properties.js b/ambari-web/app/data/configs/wizards/federation_properties.js index a0e632b..66b97b7 100644 --- a/ambari-web/app/data/configs/wizards/federation_properties.js +++ b/ambari-web/app/data/configs/wizards/federation_properties.js @@ -23,7 +23,8 @@ module.exports = displayName: 'MISC', configCategories: [ App.ServiceConfigCategory.create({ name: 'HDFS', displayName: 'HDFS'}), - App.ServiceConfigCategory.create({ name: 'RANGER', displayName: 'Ranger'}) + App.ServiceConfigCategory.create({ name: 'RANGER', displayName: 'Ranger'}), + App.ServiceConfigCategory.create({ name: 'ACCUMULO', displayName: 'Accumulo'}) ], sites: ['core-site'], configs: [ diff --git a/ambari-web/test/controllers/main/admin/federation/step3_controller_test.js b/ambari-web/test/controllers/main/admin/federation/step3_controller_test.js index 3feb49f..72b05dd 100644 --- a/ambari-web/test/controllers/main/admin/federation/step3_controller_test.js +++ b/ambari-web/test/controllers/main/admin/federation/step3_controller_test.js @@ -70,8 +70,7 @@ describe('App.NameNodeFederationWizardStep3Controller', function () { expect(App.ajax.send.calledWith({ name: 'config.tags', sender: controller, - success: 'onLoadConfigsTags', - error: 'onTaskError' + success: 'onLoadConfigsTags' })).to.be.true; }); }); @@ -91,6 +90,9 @@ describe('App.NameNodeFederationWizardStep3Controller', function () { }, 'ranger-hdfs-security': { tag: 'test4' + }, + 'accumulo-site': { + tag: 'test5' } } } @@ -98,7 +100,7 @@ describe('App.NameNodeFederationWizardStep3Controller', function () { afterEach(function(){ App.Service.find.restore(); - }) + }); it('should build short url params if no Ranger present', function () { sinon.stub(App.Service, 'find').returns([]); @@ -109,8 +111,7 @@ describe('App.NameNodeFederationWizardStep3Controller', function () { data: { urlParams: '(type=hdfs-site&tag=test)' }, - success: 'onLoadConfigs', - error: 'onTaskError' + success: 'onLoadConfigs' })); }); @@ -123,8 +124,20 @@ describe('App.NameNodeFederationWizardStep3Controller', function () { data: { urlParams: '(type=hdfs-site&tag=test)|(type=core-site&tag=test1)|(type=ranger-tagsync-site&tag=test2)|(type=ranger-hdfs-security&tag=test3)' }, - success: 'onLoadConfigs', - error: 'onTaskError' + success: 'onLoadConfigs' + })); + }); + + it('should build long url params if Accumulo is present', function () { + sinon.stub(App.Service, 'find').returns([{serviceName: 'ACCUMULO'}]); + controller.onLoadConfigsTags(data); + expect(App.ajax.send.calledWith({ + name: 'admin.get.all_configurations', + sender: controller, + data: { + urlParams: '(type=hdfs-site&tag=test)|(type=accumulo-site&tag=test5)' + }, + success: 'onLoadConfigs' })); }); });