You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2015/08/22 01:12:30 UTC

ambari git commit: AMBARI-12858. Ranger config page is not getting load for HDP 2.2 on Ambari-2.1.1. (jaimin)

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 <ja...@hortonworks.com>
Authored: Fri Aug 21 16:11:57 2015 -0700
Committer: Jaimin Jetly <ja...@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];
       }