Repository: ambari Updated Branches: refs/heads/trunk 37eb2dca7 -> 359ea9000
AMBARI-19924 Ranger Admin HA Wizard should show all configuration changes on Review step. (ababiichuk) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/359ea900 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/359ea900 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/359ea900 Branch: refs/heads/trunk Commit: 359ea90008e91d3837c1051d60c9f4d5e37736de Parents: 37eb2dc Author: ababiichuk <[email protected]> Authored: Wed Feb 8 15:44:22 2017 +0200 Committer: ababiichuk <[email protected]> Committed: Wed Feb 8 17:57:45 2017 +0200 ---------------------------------------------------------------------- .../rangerAdmin/step3_controller.js | 47 ++++++++------ .../rangerAdmin/step4_controller.js | 68 ++------------------ .../rangerAdmin/wizard_controller.js | 45 ++++++++++++- ambari-web/app/messages.js | 3 +- .../app/routes/ra_high_availability_routes.js | 8 +-- .../rangerAdmin/step3_controller_test.js | 44 +++++-------- 6 files changed, 101 insertions(+), 114 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/359ea900/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/step3_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/step3_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/step3_controller.js index ea77d24..7e46810 100644 --- a/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/step3_controller.js +++ b/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/step3_controller.js @@ -30,12 +30,6 @@ App.RAHighAvailabilityWizardStep3Controller = Em.Controller.extend({ stepConfigs: [ App.ServiceConfig.create({ serviceName: 'MISC', - configCategories: [ - App.ServiceConfigCategory.create({ - name: 'RANGER', - displayName: App.format.role('RANGER', true) - }) - ], showConfig: true }) ], @@ -43,23 +37,40 @@ App.RAHighAvailabilityWizardStep3Controller = Em.Controller.extend({ loadStep: function () { var self = this; App.get('router.mainController.isLoading').call(App.get('router.clusterController'), 'isConfigsPropertiesLoaded').done(function () { - var property = App.configsCollection.getConfigByName('policymgr_external_url', 'admin-properties'), - stepConfig = self.get('stepConfigs.firstObject'); - stepConfig.set('configs', [ - App.ServiceConfigProperty.create(property, { - category: 'RANGER', - value: self.get('content.loadBalancerURL') - }) - ]); + var stepConfig = self.get('stepConfigs.firstObject'), + configs = [], + configCategories = [], + installedServices = App.Service.find().mapProperty('serviceName'); + self.get('wizardController.configs').forEach(function (config) { + var service = App.config.get('serviceByConfigTypeMap')[config.siteName]; + if (service) { + var serviceName = service.get('serviceName'), + serviceDisplayName = service.get('displayName'); + if (installedServices.contains(serviceName)) { + var property = App.configsCollection.getConfigByName(config.propertyName, config.siteName) || {}; + if (!configCategories.someProperty('name'), serviceName) { + configCategories.push(App.ServiceConfigCategory.create({ + name: serviceName, + displayName: serviceDisplayName + })); + } + configs.push(App.ServiceConfigProperty.create(property, { + category: serviceName, + value: self.get('content.loadBalancerURL'), + isEditable: false + })); + } + } + }); + stepConfig.setProperties({ + configs: configs, + configCategories: configCategories + }); self.setProperties({ isLoaded: true, selectedService: stepConfig }); }); - }, - - updateConfigProperty: function () { - this.set('content.policymgrExternalURL', this.get('selectedService.configs.firstObject.value')); } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/359ea900/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/step4_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/step4_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/step4_controller.js index c03c680..f4b4a59 100644 --- a/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/step4_controller.js +++ b/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/step4_controller.js @@ -52,18 +52,7 @@ App.RAHighAvailabilityWizardStep4Controller = App.HighAvailabilityProgressPageCo onLoadConfigsTags: function (data) { var urlParams = []; - urlParams.push('(type=admin-properties&tag=' + data.Clusters.desired_configs['admin-properties'].tag + ')'); - var siteNamesToFetch = [ - 'ranger-hdfs-security', - 'ranger-yarn-security', - 'ranger-hbase-security', - 'ranger-hive-security', - 'ranger-knox-security', - 'ranger-kafka-security', - 'ranger-kms-security', - 'ranger-storm-security', - 'ranger-atlas-security' - ]; + var siteNamesToFetch = this.get('wizardController.configs').mapProperty('siteName'); siteNamesToFetch.map(function(siteName) { if(siteName in data.Clusters.desired_configs) { urlParams.push('(type=' + siteName + '&tag=' + data.Clusters.desired_configs[siteName].tag + ')'); @@ -82,63 +71,18 @@ App.RAHighAvailabilityWizardStep4Controller = App.HighAvailabilityProgressPageCo onLoadConfigs: function (data) { var configs = []; - var self = this; - data.items.findProperty('type', 'admin-properties').properties['policymgr_external_url'] = this.get('content.policymgrExternalURL'); - configs.push({ - Clusters: { - desired_config: this.reconfigureSites(['admin-properties'], data, Em.I18n.t('admin.highAvailability.step4.save.configuration.note').format(App.format.role('RANGER_ADMIN', false))) - } - }); - var configsToChange = [ - { - siteName: 'ranger-hdfs-security', - property: 'ranger.plugin.hdfs.policy.rest.url' - }, - { - siteName: 'ranger-yarn-security', - property: 'ranger.plugin.yarn.policy.rest.url' - }, - { - siteName: 'ranger-hbase-security', - property: 'ranger.plugin.hbase.policy.rest.url' - }, - { - siteName: 'ranger-hive-security', - property: 'ranger.plugin.hive.policy.rest.url' - }, - { - siteName: 'ranger-knox-security', - property: 'ranger.plugin.knox.policy.rest.url' - }, - { - siteName: 'ranger-kafka-security', - property: 'ranger.plugin.kafka.policy.rest.url' - }, - { - siteName: 'ranger-kms-security', - property: 'ranger.plugin.kms.policy.rest.url' - }, - { - siteName: 'ranger-storm-security', - property: 'ranger.plugin.storm.policy.rest.url' - }, - { - siteName: 'ranger-atlas-security', - property: 'ranger.plugin.atlas.policy.rest.url' - } - ]; - configsToChange.map(function(item) { + this.get('wizardController.configs').map(function(item) { var config = data.items.findProperty('type', item.siteName); - if(config) { - config.properties[item.property] = self.get('content.loadBalancerURL'); + if (config) { + config.properties[item.propertyName] = this.get('content.loadBalancerURL'); configs.push({ Clusters: { - desired_config: self.reconfigureSites([item.siteName], data, Em.I18n.t('admin.highAvailability.step4.save.configuration.note').format(App.format.role('RANGER_ADMIN', false))) + desired_config: this.reconfigureSites([item.siteName], data, Em.I18n.t('admin.highAvailability.step4.save.configuration.note').format(App.format.role('RANGER_ADMIN', false))) } }); } - }); + }, this); App.ajax.send({ name: 'common.service.multiConfigurations', http://git-wip-us.apache.org/repos/asf/ambari/blob/359ea900/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/wizard_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/wizard_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/wizard_controller.js index fbb0692..3f4bf33 100644 --- a/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/wizard_controller.js +++ b/ambari-web/app/controllers/main/admin/highAvailability/rangerAdmin/wizard_controller.js @@ -36,12 +36,54 @@ App.RAHighAvailabilityWizardController = App.WizardController.extend({ controllerName: 'rAHighAvailabilityWizardController', cluster: null, loadBalancerURL: null, - policymgrExternalURL: null, hosts: null, services: null, masterComponentHosts: null }), + configs: [ + { + siteName: 'admin-properties', + propertyName: 'policymgr_external_url' + }, + { + siteName: 'ranger-hdfs-security', + propertyName: 'ranger.plugin.hdfs.policy.rest.url' + }, + { + siteName: 'ranger-yarn-security', + propertyName: 'ranger.plugin.yarn.policy.rest.url' + }, + { + siteName: 'ranger-hbase-security', + propertyName: 'ranger.plugin.hbase.policy.rest.url' + }, + { + siteName: 'ranger-hive-security', + propertyName: 'ranger.plugin.hive.policy.rest.url' + }, + { + siteName: 'ranger-knox-security', + propertyName: 'ranger.plugin.knox.policy.rest.url' + }, + { + siteName: 'ranger-kafka-security', + propertyName: 'ranger.plugin.kafka.policy.rest.url' + }, + { + siteName: 'ranger-kms-security', + propertyName: 'ranger.plugin.kms.policy.rest.url' + }, + { + siteName: 'ranger-storm-security', + propertyName: 'ranger.plugin.storm.policy.rest.url' + }, + { + siteName: 'ranger-atlas-security', + propertyName: 'ranger.plugin.atlas.policy.rest.url' + } + ], + init: function () { this._super(); this.clearStep(); @@ -101,7 +143,6 @@ App.RAHighAvailabilityWizardController = App.WizardController.extend({ this.loadTasksStatuses(); this.loadTasksRequestIds(); this.loadRequestIds(); - this.load('policymgrExternalURL'); } } ] http://git-wip-us.apache.org/repos/asf/ambari/blob/359ea900/ambari-web/app/messages.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js index cb88fda..81833f3 100644 --- a/ambari-web/app/messages.js +++ b/ambari-web/app/messages.js @@ -1605,7 +1605,8 @@ Em.I18n.translations = { 'admin.ra_highAvailability.wizard.step3.currentRA': 'Current Ranger Admin', 'admin.ra_highAvailability.wizard.step3.additionalRA': 'Additional Ranger Admin', 'admin.rm_highAvailability.wizard.step3.configs_changes': '<p><b>Review Configuration Changes.</b></p>' + - '<i>policymgr_external_url</i> in admin-properties.xml will be changed by the Wizard to enable Ranger Admin HA', + 'The following lists the configuration changes that will be made by the Wizard to enable Ranger Admin HA. ' + + 'This information is for <b> review only </b> and is not editable.', 'admin.ra_highAvailability.wizard.step4.header': 'Install, Start and Test', 'admin.ra_highAvailability.wizard.step4.task0.title': 'Stop All Services', 'admin.ra_highAvailability.wizard.step4.task1.title': 'Install Additional Ranger Admin', http://git-wip-us.apache.org/repos/asf/ambari/blob/359ea900/ambari-web/app/routes/ra_high_availability_routes.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/routes/ra_high_availability_routes.js b/ambari-web/app/routes/ra_high_availability_routes.js index dbf653b..5be6c44 100644 --- a/ambari-web/app/routes/ra_high_availability_routes.js +++ b/ambari-web/app/routes/ra_high_availability_routes.js @@ -130,15 +130,13 @@ module.exports = App.WizardRoute.extend({ controller.dataLoading().done(function () { controller.setCurrentStep('3'); controller.loadAllPriorSteps().done(function () { + var stepController = router.get('rAHighAvailabilityWizardStep3Controller'); + stepController.set('wizardController', controller); controller.connectOutlet('rAHighAvailabilityWizardStep3', controller.get('content')); }); }); }, next: function (router) { - var controller = router.get('rAHighAvailabilityWizardController'), - stepController = router.get('rAHighAvailabilityWizardStep3Controller'); - stepController.updateConfigProperty(); - controller.save('policymgrExternalURL'); router.transitionTo('step4'); }, back: function (router) { @@ -154,6 +152,8 @@ module.exports = App.WizardRoute.extend({ controller.setCurrentStep('4'); controller.setLowerStepsDisable(4); controller.loadAllPriorSteps().done(function () { + var stepController = router.get('rAHighAvailabilityWizardStep4Controller'); + stepController.set('wizardController', controller); controller.connectOutlet('rAHighAvailabilityWizardStep4', controller.get('content')); }); }); http://git-wip-us.apache.org/repos/asf/ambari/blob/359ea900/ambari-web/test/controllers/main/admin/highAvailability/rangerAdmin/step3_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/highAvailability/rangerAdmin/step3_controller_test.js b/ambari-web/test/controllers/main/admin/highAvailability/rangerAdmin/step3_controller_test.js index 649bcbc..4dc3539 100644 --- a/ambari-web/test/controllers/main/admin/highAvailability/rangerAdmin/step3_controller_test.js +++ b/ambari-web/test/controllers/main/admin/highAvailability/rangerAdmin/step3_controller_test.js @@ -19,6 +19,7 @@ var App = require('app'); require('controllers/main/admin/highAvailability/rangerAdmin/step3_controller'); +require('controllers/main/admin/highAvailability/rangerAdmin/wizard_controller'); require('controllers/main'); describe('App.RAHighAvailabilityWizardStep3Controller', function () { @@ -57,16 +58,27 @@ describe('App.RAHighAvailabilityWizardStep3Controller', function () { result: 'http://localhost:1111', message: 'property value' } - ]; + ], + service = Em.Object.create({ + serviceName: 'RANGER', + displayName: 'Ranger' + }); beforeEach(function () { dfd = $.Deferred(); sinon.stub(App.get('router.mainController'), 'isLoading').returns(dfd); + sinon.stub(App.Service, 'find').returns([service]); + sinon.stub(App.config, 'get').withArgs('serviceByConfigTypeMap').returns({ + 'admin-properties': service + }); sinon.stub(App.configsCollection, 'getConfigByName').returns({ name: 'policymgr_external_url' }); - controller.set('content', { - loadBalancerURL: 'http://localhost:1111' + controller.setProperties({ + wizardController: App.get('router.rAHighAvailabilityWizardController'), + content: { + loadBalancerURL: 'http://localhost:1111' + } }); controller.loadStep(); dfd.resolve(); @@ -74,6 +86,8 @@ describe('App.RAHighAvailabilityWizardStep3Controller', function () { afterEach(function () { App.get('router.mainController.isLoading').restore(); + App.Service.find.restore(); + App.config.get.restore(); App.configsCollection.getConfigByName.restore(); }); @@ -87,28 +101,4 @@ describe('App.RAHighAvailabilityWizardStep3Controller', function () { }); - describe('#updateConfigProperty', function () { - - beforeEach(function () { - controller.setProperties({ - content: { - policymgrExternalURL: 'http://localhost:1111' - }, - selectedService: { - configs: [ - { - value: 'http://localhost:2222' - } - ] - } - }); - controller.updateConfigProperty(); - }); - - it('should update content.policymgrExternalURL', function () { - expect(controller.get('content.policymgrExternalURL')).to.equal('http://localhost:2222'); - }); - - }); - }); \ No newline at end of file
