Repository: ambari Updated Branches: refs/heads/branch-2.1.1 e03d0fda6 -> 3b72d911c
AMBARI-12858. Ranger config page is not getting load for HDP 2.2 on Ambari-2.1.1. (jaimin) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/3b72d911 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/3b72d911 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/3b72d911 Branch: refs/heads/branch-2.1.1 Commit: 3b72d911cfcb27ffc14ac29ba31aaf2d0aebc0a4 Parents: e03d0fd Author: Jaimin Jetly <jai...@hortonworks.com> Authored: Fri Aug 21 16:11:57 2015 -0700 Committer: Jaimin Jetly <jai...@hortonworks.com> Committed: Fri Aug 21 16:12:20 2015 -0700 ---------------------------------------------------------------------- ambari-web/app/data/HDP2.2/site_properties.js | 74 +++++++++++++++++++++- ambari-web/app/data/HDP2.3/site_properties.js | 68 -------------------- ambari-web/app/utils/configs/database.js | 48 ++++++++------ 3 files changed, 101 insertions(+), 89 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/3b72d911/ambari-web/app/data/HDP2.2/site_properties.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2.2/site_properties.js b/ambari-web/app/data/HDP2.2/site_properties.js index 019a4eb..dde84f1 100644 --- a/ambari-web/app/data/HDP2.2/site_properties.js +++ b/ambari-web/app/data/HDP2.2/site_properties.js @@ -450,10 +450,12 @@ hdp22properties.push( "isReconfigurable": true, "options": [ { - displayName: 'MYSQL' + displayName: 'MYSQL', + foreignKeys: ['ranger_mysql_database', 'ranger_mysql_host'] }, { - displayName: 'ORACLE' + displayName: 'ORACLE', + foreignKeys: ['ranger_oracle_database', 'ranger_oracle_host'] } ], "displayType": "radio button", @@ -507,6 +509,74 @@ hdp22properties.push( "index": 5 }, { + "name": "ranger_mysql_database", + "id": "puppet var", + "displayName": "Database Type", + "value": "", + "recommendedValue": "MySQL", + "description": "Using a MySQL database for Ranger", + "displayType": "masterHost", + "isOverridable": false, + "isVisible": false, + "isReconfigurable": false, + "isRequiredByAgent": false, + "serviceName": "RANGER", + "filename": "admin-properties.xml", + "category": "DBSettings", + "index": 1 + }, + { + "name": "ranger_oracle_database", + "id": "puppet var", + "displayName": "Database Type", + "value": "", + "recommendedValue": "ORACLE", + "description": "Using an Oracle database for Ranger", + "displayType": "masterHost", + "isOverridable": false, + "isVisible": false, + "isReconfigurable": false, + "isRequiredByAgent": false, + "serviceName": "RANGER", + "filename": "admin-properties.xml", + "category": "DBSettings", + "index": 2 + }, + { + "name": "ranger_mysql_host", + "id": "puppet var", + "displayName": "Ranger DB host", + "description": "Specify the host on which the existing database is hosted", + "recommendedValue": "", + "value": "", + "displayType": "host", + "isOverridable": false, + "isVisible": false, + "isObserved": true, + "isRequiredByAgent": false, + "serviceName": "RANGER", + "filename": "admin-properties.xml", + "category": "DBSettings", + "index": 6 + }, + { + "name": "ranger_oracle_host", + "id": "puppet var", + "displayName": "Ranger DB host", + "description": "Specify the host on which the existing database is hosted", + "recommendedValue": "", + "value": "", + "displayType": "host", + "isOverridable": false, + "isVisible": false, + "isObserved": true, + "isRequiredByAgent": false, + "serviceName": "RANGER", + "filename": "admin-properties.xml", + "category": "DBSettings", + "index": 7 + }, + { "id": "site property", "name": "db_root_password", "displayName": "Ranger DB root password", http://git-wip-us.apache.org/repos/asf/ambari/blob/3b72d911/ambari-web/app/data/HDP2.3/site_properties.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2.3/site_properties.js b/ambari-web/app/data/HDP2.3/site_properties.js index 82721dc..d4372ab 100644 --- a/ambari-web/app/data/HDP2.3/site_properties.js +++ b/ambari-web/app/data/HDP2.3/site_properties.js @@ -106,40 +106,6 @@ hdp23properties.push({ "index": 2 }, { - "name": "ranger_mysql_database", - "id": "puppet var", - "displayName": "Database Type", - "value": "", - "recommendedValue": "MySQL", - "description": "Using a MySQL database for Ranger", - "displayType": "masterHost", - "isOverridable": false, - "isVisible": false, - "isReconfigurable": false, - "isRequiredByAgent": false, - "serviceName": "RANGER", - "filename": "admin-properties.xml", - "category": "DBSettings", - "index": 1 - }, - { - "name": "ranger_oracle_database", - "id": "puppet var", - "displayName": "Database Type", - "value": "", - "recommendedValue": "ORACLE", - "description": "Using an Oracle database for Ranger", - "displayType": "masterHost", - "isOverridable": false, - "isVisible": false, - "isReconfigurable": false, - "isRequiredByAgent": false, - "serviceName": "RANGER", - "filename": "admin-properties.xml", - "category": "DBSettings", - "index": 2 - }, - { "name": "ranger_postgres_database", "id": "puppet var", "displayName": "Database Type", @@ -548,40 +514,6 @@ hdp23properties.push({ "serviceName": "KAFKA" }, { - "name": "ranger_mysql_host", - "id": "puppet var", - "displayName": "Ranger DB host", - "description": "Specify the host on which the existing database is hosted", - "recommendedValue": "", - "value": "", - "displayType": "host", - "isOverridable": false, - "isVisible": false, - "isObserved": true, - "isRequiredByAgent": false, - "serviceName": "RANGER", - "filename": "admin-properties.xml", - "category": "DBSettings", - "index": 6 - }, - { - "name": "ranger_oracle_host", - "id": "puppet var", - "displayName": "Ranger DB host", - "description": "Specify the host on which the existing database is hosted", - "recommendedValue": "", - "value": "", - "displayType": "host", - "isOverridable": false, - "isVisible": false, - "isObserved": true, - "isRequiredByAgent": false, - "serviceName": "RANGER", - "filename": "admin-properties.xml", - "category": "DBSettings", - "index": 7 - }, - { "name": "ranger_postgres_host", "id": "puppet var", "displayName": "Ranger DB host", http://git-wip-us.apache.org/repos/asf/ambari/blob/3b72d911/ambari-web/app/utils/configs/database.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/configs/database.js b/ambari-web/app/utils/configs/database.js index 3ef7c0a..37fd0ae 100644 --- a/ambari-web/app/utils/configs/database.js +++ b/ambari-web/app/utils/configs/database.js @@ -70,12 +70,12 @@ module.exports = { * @param {App.ServiceConfigProperty[]} serviceConfigs * @param {string} [serviceName=false] */ - bootstrapDatabaseProperties: function(serviceConfigs, serviceName) { + bootstrapDatabaseProperties: function (serviceConfigs, serviceName) { var self = this; var supportedServices = Em.keys(this.dbServicePropertyMap); if (serviceName && !supportedServices.contains(serviceName)) return; var serviceNames = serviceName ? [serviceName] : serviceConfigs.mapProperty('serviceName').uniq(); - serviceNames.forEach(function(serviceName) { + serviceNames.forEach(function (serviceName) { if (!supportedServices.contains(serviceName)) return; var configs = serviceConfigs.filterProperty('serviceName', serviceName) || []; var connectionConfigs = self.dbServicePropertyMap[serviceName]; @@ -83,14 +83,24 @@ module.exports = { if (!databaseTypeProperty) return; var databaseTypePropertyIndex = configs.indexOf(databaseTypeProperty); var generatedProperties = self.getPropsByOptions(databaseTypeProperty, configs); - var jdbcObject = self.parseJdbcUrl(Em.get(configs.findProperty('name', connectionConfigs.connectionUrl), 'value')); - generatedProperties.forEach(function(property) { + var connectionUrlProperty = configs.findProperty('name', connectionConfigs.connectionUrl); + if (connectionUrlProperty) { + var jdbcObject = self.parseJdbcUrl(connectionUrlProperty.get('value')); + } + generatedProperties.forEach(function (property) { + var dbHostName; if (Em.get(property, 'name').endsWith('_host')) { - // set UI host names for each database type with value parsed from jdbc connection url - // if value is not ip or hostname (in case of New Derby Database) for Oozie set <code>fallbackUrl</code> - // from <code>dbServicePropertyMap</code> + if (jdbcObject) { + dbHostName = jdbcObject.location; + } else { + var fallbackHostNameProperty = configs.findProperty('name', self.dbServicePropertyMap[serviceName].fallbackHostName); + if (fallbackHostNameProperty) { + dbHostName = fallbackHostNameProperty.get('recommendedValue'); + dbHostName = Em.isArray(dbHostName) ? dbHostName[0] : dbHostName; + } + } Em.setProperties(property, { - value: jdbcObject.location || '' + value: dbHostName || '' }); self.addPropertyToServiceConfigs(property, serviceConfigs, databaseTypePropertyIndex); } @@ -98,7 +108,7 @@ module.exports = { }); }, - isValidHostname: function(value) { + isValidHostname: function (value) { return validators.isHostname(value) || validators.isIpAddress(value); }, @@ -110,7 +120,7 @@ module.exports = { * @param {App.ServiceConfigProperty[]} configs - loaded and processed service configs * @param {integer} index of first occurrence of database type in config */ - addPropertyToServiceConfigs: function(property, configs, index) { + addPropertyToServiceConfigs: function (property, configs, index) { var configProperty = configs.findProperty('name', Em.get(property, 'name')); if (configProperty) { Em.set(configProperty, 'value', Em.get(property, 'value')); @@ -131,11 +141,11 @@ module.exports = { * @param {App.ServiceConfigProperty[]} configs - loaded and processed configs * @returns {object[]} - hardcoded properties from site_properties.js related to database name and location */ - getPropsByOptions: function(databaseTypeProperty) { + getPropsByOptions: function (databaseTypeProperty) { Em.assert('Property related to database type should contains `options` attribute', databaseTypeProperty.get('options')); - return databaseTypeProperty.options.mapProperty('foreignKeys').reduce(function(p,c) { + return databaseTypeProperty.options.mapProperty('foreignKeys').reduce(function (p, c) { return p.concat(c); - }).uniq().map(function(name) { + }).uniq().map(function (name) { return App.config.get('preDefinedSiteProperties').findProperty('name', name) || null; }).compact(); }, @@ -145,11 +155,11 @@ module.exports = { * * @method getDBLocationFromJDBC * @param {string} jdbcUrl - url to parse - * @returns {string|null} + * @returns {string|null} */ - getDBLocationFromJDBC: function(jdbcUrl) { + getDBLocationFromJDBC: function (jdbcUrl) { var self = this; - var matches = Em.keys(this.DB_JDBC_PATTERNS).map(function(key) { + var matches = Em.keys(this.DB_JDBC_PATTERNS).map(function (key) { var reg = new RegExp(self.DB_JDBC_PATTERNS[key].format('(.*)', '(.*)')); return jdbcUrl.match(reg); }).compact(); @@ -164,7 +174,7 @@ module.exports = { } }, - parseJdbcUrl: function(jdbcUrl) { + parseJdbcUrl: function (jdbcUrl) { var self = this; var result = { dbType: null, @@ -173,14 +183,14 @@ module.exports = { }; var dbName; - result.dbType = Em.keys(this.DB_JDBC_PATTERNS).filter(function(key) { + result.dbType = Em.keys(this.DB_JDBC_PATTERNS).filter(function (key) { var scheme = self.DB_JDBC_PATTERNS[key].match(/^jdbc:(\w+):/)[1]; return new RegExp('jdbc:' + scheme).test(jdbcUrl); })[0]; result.location = this.getDBLocationFromJDBC(jdbcUrl); if (!jdbcUrl.endsWith('{1}')) { - dbName = jdbcUrl.replace(new RegExp(this.DB_JDBC_PATTERNS[result.dbType].format(stringUtils.escapeRegExp(result.location),'')), ''); + dbName = jdbcUrl.replace(new RegExp(this.DB_JDBC_PATTERNS[result.dbType].format(stringUtils.escapeRegExp(result.location), '')), ''); if (dbName) { result.databaseName = dbName.split(/[;|?]/)[0]; }