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 2014/07/16 01:30:44 UTC
git commit: AMBARI-6495. Service Pluggability: Show custom section on
service config page for affiliated config-types to the service. (jaimin)
Repository: ambari
Updated Branches:
refs/heads/trunk ebed6dca2 -> 8e2993515
AMBARI-6495. Service Pluggability: Show custom section on service config page for affiliated config-types to the service. (jaimin)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/8e299351
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/8e299351
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/8e299351
Branch: refs/heads/trunk
Commit: 8e2993515d3db6018bd38ee5ac423101702e2a01
Parents: ebed6dc
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Tue Jul 15 16:30:24 2014 -0700
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Tue Jul 15 16:30:24 2014 -0700
----------------------------------------------------------------------
.../app/controllers/wizard/step5_controller.js | 3 -
ambari-web/app/data/HDP2/site_properties.js | 117 -------------
ambari-web/app/data/site_properties.js | 131 --------------
ambari-web/app/models/stack_service.js | 172 ++++++++++---------
ambari-web/app/utils/config.js | 48 +++++-
.../test/data/HDP2/site_properties_test.js | 6 -
6 files changed, 136 insertions(+), 341 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/8e299351/ambari-web/app/controllers/wizard/step5_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step5_controller.js b/ambari-web/app/controllers/wizard/step5_controller.js
index 5ed0192..a8276a0 100644
--- a/ambari-web/app/controllers/wizard/step5_controller.js
+++ b/ambari-web/app/controllers/wizard/step5_controller.js
@@ -359,8 +359,6 @@ App.WizardStep5Controller = Em.Controller.extend({
},
/**
-<<<<<<< HEAD
-=======
* @param {string} componentName
* @returns {bool}
* @private
@@ -371,7 +369,6 @@ App.WizardStep5Controller = Em.Controller.extend({
},
/**
->>>>>>> apache-ref/trunk
* Put master components to <code>selectedServicesMasters</code>, which will be automatically rendered in template
* @param {Ember.Enumerable} masterComponents
* @method renderComponents
http://git-wip-us.apache.org/repos/asf/ambari/blob/8e299351/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 49a5344..b858e38 100644
--- a/ambari-web/app/data/HDP2/site_properties.js
+++ b/ambari-web/app/data/HDP2/site_properties.js
@@ -1598,123 +1598,6 @@ module.exports =
"filename": "pig-properties.xml",
"category": "Advanced"
},
- /**********************************************log4j.properties***************************************/
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isRequired": false,
- "showLabel": false,
- "serviceName": "HDFS",
- "filename": "hdfs-log4j.xml",
- "category": "AdvancedHDFSLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isRequired": false,
- "showLabel": false,
- "serviceName": "YARN",
- "filename": "yarn-log4j.xml",
- "category": "AdvancedYARNLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isRequired": false,
- "showLabel": false,
- "serviceName": "HBASE",
- "filename": "hbase-log4j.xml",
- "category": "AdvancedHbaseLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isRequired": false,
- "showLabel": false,
- "serviceName": "HIVE",
- "filename": "hive-exec-log4j.xml",
- "category": "AdvancedHiveExecLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isRequired": false,
- "showLabel": false,
- "serviceName": "HIVE",
- "filename": "hive-log4j.xml",
- "category": "AdvancedHiveLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isOverridable": true,
- "isRequired": false,
- "showLabel": false,
- "serviceName": "OOZIE",
- "filename": "oozie-log4j.xml",
- "category": "AdvancedOozieLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isOverridable": true,
- "isRequired": false,
- "showLabel": false,
- "serviceName": "ZOOKEEPER",
- "filename": "zookeeper-log4j.xml",
- "category": "AdvancedZooLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isRequired": false,
- "showLabel": false,
- "serviceName": "PIG",
- "filename": "pig-log4j.xml",
- "category": "AdvancedPigLog4j"
- },
-
-
//***************************************** GLUSTERFS stack********************************************
http://git-wip-us.apache.org/repos/asf/ambari/blob/8e299351/ambari-web/app/data/site_properties.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/site_properties.js b/ambari-web/app/data/site_properties.js
index 36ae907..5f0bf9a 100644
--- a/ambari-web/app/data/site_properties.js
+++ b/ambari-web/app/data/site_properties.js
@@ -773,137 +773,6 @@ module.exports =
"serviceName": "WEBHCAT",
"category": "Advanced"
},
- /**********************************************log4j.properties***************************************/
-
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isOverridable": true,
- "isRequired": false,
- "isVisible": true,
- "showLabel": false,
- "serviceName": "HDFS",
- "filename": "hdfs-log4j.xml",
- "category": "AdvancedHDFSLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isOverridable": true,
- "isRequired": false,
- "isVisible": true,
- "showLabel": false,
- "serviceName": "MAPREDUCE",
- "filename": "mapreduce-log4j.xml",
- "category": "AdvancedMapredLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isOverridable": true,
- "isRequired": false,
- "isVisible": true,
- "showLabel": false,
- "serviceName": "HBASE",
- "filename": "hbase-log4j.xml",
- "category": "AdvancedHbaseLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isOverridable": true,
- "isRequired": false,
- "isVisible": true,
- "showLabel": false,
- "serviceName": "HIVE",
- "filename": "hive-exec-log4j.xml",
- "category": "AdvancedHiveExecLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isOverridable": true,
- "isRequired": false,
- "isVisible": true,
- "showLabel": false,
- "serviceName": "HIVE",
- "filename": "hive-log4j.xml",
- "category": "AdvancedHiveLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isOverridable": true,
- "isRequired": false,
- "isVisible": true,
- "showLabel": false,
- "serviceName": "OOZIE",
- "filename": "oozie-log4j.xml",
- "category": "AdvancedOozieLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isOverridable": true,
- "isRequired": false,
- "isVisible": true,
- "showLabel": false,
- "serviceName": "ZOOKEEPER",
- "filename": "zookeeper-log4j.xml",
- "category": "AdvancedZooLog4j"
- },
- {
- "id": "site property",
- "name": "content",
- "displayName": "content",
- "value": "",
- "defaultValue": "",
- "description": "log4j properties",
- "displayType": "content",
- "isOverridable": true,
- "isRequired": false,
- "isVisible": true,
- "showLabel": false,
- "serviceName": "PIG",
- "filename": "pig-log4j.xml",
- "category": "AdvancedPigLog4j"
- },
-
//***************************************** GLUSTERFS stack********************************************
{
http://git-wip-us.apache.org/repos/asf/ambari/blob/8e299351/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 f0611c7..812453b 100644
--- a/ambari-web/app/models/stack_service.js
+++ b/ambari-web/app/models/stack_service.js
@@ -60,14 +60,14 @@ App.StackService = DS.Model.extend(App.ServiceModelMixin, {
}.property('serviceName'),
configTypesRendered: function () {
- var configTypes = this.get('configTypes');
+ var configTypes = this.get('configTypes');
if (this.get('serviceName') == 'HDFS') return configTypes;
else {
- var renderedConfigTypes = $.extend(true,{}, configTypes);
+ var renderedConfigTypes = $.extend(true, {}, configTypes);
delete renderedConfigTypes['core-site'];
return renderedConfigTypes
}
- }.property('serviceName','configTypes'),
+ }.property('serviceName', 'configTypes'),
displayNameOnSelectServicePage: function () {
var displayName = this.get('displayName');
@@ -180,7 +180,7 @@ App.StackService = DS.Model.extend(App.ServiceModelMixin, {
var serviceComponents = this.get('serviceComponents');
if (configTypes && Object.keys(configTypes).length) {
var pattern = ["General", "CapacityScheduler", "^Advanced", "^Custom", "Falcon - Oozie integration", "FalconStartupSite", "FalconRuntimeSite"];
- configCategories = App.StackService.configCategories(serviceName).filter(function (_configCategory) {
+ configCategories = App.StackService.configCategories.call(this).filter(function (_configCategory) {
var serviceComponentName = _configCategory.get('name');
var isServiceComponent = serviceComponents.someProperty('componentName', serviceComponentName);
if (isServiceComponent) return isServiceComponent;
@@ -193,19 +193,7 @@ App.StackService = DS.Model.extend(App.ServiceModelMixin, {
});
}
return configCategories;
- }.property('serviceName', 'configTypes', 'serviceComponents'),
-
- serviceConfigs: function () {
- var configCategories = [];
- var serviceName = this.get('serviceName');
- var serviceComponents = this.get('serviceComponents');
- configCategories = App.StackService.configCategories(serviceName).filter(function (_configCategory) {
- var serviceComponentName = _configCategory.get('name');
- return serviceComponents.someProperty('componentName', serviceComponentName);
- });
- return configCategories;
- }.observes('serviceName', 'serviceComponents')
-
+ }.property('serviceName', 'configTypes', 'serviceComponents')
});
App.StackService.FIXTURES = [];
@@ -272,107 +260,119 @@ App.StackService.defaultConfigsHandler = {
TEZ: {defaultsProviders: [App.TezDefaultsProvider.create()], configsValidator: App.TezConfigsValidator}
};
-App.StackService.configCategories = function (serviceName) {
- switch (serviceName) {
+App.StackService.configCategories = function () {
+ var serviceConfigCategories = [];
+ switch (this.get('serviceName')) {
case 'HDFS':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'NAMENODE', displayName: 'NameNode'}),
App.ServiceConfigCategory.create({ name: 'SECONDARY_NAMENODE', displayName: 'Secondary NameNode'}),
App.ServiceConfigCategory.create({ name: 'DATANODE', displayName: 'DataNode'}),
App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedCoreSite', displayName: 'Custom core-site.xml', siteFileName: 'core-site.xml', canAddProperty: true}),
- App.ServiceConfigCategory.create({ name: 'AdvancedHDFSSite', displayName: 'Custom hdfs-site.xml', siteFileName: 'hdfs-site.xml', canAddProperty: true}),
- App.ServiceConfigCategory.create({ name: 'AdvancedHDFSLog4j', displayName: 'Custom log4j.properties', siteFileName: 'hdfs-log4j.xml', canAddProperty: false})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced core-site', displayName: 'Custom core-site.xml', siteFileName: 'core-site.xml', canAddProperty: true}),
+ App.ServiceConfigCategory.create({ name: 'Advanced hdfs-site', displayName: 'Custom hdfs-site.xml', siteFileName: 'hdfs-site.xml', canAddProperty: true}),
+ App.ServiceConfigCategory.create({ name: 'Advanced hdfs-log4j', displayName: 'Custom log4j.properties', siteFileName: 'hdfs-log4j.xml', canAddProperty: false})
+ ]);
+ break;
case 'GLUSTERFS':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedGlusterFSSite', displayName : 'Custom core-site.xml', siteFileName: 'core-site.xml', canAddProperty: true})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced core-site', displayName : 'Custom core-site.xml', siteFileName: 'core-site.xml', canAddProperty: true})
+ ]);
+ break;
case 'MAPREDUCE':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'HISTORYSERVER', displayName: 'History Server'}),
App.ServiceConfigCategory.create({ name: 'JOBTRACKER', displayName: 'JobTracker'}),
App.ServiceConfigCategory.create({ name: 'TASKTRACKER', displayName: 'TaskTracker'}),
App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedMapredSite', displayName: 'Custom mapred-site.xml', siteFileName: 'mapred-site.xml', canAddProperty: true}),
- App.ServiceConfigCategory.create({ name: 'AdvancedMapredLog4j', displayName: 'Custom log4j.properties', siteFileName: 'mapreduce-log4j.xml', canAddProperty: false})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced mapred-site', displayName: 'Custom mapred-site.xml', siteFileName: 'mapred-site.xml', canAddProperty: true}),
+ App.ServiceConfigCategory.create({ name: 'Advanced mapreduce-log4j', displayName: 'Custom log4j.properties', siteFileName: 'mapreduce-log4j.xml', canAddProperty: false})
+ ]);
+ break;
case 'YARN':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'RESOURCEMANAGER', displayName: 'Resource Manager'}),
App.ServiceConfigCategory.create({ name: 'NODEMANAGER', displayName: 'Node Manager'}),
App.ServiceConfigCategory.create({ name: 'APP_TIMELINE_SERVER', displayName: 'Application Timeline Server'}),
App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
App.ServiceConfigCategory.create({ name: 'CapacityScheduler', displayName: 'Scheduler', isCapacityScheduler: true, isCustomView: true, siteFileName: 'capacity-scheduler.xml', siteFileNames: ['capacity-scheduler.xml', 'mapred-queue-acls.xml'], canAddProperty: App.supports.capacitySchedulerUi}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedYARNSite', displayName: 'Custom yarn-site.xml', siteFileName: 'yarn-site.xml', canAddProperty: true}),
- App.ServiceConfigCategory.create({ name: 'AdvancedYARNLog4j', displayName: 'Custom log4j.properties', siteFileName: 'yarn-log4j.xml', canAddProperty: false})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced yarn-site', displayName: 'Custom yarn-site.xml', siteFileName: 'yarn-site.xml', canAddProperty: true}),
+ App.ServiceConfigCategory.create({ name: 'Advanced yarn-log4j', displayName: 'Custom log4j.properties', siteFileName: 'yarn-log4j.xml', canAddProperty: false})
+ ]);
+ break;
case 'MAPREDUCE2':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'HISTORYSERVER', displayName: 'History Server'}),
App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedMapredSite', displayName: 'Custom mapred-site.xml', siteFileName: 'mapred-site.xml', canAddProperty: true}),
- App.ServiceConfigCategory.create({ name: 'AdvancedMapredLog4j', displayName: 'Custom log4j.properties', siteFileName: 'mapreduce2-log4j.xml', canAddProperty: false})
- ];
+ App.ServiceConfigCategory.create({ name: 'AdvancedMapredSite', displayName: 'Custom mapred-site.xml', siteFileName: 'mapred-site.xml', canAddProperty: true})
+ ]);
+ break;
case 'HIVE':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'HIVE_METASTORE', displayName: 'Hive Metastore'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedHiveSite', displayName: 'Custom hive-site.xml', siteFileName: 'hive-site.xml', canAddProperty: true}),
- App.ServiceConfigCategory.create({ name: 'AdvancedHiveLog4j', displayName: 'Custom log4j.properties', siteFileName: 'hive-log4j.xml', canAddProperty: false}),
- App.ServiceConfigCategory.create({ name: 'AdvancedHiveExecLog4j', displayName: 'Custom hive-exec-log4j', siteFileName: 'hive-exec-log4j.xml', canAddProperty: false})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced hive-site', displayName: 'Custom hive-site.xml', siteFileName: 'hive-site.xml', canAddProperty: true}),
+ App.ServiceConfigCategory.create({ name: 'Advanced hive-log4j', displayName: 'Custom log4j.properties', siteFileName: 'hive-log4j.xml', canAddProperty: false}),
+ App.ServiceConfigCategory.create({ name: 'Advanced hive-exec-log4j', displayName: 'Custom hive-exec-log4j', siteFileName: 'hive-exec-log4j.xml', canAddProperty: false})
+ ]);
+ break;
case 'WEBHCAT':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'WEBHCAT_SERVER', displayName: 'WebHCat Server'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedWebHCatSite', displayName: 'Custom webhcat-site.xml', siteFileName: 'webhcat-site.xml', canAddProperty: true})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced webhcat-site', displayName: 'Custom webhcat-site.xml', siteFileName: 'webhcat-site.xml', canAddProperty: true})
+ ]);
+ break;
case 'HBASE':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'HBASE_MASTER', displayName: 'HBase Master'}),
App.ServiceConfigCategory.create({ name: 'HBASE_REGIONSERVER', displayName: 'RegionServer'}),
App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedHbaseSite', displayName: 'Custom hbase-site.xml', siteFileName: 'hbase-site.xml', canAddProperty: true}),
- App.ServiceConfigCategory.create({ name: 'AdvancedHbaseLog4j', displayName: 'Custom log4j.properties', siteFileName: 'hbase-log4j.xml', canAddProperty: false})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced hbase-site', displayName: 'Custom hbase-site.xml', siteFileName: 'hbase-site.xml', canAddProperty: true}),
+ App.ServiceConfigCategory.create({ name: 'Advanced hbase-log4j', displayName: 'Custom log4j.properties', siteFileName: 'hbase-log4j.xml', canAddProperty: false})
+ ]);
+ break;
case 'ZOOKEEPER':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'ZOOKEEPER_SERVER', displayName: 'ZooKeeper Server'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedZooLog4j', displayName: 'Custom log4j.properties', siteFileName: 'zookeeper-log4j.xml', canAddProperty: false}),
- App.ServiceConfigCategory.create({ name: 'AdvancedZooCfg', displayName: 'Custom zoo.cfg', siteFileName: 'zoo.cfg', canAddProperty: true})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced zookeeper-log4j', displayName: 'Custom log4j.properties', siteFileName: 'zookeeper-log4j.xml', canAddProperty: false}),
+ App.ServiceConfigCategory.create({ name: 'Advanced zoo.cfg', displayName: 'Custom zoo.cfg', siteFileName: 'zoo.cfg', canAddProperty: true})
+ ]);
+ break;
case 'OOZIE':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'OOZIE_SERVER', displayName: 'Oozie Server'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedOozieSite', displayName: 'Custom oozie-site.xml', siteFileName: 'oozie-site.xml', canAddProperty: true}),
- App.ServiceConfigCategory.create({ name: 'AdvancedOozieLog4j', displayName: 'Custom log4j.properties', siteFileName: 'oozie-log4j.xml', canAddProperty: false})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced oozie-site', displayName: 'Custom oozie-site.xml', siteFileName: 'oozie-site.xml', canAddProperty: true}),
+ App.ServiceConfigCategory.create({ name: 'Advanced oozie-log4j', displayName: 'Custom log4j.properties', siteFileName: 'oozie-log4j.xml', canAddProperty: false})
+ ]);
+ break;
case 'PIG':
- return [
- App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Custom pig.properties', siteFileName: 'pig-properties.xml', canAddProperty: false}),
- App.ServiceConfigCategory.create({ name: 'AdvancedPigLog4j', displayName: 'Custom log4j.properties', siteFileName: 'pig-log4j.xml', canAddProperty: false})
- ];
+ serviceConfigCategories.pushObjects([
+ App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Custom pig.properties', siteFileName: 'pig-properties.xml', canAddProperty: false}),
+ App.ServiceConfigCategory.create({ name: 'Advanced pig-log4j', displayName: 'Custom log4j.properties', siteFileName: 'pig-log4j.xml', canAddProperty: false})
+ ]);
+ break;
case 'FALCON':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'FALCON_SERVER', displayName: 'Falcon Server'}),
App.ServiceConfigCategory.create({ name: 'Falcon - Oozie integration', displayName: 'Falcon - Oozie integration'}),
App.ServiceConfigCategory.create({ name: 'FalconStartupSite', displayName: 'Falcon startup.properties'}),
App.ServiceConfigCategory.create({ name: 'FalconRuntimeSite', displayName: 'Falcon runtime.properties'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedFalconStartupSite', displayName: 'Custom startup.properties', siteFileName: 'falcon-startup.properties.xml', canAddProperty: true}),
- App.ServiceConfigCategory.create({ name: 'AdvancedFalconRuntimeSite', displayName: 'Custom runtime.properties', siteFileName: 'falcon-runtime.properties.xml', canAddProperty: true})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced falcon-startup.properties', displayName: 'Custom startup.properties', siteFileName: 'falcon-startup.properties.xml', canAddProperty: true}),
+ App.ServiceConfigCategory.create({ name: 'Advanced falcon-runtime.properties', displayName: 'Custom runtime.properties', siteFileName: 'falcon-runtime.properties.xml', canAddProperty: true})
+ ]);
+ break;
case 'STORM':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'NIMBUS', displayName: 'Nimbus'}),
App.ServiceConfigCategory.create({ name: 'SUPERVISOR', displayName: 'Supervisor'}),
App.ServiceConfigCategory.create({ name: 'STORM_UI_SERVER', displayName: 'Storm UI Server'}),
@@ -380,24 +380,36 @@ App.StackService.configCategories = function (serviceName) {
App.ServiceConfigCategory.create({ name: 'DRPC_SERVER', displayName: 'DRPC Server'}),
App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedStormSite', displayName: 'Custom storm.yaml', siteFileName: 'storm-site.xml', canAddProperty: true})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced storm-site', displayName: 'Custom storm.yaml', siteFileName: 'storm-site.xml', canAddProperty: true})
+ ]);
+ break;
case 'TEZ':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'}),
- App.ServiceConfigCategory.create({ name: 'AdvancedTezSite', displayName: 'Custom tez-site.xml', siteFileName: 'tez-site.xml', canAddProperty: true})
- ];
+ App.ServiceConfigCategory.create({ name: 'Advanced tez-site', displayName: 'Custom tez-site.xml', siteFileName: 'tez-site.xml', canAddProperty: true})
+ ]);
+ break;
case 'FLUME':
- return [
+ serviceConfigCategories.pushObjects([
App.ServiceConfigCategory.create({ name: 'FLUME_HANDLER', displayName: 'flume.conf', siteFileName: 'flume-conf', canAddProperty: false})
- ];
+ ]);
+ break;
case 'HCATALOG':
- return [];
+ break;
default:
- return [
- App.ServiceConfigCategory.create({ name: 'General', displayName: 'General', canAddProperty: false}),
- App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced', canAddProperty: false})
- ];
+ serviceConfigCategories.pushObjects([
+ App.ServiceConfigCategory.create({ name: 'General', displayName: 'General'}),
+ App.ServiceConfigCategory.create({ name: 'Advanced', displayName: 'Advanced'})
+ ]);
+ var configTypes = Object.keys(this.get('configTypes')).without('core-site').without('global');
+ configTypes.forEach(function (type) {
+ var displayName = 'Custom ' + type;
+ var canAddProperty = !type.endsWith('-log4j');
+ var siteFileName = type + '.xml';
+ serviceConfigCategories.pushObject(App.ServiceConfigCategory.create({ name: 'Advanced ' + type, displayName: displayName, siteFileName: siteFileName,
+ canAddProperty: canAddProperty}));
+ }, this);
}
+ return serviceConfigCategories;
};
http://git-wip-us.apache.org/repos/asf/ambari/blob/8e299351/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 3372770..226f839 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -163,6 +163,42 @@ App.config = Em.Object.create({
//categories which contain custom configs
categoriesWithCustom: ['CapacityScheduler'],
+
+ /**
+ * Create array of service properties for Log4j files
+ * @returns {Array}
+ */
+ createLog4jContent: function () {
+ var services = App.StackService.find();
+ var contentProperties = [];
+ services.forEach(function (service) {
+ if (service.get('configTypes')) {
+ Object.keys(service.get('configTypes')).forEach(function (type) {
+ if (type.endsWith('-log4j')) {
+ var property = {
+ "id": "site property",
+ "name": "content",
+ "displayName": "content",
+ "value": "",
+ "defaultValue": "",
+ "description": "log4j properties",
+ "displayType": "content",
+ "isOverridable": true,
+ "isRequired": false,
+ "isVisible": true,
+ "showLabel": false,
+ "serviceName": service.get('serviceName'),
+ "filename": type + '.xml',
+ "category": "Advanced " + type
+ };
+ contentProperties.pushObject(property);
+ }
+ }, this);
+ }
+ }, this);
+ return contentProperties;
+ },
+
//configs with these filenames go to appropriate category not in Advanced
customFileNames: function () {
var customFiles = ['flume-conf.xml'];
@@ -296,7 +332,8 @@ App.config = Em.Object.create({
mergePreDefinedWithLoaded: function (configGroups, advancedConfigs, tags, serviceName) {
var configs = [];
var globalConfigs = [];
- var preDefinedConfigs = this.get('preDefinedGlobalProperties').concat(this.get('preDefinedSiteProperties'));
+ var log4jContentProperties = this.createLog4jContent();
+ var preDefinedConfigs = this.get('preDefinedGlobalProperties').concat(this.get('preDefinedSiteProperties')).concat(log4jContentProperties);
var mappingConfigs = [];
var filenameExceptions = this.get('filenameExceptions');
var selectedServiceNames = App.Service.find().mapProperty('serviceName');
@@ -447,8 +484,10 @@ App.config = Em.Object.create({
globalConfigs = globalConfigs.without(_global);
}
}, this);
-
- this.get('preDefinedSiteProperties').mapProperty('name').forEach(function (name) {
+ var preDefinedSiteProperties = this.get('preDefinedSiteProperties').mapProperty('name');
+ var log4jContentProperties = this.createLog4jContent().mapProperty('name');
+ var siteProperties = preDefinedSiteProperties.concat(log4jContentProperties);
+ siteProperties.forEach(function (name) {
var _site = siteConfigs.filterProperty('name', name);
if (_site.length == 1) {
siteStart.push(_site[0]);
@@ -477,7 +516,8 @@ App.config = Em.Object.create({
*/
mergePreDefinedWithStored: function (storedConfigs, advancedConfigs, selectedServiceNames) {
var mergedConfigs = [];
- var preDefinedConfigs = this.get('preDefinedGlobalProperties').concat(this.get('preDefinedSiteProperties'));
+ var log4jContentProperties = this.createLog4jContent();
+ var preDefinedConfigs = this.get('preDefinedGlobalProperties').concat(this.get('preDefinedSiteProperties')).concat(log4jContentProperties);
storedConfigs = (storedConfigs) ? storedConfigs : [];
http://git-wip-us.apache.org/repos/asf/ambari/blob/8e299351/ambari-web/test/data/HDP2/site_properties_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/data/HDP2/site_properties_test.js b/ambari-web/test/data/HDP2/site_properties_test.js
index ae658fd..0336f92 100644
--- a/ambari-web/test/data/HDP2/site_properties_test.js
+++ b/ambari-web/test/data/HDP2/site_properties_test.js
@@ -22,12 +22,6 @@ var siteProperties = require('data/HDP2/site_properties').configProperties;
describe('hdp2SiteProperties', function () {
-
- //@TODO: log4j propeties should not be a part of site properties file. A separate file should address this logic. site_properties.js should be used only to provide ui attributes to existing stack properties
- //Exclude log4j properties from unit tests for now
- siteProperties = siteProperties.filter(function(item, index){
- return !(item.filename && item.filename.endsWith('log4j.xml'));
- });
// No site properties should be made invisible
siteProperties.forEach(function(siteProperty){
it('Check invisible attribute of "' + siteProperty.name + '"' + '. It should not be defined ', function () {