Repository: ambari Updated Branches: refs/heads/trunk fae1eb7f3 -> 7d0cd6536
AMBARI-10096. Kerberos: expose AD config properties in service > configs. (jaimin) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7d0cd653 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7d0cd653 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7d0cd653 Branch: refs/heads/trunk Commit: 7d0cd6536aa822f6b6b900bc92b3d49ce358a06a Parents: fae1eb7 Author: Jaimin Jetly <[email protected]> Authored: Mon Mar 16 17:04:39 2015 -0700 Committer: Jaimin Jetly <[email protected]> Committed: Mon Mar 16 17:04:39 2015 -0700 ---------------------------------------------------------------------- ambari-web/app/data/HDP2/site_properties.js | 1 + ambari-web/app/utils/config.js | 74 ++++++++++++++---------- 2 files changed, 43 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/7d0cd653/ambari-web/app/data/HDP2/site_properties.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2/site_properties.js b/ambari-web/app/data/HDP2/site_properties.js index a848ade..3b7c198 100644 --- a/ambari-web/app/data/HDP2/site_properties.js +++ b/ambari-web/app/data/HDP2/site_properties.js @@ -1899,6 +1899,7 @@ var hdp2properties = [ "isOverridable": false, "isVisible": true, "isRequiredByAgent": true, + "isReconfigurable": false, "serviceName": "KERBEROS", "filename": "kerberos-env.xml", "category": "KDC", http://git-wip-us.apache.org/repos/asf/ambari/blob/7d0cd653/ambari-web/app/utils/config.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js index bf0eb81..1e96bb6 100644 --- a/ambari-web/app/utils/config.js +++ b/ambari-web/app/utils/config.js @@ -87,7 +87,7 @@ App.config = Em.Object.create({ var nonServiceTab = require('data/service_configs'); var miscService = nonServiceTab.findProperty('serviceName', 'MISC'); var tagTypes = {}; - servicesWithConfigTypes.mapProperty('configTypes').forEach(function(configTypes) { + servicesWithConfigTypes.mapProperty('configTypes').forEach(function (configTypes) { for (var fileName in configTypes) { if (fileName.endsWith('-env') && !miscService.get('configTypes')[fileName]) { tagTypes[fileName] = configTypes[fileName]; @@ -124,10 +124,10 @@ App.config = Em.Object.create({ preDefinedCustomConfigs: require('data/HDP2/custom_configs'), - preDefinedConfigFile: function(file) { + preDefinedConfigFile: function (file) { try { return require('data/{0}/{1}'.format(App.get('currentStackName'), file)); - } catch(err) { + } catch (err) { // the file doesn't exist, which might be expected. } }, @@ -353,6 +353,7 @@ App.config = Em.Object.create({ } } + this.tweakConfigVisibility(serviceConfigObj, properties); if (!this.getBySitename(serviceConfigObj.get('filename')).someProperty('name', index)) { if (configsPropertyDef) { if (configsPropertyDef.isRequiredByAgent === false) { @@ -384,7 +385,14 @@ App.config = Em.Object.create({ } }, - setValueByDisplayType: function(serviceConfigObj) { + tweakConfigVisibility: function (config, allSiteConfigs) { + var kdcType = allSiteConfigs['kdc_type']; + if (kdcType === 'active-directory' && (config.name === 'container_dn' || config.name === 'ldap_url')) { + config.isVisible = true; + } + }, + + setValueByDisplayType: function (serviceConfigObj) { if (serviceConfigObj.get('displayType') == 'directories' && (serviceConfigObj.get('category') == 'DataNode' || serviceConfigObj.get('category') == 'NameNode')) { var dirs = serviceConfigObj.get('value').split(',').sort(); serviceConfigObj.set('value', dirs.join(',')); @@ -583,7 +591,7 @@ App.config = Em.Object.create({ var definedConfigs = (serviceName) ? definedService.get('configs') : []; if (definedConfigs.length) { - advancedConfigs = advancedConfigs.filter(function(property) { + advancedConfigs = advancedConfigs.filter(function (property) { return !(definedConfigs.someProperty('name', property.name) && !serviceConfigs.someProperty('name', property.name)); }, this); } @@ -750,8 +758,8 @@ App.config = Em.Object.create({ * @param {Object[]} configs - config properties to change * @param {App.ServiceConfigProperty[]} descriptor - parsed kerberos descriptor */ - addKerberosDescriptorConfigs: function(configs, descriptor) { - descriptor.forEach(function(item) { + addKerberosDescriptorConfigs: function (configs, descriptor) { + descriptor.forEach(function (item) { var property = configs.findProperty('name', item.get('name')); if (property) { Em.set(property, 'isSecureConfig', true); @@ -896,7 +904,7 @@ App.config = Em.Object.create({ * @param {Function} callback * @returns {jqXHR} */ - loadAdvancedConfigPartial: function(serviceNames, opt, callback) { + loadAdvancedConfigPartial: function (serviceNames, opt, callback) { var data = { serviceList: serviceNames.join(','), stackVersionUrl: App.get('stackVersionURL'), @@ -930,11 +938,13 @@ App.config = Em.Object.create({ params.callback([], request); }, - loadAdvancedConfigPartialSuccess: function(data, opt, params, request) { + loadAdvancedConfigPartialSuccess: function (data, opt, params, request) { var properties = []; - if(data.items.length && data.items.mapProperty('configurations').length) { - var configurations = data.items.mapProperty('configurations').reduce(function(p,c) { return p.concat(c); }); - configurations.forEach(function(item) { + if (data.items.length && data.items.mapProperty('configurations').length) { + var configurations = data.items.mapProperty('configurations').reduce(function (p, c) { + return p.concat(c); + }); + configurations.forEach(function (item) { var property = this.createAdvancedPropertyObject(item.StackConfigurations); if (property) properties.push(property); }, this); @@ -948,9 +958,9 @@ App.config = Em.Object.create({ * * @method createAdvancedPropertyObject * @param {Object} item - * @returns {Object|Boolean} + * @returns {Object|Boolean} */ - createAdvancedPropertyObject: function(item) { + createAdvancedPropertyObject: function (item) { var serviceName = item.service_name; var fileName = item.type; /** @@ -973,7 +983,7 @@ App.config = Em.Object.create({ return $.extend(property, this.advancedConfigIdentityData(item)); }, - + /** * Add additional properties to advanced property config object. * Additional logic based on `property_type`. @@ -982,7 +992,7 @@ App.config = Em.Object.create({ * @param {Object} config * @return {Object} */ - advancedConfigIdentityData: function(config) { + advancedConfigIdentityData: function (config) { var propertyData = {}; var proxyUserGroupServices = ['HIVE', 'OOZIE', 'FALCON']; var nameToDisplayNameMap = { @@ -1193,7 +1203,7 @@ App.config = Em.Object.create({ globalValue = allConfigs.findProperty('name', config.foreignKey[index]).value; } config._name = config.name.replace(_fkName, globalValue); - }else{ + } else { config.noMatchSoSkipThisConfig = true; } }, this); @@ -1384,7 +1394,7 @@ App.config = Em.Object.create({ case 'directories': case 'directory': case 'datanodedirs': - rez = value.replace(/,/g,' ').trim().split(/\s+/g).join(','); + rez = value.replace(/,/g, ' ').trim().split(/\s+/g).join(','); break; case 'host': rez = value.trim(); @@ -1442,10 +1452,10 @@ App.config = Em.Object.create({ persistWizardStep7ConfigGroups: function () { var installerController = App.router.get('installerController'); var step7Controller = App.router.get('wizardStep7Controller'); - installerController.saveServiceConfigGroups(step7Controller, step7Controller.get('content.controllerName') == 'addServiceController'); - App.clusterStatus.setClusterStatus({ - localdb: App.db.data - }); + installerController.saveServiceConfigGroups(step7Controller, step7Controller.get('content.controllerName') == 'addServiceController'); + App.clusterStatus.setClusterStatus({ + localdb: App.db.data + }); }, /** * exclude configs that depends on services which are uninstalled @@ -1477,7 +1487,7 @@ App.config = Em.Object.create({ availableConfigGroups[0] : null; var serviceName = App.format.role(serviceId); App.ModalPopup.show({ - classNames: [ 'sixty-percent-width-modal' ], + classNames: ['sixty-percent-width-modal'], header: Em.I18n.t('config.group.selection.dialog.title').format(serviceName), subTitle: Em.I18n.t('config.group.selection.dialog.subtitle').format(serviceName), selectExistingGroupLabel: Em.I18n.t('config.group.selection.dialog.option.select').format(serviceName), @@ -1778,7 +1788,7 @@ App.config = Em.Object.create({ * @param hostName * (string) host name used to register */ - getConfigGroupsForHost: function (hostName) { + getConfigGroupsForHost: function (hostName) { }, @@ -1805,7 +1815,7 @@ App.config = Em.Object.create({ * @param {Object} properties - additional properties which will merge with base object definition * @returns {*} */ - generateConfigPropertiesByName: function(names, properties) { + generateConfigPropertiesByName: function (names, properties) { return names.map(function (item) { var baseObj = { name: item, @@ -1841,7 +1851,7 @@ App.config = Em.Object.create({ * @returns {$.ajax} * @method loadConfigsFromStack */ - loadConfigsFromStack: function(serviceNames) { + loadConfigsFromStack: function (serviceNames) { serviceNames = serviceNames || []; var name = serviceNames.length > 0 ? 'configs.stack_configs.load.services' : 'configs.stack_configs.load.all'; return App.ajax.send({ @@ -1859,7 +1869,7 @@ App.config = Em.Object.create({ * runs <code>stackConfigPropertiesMapper<code> * @param data */ - saveConfigsToModel: function(data) { + saveConfigsToModel: function (data) { App.stackConfigPropertiesMapper.map(data); }, @@ -1869,7 +1879,7 @@ App.config = Em.Object.create({ * @returns {$.Deferred()} * @method loadConfigGroups */ - loadConfigGroups: function(serviceNames) { + loadConfigGroups: function (serviceNames) { var dfd = $.Deferred(); if (!serviceNames || serviceNames.length === 0) { dfd.resolve(); @@ -1893,7 +1903,7 @@ App.config = Em.Object.create({ * @param opt * @param params */ - saveConfigGroupsToModel: function(data, opt, params) { + saveConfigGroupsToModel: function (data, opt, params) { App.configGroupsMapper.map(data, params.serviceList.split(',')); params.dfd.resolve(); }, @@ -1905,7 +1915,7 @@ App.config = Em.Object.create({ * @returns {$.ajax} * @method loadConfigGroups */ - loadConfigVersions: function(serviceName, configGroupId, configVersion) { + loadConfigVersions: function (serviceName, configGroupId, configVersion) { var info = this.generateAjaxDataForVersions(serviceName, configGroupId, configVersion); return App.ajax.send({ name: info.name, @@ -1922,7 +1932,7 @@ App.config = Em.Object.create({ * @param configVersion * @returns {{name: string, data: {}}} */ - generateAjaxDataForVersions: function(serviceName, configGroupId, configVersion) { + generateAjaxDataForVersions: function (serviceName, configGroupId, configVersion) { var result = { name: 'configs.config_versions.load.all.min', data: {} @@ -1948,7 +1958,7 @@ App.config = Em.Object.create({ * @param opt * @param params */ - saveConfigVersionsToModel: function(data) { + saveConfigVersionsToModel: function (data) { App.configVersionsMapper.map(data); } });
