You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ab...@apache.org on 2015/01/29 14:58:53 UTC
ambari git commit: AMBARI-9395 Ambari Web UI changes required to
support Ranger Installation. (ababiichuk)
Repository: ambari
Updated Branches:
refs/heads/trunk fd06b4f92 -> ad73c195b
AMBARI-9395 Ambari Web UI changes required to support Ranger Installation. (ababiichuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ad73c195
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ad73c195
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ad73c195
Branch: refs/heads/trunk
Commit: ad73c195b2f9b2ba7ff1a9bdde16d85f9785154d
Parents: fd06b4f
Author: aBabiichuk <ab...@cybervisiontech.com>
Authored: Thu Jan 29 14:14:40 2015 +0200
Committer: aBabiichuk <ab...@cybervisiontech.com>
Committed: Thu Jan 29 15:13:27 2015 +0200
----------------------------------------------------------------------
ambari-web/app/data/HDP2.2/site_properties.js | 545 ++++++++++++++++++++-
ambari-web/app/models/service_config.js | 12 +-
ambari-web/app/models/stack_service.js | 8 +-
ambari-web/app/utils/config.js | 8 +-
ambari-web/app/views/common/controls_view.js | 30 +-
ambari-web/test/models/service_config_test.js | 7 +
6 files changed, 605 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad73c195/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 efc6cb9..3a9ceec 100644
--- a/ambari-web/app/data/HDP2.2/site_properties.js
+++ b/ambari-web/app/data/HDP2.2/site_properties.js
@@ -104,7 +104,550 @@ hdp22properties.push(
"category": "FalconStartupSite",
"serviceName": "FALCON",
"filename": "falcon-startup.properties.xml"
- });
+ },
+ /*********RANGER FOR HDFS************/
+ {
+ "id": "site property",
+ "name": "XAAUDIT.HDFS.IS_ENABLED",
+ "displayName": "Audit to HDFS",
+ "displayType": "checkbox",
+ "dependentConfigPattern": "^XAAUDIT.HDFS",
+ "filename": "ranger-hdfs-plugin-properties.xml",
+ "category": "Advanced ranger-hdfs-plugin-properties",
+ "serviceName": "HDFS"
+ },
+ {
+ "id": "site property",
+ "name": "XAAUDIT.DB.IS_ENABLED",
+ "displayName": "Audit to DB",
+ "displayType": "checkbox",
+ "filename": "ranger-hdfs-plugin-properties.xml",
+ "category": "Advanced ranger-hdfs-plugin-properties",
+ "serviceName": "HDFS"
+ },
+ {
+ "id": "site property",
+ "name": "enable_hdfs_plugin",
+ "value": false,
+ "defaultValue": false,
+ "displayName": "Enable Ranger for HDFS",
+ "displayType": "checkbox",
+ "filename": "ranger-hdfs-plugin-properties.xml",
+ "category": "Advanced ranger-hdfs-plugin-properties",
+ "serviceName": "HDFS"
+ },
+ {
+ "id": "puppet var",
+ "name": "RANGER_HOST",
+ "displayName": "Policy Admin URL",
+ "value": "",
+ "defaultValue": "",
+ "description": "The host that has been assigned to run Ranger Server",
+ "displayType": "masterHost",
+ "isOverridable": false,
+ "isVisible": true,
+ "isRequiredByAgent": false,
+ "serviceName": "HDFS",
+ "filename": "ranger-hdfs-plugin-properties.xml",
+ "category": "Advanced ranger-hdfs-plugin-properties"
+ },
+ /*********RANGER FOR HIVE************/
+ {
+ "id": "site property",
+ "name": "XAAUDIT.HDFS.IS_ENABLED",
+ "displayName": "Audit to HDFS",
+ "displayType": "checkbox",
+ "dependentConfigPattern": "^XAAUDIT.HDFS",
+ "filename": "ranger-hive-plugin-properties.xml",
+ "category": "Advanced ranger-hive-plugin-properties",
+ "serviceName": "HIVE"
+ },
+ {
+ "id": "site property",
+ "name": "XAAUDIT.DB.IS_ENABLED",
+ "displayName": "Audit to DB",
+ "displayType": "checkbox",
+ "filename": "ranger-hive-plugin-properties.xml",
+ "category": "Advanced ranger-hive-plugin-properties",
+ "serviceName": "HIVE"
+ },
+ {
+ "id": "site property",
+ "name": "enable_hdfs_plugin",
+ "value": false,
+ "defaultValue": false,
+ "displayName": "Enable Ranger for HDFS",
+ "displayType": "checkbox",
+ "filename": "ranger-hive-plugin-properties.xml",
+ "category": "Advanced ranger-hive-plugin-properties",
+ "serviceName": "HIVE"
+ },
+ {
+ "id": "site property",
+ "name": "UPDATE_XAPOLICIES_ON_GRANT_REVOKE",
+ "defaultValue": true,
+ "displayName": "Should Hive GRANT/REVOKE update XA policies?",
+ "displayType": "checkbox",
+ "filename": "ranger-hive-plugin-properties.xml",
+ "category": "Advanced ranger-hive-plugin-properties",
+ "serviceName": "HIVE"
+ },
+ {
+ "id": "puppet var",
+ "name": "RANGER_HOST",
+ "displayName": "Policy Admin URL",
+ "value": "",
+ "defaultValue": "",
+ "description": "The host that has been assigned to run Ranger Server",
+ "displayType": "masterHost",
+ "isOverridable": false,
+ "isVisible": true,
+ "isRequiredByAgent": false,
+ "serviceName": "HIVE",
+ "filename": "ranger-hive-plugin-properties.xml",
+ "category": "Advanced ranger-hive-plugin-properties"
+ },
+ /*********RANGER FOR HBASE************/
+ {
+ "id": "site property",
+ "name": "XAAUDIT.HDFS.IS_ENABLED",
+ "displayName": "Audit to HDFS",
+ "displayType": "checkbox",
+ "dependentConfigPattern": "^XAAUDIT.HDFS",
+ "filename": "ranger-hbase-plugin-properties.xml",
+ "category": "Advanced ranger-hbase-plugin-properties",
+ "serviceName": "HBASE"
+ },
+ {
+ "id": "site property",
+ "name": "XAAUDIT.DB.IS_ENABLED",
+ "displayName": "Audit to DB",
+ "displayType": "checkbox",
+ "filename": "ranger-hbase-plugin-properties.xml",
+ "category": "Advanced ranger-hbase-plugin-properties",
+ "serviceName": "HBASE"
+ },
+ {
+ "id": "site property",
+ "name": "enable_hdfs_plugin",
+ "value": false,
+ "defaultValue": false,
+ "displayName": "Enable Ranger for HDFS",
+ "displayType": "checkbox",
+ "filename": "ranger-hbase-plugin-properties.xml",
+ "category": "Advanced ranger-hbase-plugin-properties",
+ "serviceName": "HBASE"
+ },
+ {
+ "id": "site property",
+ "name": "UPDATE_XAPOLICIES_ON_GRANT_REVOKE",
+ "defaultValue": true,
+ "displayName": "Should HBase GRANT/REVOKE update XA policies?",
+ "displayType": "checkbox",
+ "filename": "ranger-hbase-plugin-properties.xml",
+ "category": "Advanced ranger-hbase-plugin-properties",
+ "serviceName": "HBASE"
+ },
+ {
+ "id": "puppet var",
+ "name": "RANGER_HOST",
+ "displayName": "Policy Admin URL",
+ "value": "",
+ "defaultValue": "",
+ "description": "The host that has been assigned to run Ranger Server",
+ "displayType": "masterHost",
+ "isOverridable": false,
+ "isVisible": true,
+ "isRequiredByAgent": false,
+ "serviceName": "HBASE",
+ "filename": "ranger-hbase-plugin-properties.xml",
+ "category": "Advanced ranger-hbase-plugin-properties"
+ },
+ /*********RANGER FOR STORM************/
+ {
+ "id": "site property",
+ "name": "XAAUDIT.HDFS.IS_ENABLED",
+ "displayName": "Audit to HDFS",
+ "displayType": "checkbox",
+ "dependentConfigPattern": "^XAAUDIT.HDFS",
+ "filename": "ranger-storm-plugin-properties.xml",
+ "category": "Advanced ranger-storm-plugin-properties",
+ "serviceName": "STORM"
+ },
+ {
+ "id": "site property",
+ "name": "XAAUDIT.DB.IS_ENABLED",
+ "displayName": "Audit to DB",
+ "displayType": "checkbox",
+ "filename": "ranger-storm-plugin-properties.xml",
+ "category": "Advanced storm-hbase-plugin-properties",
+ "serviceName": "STORM"
+ },
+ {
+ "id": "site property",
+ "name": "enable_hdfs_plugin",
+ "value": false,
+ "defaultValue": false,
+ "displayName": "Enable Ranger for HDFS",
+ "displayType": "checkbox",
+ "filename": "ranger-storm-plugin-properties.xml",
+ "category": "Advanced storm-hbase-plugin-properties",
+ "serviceName": "STORM"
+ },
+ {
+ "id": "puppet var",
+ "name": "RANGER_HOST",
+ "displayName": "Policy Admin URL",
+ "value": "",
+ "defaultValue": "",
+ "description": "The host that has been assigned to run Ranger Server",
+ "displayType": "masterHost",
+ "isOverridable": false,
+ "isVisible": true,
+ "isRequiredByAgent": false,
+ "serviceName": "STORM",
+ "filename": "ranger-storm-plugin-properties.xml",
+ "category": "Advanced ranger-strom-plugin-properties"
+ },
+ /*********RANGER FOR KNOX************/
+ {
+ "id": "site property",
+ "name": "XAAUDIT.HDFS.IS_ENABLED",
+ "displayName": "Audit to HDFS",
+ "displayType": "checkbox",
+ "dependentConfigPattern": "^XAAUDIT.HDFS",
+ "filename": "ranger-knox-plugin-properties.xml",
+ "category": "Advanced ranger-knox-plugin-properties",
+ "serviceName": "KNOX"
+ },
+ {
+ "id": "site property",
+ "name": "XAAUDIT.DB.IS_ENABLED",
+ "displayName": "Audit to DB",
+ "displayType": "checkbox",
+ "filename": "ranger-knox-plugin-properties.xml",
+ "category": "Advanced ranger-knox-plugin-properties",
+ "serviceName": "KNOX"
+ },
+ {
+ "id": "site property",
+ "name": "enable_hdfs_plugin",
+ "value": false,
+ "defaultValue": false,
+ "displayName": "Enable Ranger for HDFS",
+ "displayType": "checkbox",
+ "filename": "ranger-knox-plugin-properties.xml",
+ "category": "Advanced ranger-knox-plugin-properties",
+ "serviceName": "KNOX"
+ },
+ {
+ "id": "puppet var",
+ "name": "RANGER_HOST",
+ "displayName": "Policy Admin URL",
+ "value": "",
+ "defaultValue": "",
+ "description": "The host that has been assigned to run Ranger Server",
+ "displayType": "masterHost",
+ "isOverridable": false,
+ "isVisible": true,
+ "isRequiredByAgent": false,
+ "serviceName": "KNOX",
+ "filename": "ranger-knox-plugin-properties.xml",
+ "category": "Advanced ranger-knox-plugin-properties"
+ },
+ /**********************************************RANGER***************************************/
+ {
+ "id": "puppet var",
+ "name": "RANGER_HOST",
+ "displayName": "Policy Admin URL",
+ "value": "",
+ "defaultValue": "",
+ "description": "The host that has been assigned to run Ranger Server",
+ "displayType": "masterHost",
+ "isOverridable": false,
+ "isVisible": true,
+ "isRequiredByAgent": false,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "Advanced admin-properties"
+ },
+ {
+ "id": "site property",
+ "name": "ambari_user_password",
+ "displayName": "Ranger Admin user's password for Ambari",
+ "defaultValue": "ambari",
+ "isReconfigurable": true,
+ "displayType": "password",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "AdminSettings"
+ },
+ {
+ "id": "site property",
+ "name": "SQL_CONNECTOR_JAR",
+ "displayName": "Location of Sql Connector Jar",
+ "defaultValue": "/usr/share/java/mysql-connector-java.jar",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "AdminSettings"
+ },
+ {
+ "id": "site property",
+ "name": "DB_FLAVOR",
+ "displayName": "DB FLAVOR",
+ "value": "MYSQL",
+ "defaultValue": "MYSQL",
+ "isReconfigurable": true,
+ "options": [
+ {
+ displayName: 'MYSQL'
+ },
+ {
+ displayName: 'ORACLE'
+ }
+ ],
+ "displayType": "radio button",
+ "radioName": "RANGER DB_FLAVOR",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+ {
+ "id": "site property",
+ "name": "SQL_COMMAND_INVOKER",
+ "displayName": "SQL Command Invoker",
+ "defaultValue": "mysql",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+ {
+ "id": "site property",
+ "name": "db_host",
+ "displayName": "Admin DB Instance",
+ "defaultValue": "",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+ {
+ "id": "site property",
+ "name": "db_root_user",
+ "displayName": "Admin DB root user",
+ "defaultValue": "",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+ {
+ "id": "site property",
+ "name": "db_root_password",
+ "displayName": "Admin DB root password",
+ "defaultValue": "",
+ "isReconfigurable": true,
+ "displayType": "password",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+ {
+ "id": "site property",
+ "name": "db_name",
+ "displayName": "Admin DB database name",
+ "defaultValue": "",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+
+ {
+ "id": "site property",
+ "name": "db_user",
+ "displayName": "Admin DB mysql username",
+ "defaultValue": "",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+ {
+ "id": "site property",
+ "name": "db_password",
+ "displayName": "Admin DB mysql password",
+ "defaultValue": "",
+ "isReconfigurable": true,
+ "displayType": "password",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+ {
+ "id": "site property",
+ "name": "audit_db_name",
+ "displayName": "Admin DB database name",
+ "defaultValue": "",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+ {
+ "id": "site property",
+ "name": "audit_db_user",
+ "displayName": "Admin DB mysql username",
+ "defaultValue": "",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+ {
+ "id": "site property",
+ "name": "audit_db_password",
+ "displayName": "Admin DB mysql password",
+ "defaultValue": "",
+ "isReconfigurable": true,
+ "displayType": "password",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "DBSettings"
+ },
+ {
+ "id": "puppet var",
+ "name": "policymgr_external_url",
+ "displayName": "External URL",
+ "defaultValue": "http://localhost:6080",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "Advanced admin-properties"
+ },
+ {
+ "id": "puppet var",
+ "name": "policymgr_http_enabled",
+ "displayName": "HTTP enabled",
+ "defaultValue": true,
+ "isReconfigurable": true,
+ "displayType": "checkbox",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "Advanced admin-properties"
+ },
+ {
+ "id": "puppet var",
+ "name": "unix_user",
+ "displayName": "Used to create user and assign permission",
+ "defaultValue": "ranger",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "Advanced admin-properties"
+ },
+ {
+ "id": "puppet var",
+ "name": "unix_group",
+ "displayName": "Used to create group and assign permission",
+ "defaultValue": "ranger",
+ "isReconfigurable": true,
+ "displayType": "",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "Advanced admin-properties"
+ },
+ {
+ "id": "site property",
+ "name": "authentication_method",
+ "displayName": "Authentication method",
+ "defaultValue": "NONE",
+ "options": [
+ {
+ displayName: 'LDAP',
+ foreignKeys: ['xa_ldap_userDNpattern', 'xa_ldap_groupRoleAttribute', 'xa_ldap_url', 'xa_ldap_groupSearchBase', 'xa_ldap_groupSearchFilter']
+ },
+ {
+ displayName: 'ACTIVE_DIRECTORY',
+ foreignKeys: ['xa_ldap_ad_domain', 'xa_ldap_ad_url']
+ },
+ {
+ displayName: 'UNIX',
+ foreignKeys: ['remoteLoginEnabled', 'authServiceHostName','authServicePort']
+ },
+ {
+ displayName: 'NONE'
+ }
+ ],
+ "displayType": "radio button",
+ "radioName": "authentication-method",
+ "isReconfigurable": true,
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "Advanced admin-properties"
+ },
+ {
+ "id": "puppet var",
+ "name": "remoteLoginEnabled",
+ "displayName": "Allow remote Login",
+ "defaultValue": true,
+ "isReconfigurable": true,
+ "displayType": "checkbox",
+ "isOverridable": false,
+ "isVisible": true,
+ "serviceName": "RANGER",
+ "filename": "admin-properties.xml",
+ "category": "Advanced admin-properties"
+ }
+);
var additionalProperties = [];
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad73c195/ambari-web/app/models/service_config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/service_config.js b/ambari-web/app/models/service_config.js
index 047c1b2..bc8bd78 100644
--- a/ambari-web/app/models/service_config.js
+++ b/ambari-web/app/models/service_config.js
@@ -600,6 +600,12 @@ App.ServiceConfigProperty = Em.Object.extend({
var falconServerHost = masterComponentHostsInDB.findProperty('component', 'FALCON_SERVER').hostName;
this.setDefaultValue('localhost', falconServerHost);
break;
+ case 'RANGER_HOST':
+ var rangerAdminHost = masterComponentHostsInDB.findProperty('component', 'RANGER_ADMIN');
+ if(rangerAdminHost) {
+ this.set('value', rangerAdminHost.hostName);
+ }
+ break;
}
},
@@ -845,7 +851,11 @@ App.ServiceConfigProperty = Em.Object.extend({
viewClass: function () {
switch (this.get('displayType')) {
case 'checkbox':
- return App.ServiceConfigCheckbox;
+ if (this.get('dependentConfigPattern')) {
+ return App.ServiceConfigCheckboxWithDependencies;
+ } else {
+ return App.ServiceConfigCheckbox;
+ }
case 'password':
return App.ServiceConfigPasswordField;
case 'combobox':
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad73c195/ambari-web/app/models/stack_service.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/stack_service.js b/ambari-web/app/models/stack_service.js
index f7b03ca..67f1e8a 100644
--- a/ambari-web/app/models/stack_service.js
+++ b/ambari-web/app/models/stack_service.js
@@ -164,7 +164,7 @@ App.StackService = DS.Model.extend({
var configTypes = this.get('configTypes');
var serviceComponents = this.get('serviceComponents');
if (configTypes && Object.keys(configTypes).length) {
- var pattern = ["General", "CapacityScheduler", "FaultTolerance", "Isolation", "Performance", "KDC","^Advanced", "Env$", "^Custom", "Falcon - Oozie integration", "FalconStartupSite", "FalconRuntimeSite", "MetricCollector"];
+ var pattern = ["General", "CapacityScheduler", "FaultTolerance", "Isolation", "Performance", "KDC","^Advanced", "Env$", "^Custom", "Falcon - Oozie integration", "FalconStartupSite", "FalconRuntimeSite", "MetricCollector", "Settings$"];
configCategories = App.StackService.configCategories.call(this).filter(function (_configCategory) {
var serviceComponentName = _configCategory.get('name');
var isServiceComponent = serviceComponents.someProperty('componentName', serviceComponentName);
@@ -329,6 +329,12 @@ App.StackService.configCategories = function () {
App.ServiceConfigCategory.create({ name: 'MetricCollector', displayName: 'Metric Collector'})
]);
break;
+ case 'RANGER':
+ serviceConfigCategories.pushObjects([
+ App.ServiceConfigCategory.create({ name: 'AdminSettings', displayName: 'Admin Settings'}),
+ App.ServiceConfigCategory.create({ name: 'DBSettings', displayName: 'DB Settings'})
+ ]);
+ break;
case 'PIG':
break;
case 'SQOOP':
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad73c195/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index d79ebaa..57109b5 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -563,7 +563,13 @@ App.config = Em.Object.create({
// Password fields should be made blank by default in installer wizard
// irrespective of whatever value is sent from stack definition.
// This forces the user to fill the password field.
- configData.value = configData.displayType == "password" ? '' : advanced ? advanced.value : configData.value;
+ if (configData.displayType == 'checkbox') {
+ configData.value = advanced ? advanced.value === 'true' : configData.value === 'true';
+ } else if (configData.displayType == 'password') {
+ configData.value = '';
+ } else {
+ configData.value = advanced ? advanced.value : configData.value;
+ }
configData.defaultValue = configData.value;
configData.filename = advanced ? advanced.filename : configData.filename;
configData.description = advanced ? advanced.description : configData.description;
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad73c195/ambari-web/app/views/common/controls_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/controls_view.js b/ambari-web/app/views/common/controls_view.js
index d3fd638..8dcedab 100644
--- a/ambari-web/app/views/common/controls_view.js
+++ b/ambari-web/app/views/common/controls_view.js
@@ -210,6 +210,27 @@ App.ServiceConfigCheckbox = Ember.Checkbox.extend(App.ServiceConfigPopoverSuppor
}.property('serviceConfig.isEditable')
});
+/**
+ * Checkbox control which can hide or show dependent properties
+ * @type {*|void}
+ */
+App.ServiceConfigCheckboxWithDependencies = App.ServiceConfigCheckbox.extend({
+
+ didInsertElement: function() {
+ this._super();
+ this.showHideDependentConfigs();
+ },
+
+ showHideDependentConfigs: function() {
+ if (this.get('serviceConfig.dependentConfigPattern')) {
+ this.get('categoryConfigsAll').forEach(function(c) {
+ if (c.get('name').match(this.get('serviceConfig.dependentConfigPattern')) && c.get('name') != this.get('serviceConfig.name'))
+ c.set('isVisible', this.get('checked'))
+ }, this);
+ }
+ }.observes('checked')
+});
+
App.ServiceConfigRadioButtons = Ember.View.extend(App.ServiceConfigCalculateId, {
templateName: require('templates/wizard/controls_service_config_radio_buttons'),
@@ -217,7 +238,7 @@ App.ServiceConfigRadioButtons = Ember.View.extend(App.ServiceConfigCalculateId,
// on page render, automatically populate JDBC URLs only for default database settings
// so as to not lose the user's customizations on these fields
if (['addServiceController', 'installerController'].contains(this.get('controller.wizardController.name'))) {
- if (/^New\s\w+\sDatabase$/.test(this.get('serviceConfig.value'))) {
+ if (/^New\s\w+\sDatabase$/.test(this.get('serviceConfig.value')) || this.dontUseHandleDbConnection.contains(this.get('serviceConfig.name'))) {
this.onOptionsChange();
} else {
this.handleDBConnectionProperty();
@@ -225,6 +246,11 @@ App.ServiceConfigRadioButtons = Ember.View.extend(App.ServiceConfigCalculateId,
}
},
+ /**
+ * properties with these names don'use handleDBConnectionProperty mathod
+ */
+ dontUseHandleDbConnection: ['DB_FLAVOR', 'authentication_method'],
+
configs: function () {
if (this.get('controller.name') == 'mainServiceInfoConfigsController') return this.get('categoryConfigsAll');
return this.get('categoryConfigsAll').filterProperty('isObserved', true);
@@ -426,6 +452,8 @@ App.ServiceConfigRadioButtons = Ember.View.extend(App.ServiceConfigCalculateId,
* @method handleDBConnectionProperty
**/
handleDBConnectionProperty: function() {
+ if (this.dontUseHandleDbConnection.contains(this.get('serviceConfig.name')))
+ return;
var handledProperties = ['oozie_database', 'hive_database'];
var currentValue = this.get('serviceConfig.value');
var databases = /MySQL|PostgreSQL|Oracle|Derby|MSSQL/gi;
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad73c195/ambari-web/test/models/service_config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/models/service_config_test.js b/ambari-web/test/models/service_config_test.js
index afdd663..1cb20f3 100644
--- a/ambari-web/test/models/service_config_test.js
+++ b/ambari-web/test/models/service_config_test.js
@@ -259,6 +259,13 @@ var serviceConfig,
},
{
initial: {
+ displayType: 'checkbox',
+ dependentConfigPattern: 'somPattern'
+ },
+ viewClass: App.ServiceConfigCheckboxWithDependencies
+ },
+ {
+ initial: {
displayType: 'password'
},
viewClass: App.ServiceConfigPasswordField