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 2013/12/07 02:23:23 UTC

[1/3] AMBARI-3755. Config Refactor: Installer wizard should not save global configuration not used by agent. (jaimin)

Updated Branches:
  refs/heads/trunk ce5541422 -> 5100bb26b


http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index a418c2a..990a5dd 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -64,28 +64,28 @@ App.config = Em.Object.create({
       return self.xmlEscapeMap[s];
     });
   },
-  preDefinedServiceConfigs: function(){
+  preDefinedServiceConfigs: function () {
     var configs = this.get('preDefinedGlobalProperties');
     var services = [];
-    $.extend(true, [], require('data/service_configs')).forEach(function(service){
+    $.extend(true, [], require('data/service_configs')).forEach(function (service) {
       service.configs = configs.filterProperty('serviceName', service.serviceName);
       services.push(service);
     });
     return services;
   }.property('preDefinedGlobalProperties'),
-  configMapping: function() {
-      if (App.get('isHadoop2Stack')) {
-        return $.extend(true, [],require('data/HDP2/config_mapping'));
-      }
-    return $.extend(true, [],require('data/config_mapping'));
+  configMapping: function () {
+    if (App.get('isHadoop2Stack')) {
+      return $.extend(true, [], require('data/HDP2/config_mapping'));
+    }
+    return $.extend(true, [], require('data/config_mapping'));
   }.property('App.isHadoop2Stack'),
-  preDefinedGlobalProperties: function() {
+  preDefinedGlobalProperties: function () {
     if (App.get('isHadoop2Stack')) {
       return $.extend(true, [], require('data/HDP2/global_properties').configProperties);
     }
     return $.extend(true, [], require('data/global_properties').configProperties);
   }.property('App.isHadoop2Stack'),
-  preDefinedSiteProperties: function() {
+  preDefinedSiteProperties: function () {
     if (App.get('isHadoop2Stack')) {
       return $.extend(true, [], require('data/HDP2/site_properties').configProperties);
     }
@@ -100,9 +100,9 @@ App.config = Em.Object.create({
   //categories which contain custom configs
   categoriesWithCustom: ['CapacityScheduler'],
   //configs with these filenames go to appropriate category not in Advanced
-  customFileNames: function() {
+  customFileNames: function () {
     if (App.supports.capacitySchedulerUi) {
-      if(App.get('isHadoop2Stack')){
+      if (App.get('isHadoop2Stack')) {
         return ['capacity-scheduler.xml'];
       }
       return ['capacity-scheduler.xml', 'mapred-queue-acls.xml'];
@@ -146,12 +146,12 @@ App.config = Em.Object.create({
 
   /**
    * Array of global "service/desired_tag/actual_tag" strings which
-   * indicate different configurations. We cache these so that 
+   * indicate different configurations. We cache these so that
    * we dont have to recalculate if two tags are difference.
    */
-  differentGlobalTagsCache:[],
-  
-  identifyCategory: function(config){
+  differentGlobalTagsCache: [],
+
+  identifyCategory: function (config) {
     var category = null;
     var serviceConfigMetaData = this.get('preDefinedServiceConfigs').findProperty('serviceName', config.serviceName);
     if (serviceConfigMetaData) {
@@ -169,7 +169,7 @@ App.config = Em.Object.create({
    * checkbox and digital which values with 'm' at the end
    * @param config
    */
-  handleSpecialProperties: function(config){
+  handleSpecialProperties: function (config) {
     if (config.displayType === 'int' && /\d+m$/.test(config.value)) {
       config.value = config.value.slice(0, config.value.length - 1);
       config.defaultValue = config.value;
@@ -185,12 +185,12 @@ App.config = Em.Object.create({
    * @param isAdvanced
    * @param advancedConfigs
    */
-  calculateConfigProperties: function(config, isAdvanced, advancedConfigs){
+  calculateConfigProperties: function (config, isAdvanced, advancedConfigs) {
     if (!isAdvanced || this.get('customFileNames').contains(config.filename)) {
       var categoryMetaData = this.identifyCategory(config);
       if (categoryMetaData != null) {
         config.category = categoryMetaData.get('name');
-        if(!isAdvanced) config.isUserProperty = true;
+        if (!isAdvanced) config.isUserProperty = true;
       }
     } else {
       config.category = config.category ? config.category : 'Advanced';
@@ -202,7 +202,7 @@ App.config = Em.Object.create({
   capacitySchedulerFilter: function () {
     var yarnRegex = /^yarn\.scheduler\.capacity\.root\.(?!unfunded)([a-z]([\_\-a-z0-9]{0,50}))\.(acl_administer_jobs|acl_submit_jobs|state|user-limit-factor|maximum-capacity|capacity)$/i;
     var self = this;
-    if(App.get('isHadoop2Stack')){
+    if (App.get('isHadoop2Stack')) {
       return function (_config) {
         return (yarnRegex.test(_config.name));
       }
@@ -230,7 +230,6 @@ App.config = Em.Object.create({
     var globalConfigs = [];
     var preDefinedConfigs = this.get('preDefinedGlobalProperties').concat(this.get('preDefinedSiteProperties'));
     var mappingConfigs = [];
-
     tags.forEach(function (_tag) {
       var isAdvanced = null;
       var properties = configGroups.filter(function (serviceConfigProperties) {
@@ -252,20 +251,12 @@ App.config = Em.Object.create({
         });
 
         if (configsPropertyDef) {
-          serviceConfigObj.displayType = configsPropertyDef.displayType;
-          serviceConfigObj.isRequired = (configsPropertyDef.isRequired !== undefined) ? configsPropertyDef.isRequired : true;
-          serviceConfigObj.isReconfigurable = (configsPropertyDef.isReconfigurable !== undefined) ? configsPropertyDef.isReconfigurable : true;
-          serviceConfigObj.isVisible = (configsPropertyDef.isVisible !== undefined) ? configsPropertyDef.isVisible : true;
-          serviceConfigObj.unit = (configsPropertyDef.unit !== undefined) ? configsPropertyDef.unit : undefined;
-          serviceConfigObj.description = (configsPropertyDef.description !== undefined) ? configsPropertyDef.description : undefined;
-          serviceConfigObj.isOverridable = configsPropertyDef.isOverridable === undefined ? true : configsPropertyDef.isOverridable;
-          serviceConfigObj.serviceName = configsPropertyDef ? configsPropertyDef.serviceName : null;
-          serviceConfigObj.index = configsPropertyDef.index;
-          serviceConfigObj.isSecureConfig = configsPropertyDef.isSecureConfig === undefined ? false : configsPropertyDef.isSecureConfig;
-          serviceConfigObj.belongsToService = configsPropertyDef.belongsToService;
-          serviceConfigObj.category = configsPropertyDef.category;
+          this.setServiceConfigUiAttributes(serviceConfigObj, configsPropertyDef);
         }
         if (_tag.siteName === 'global') {
+          if (configsPropertyDef.isRequiredByAgent === false) {
+            continue;
+          }
           if (configsPropertyDef) {
             this.handleSpecialProperties(serviceConfigObj);
           } else {
@@ -295,34 +286,55 @@ App.config = Em.Object.create({
       mappingConfigs: mappingConfigs
     }
   },
+
+  /**
+   * @param serviceConfigObj : Object
+   * @param configsPropertyDef : Object
+   */
+  setServiceConfigUiAttributes: function (serviceConfigObj, configsPropertyDef) {
+    serviceConfigObj.displayType = configsPropertyDef.displayType;
+    serviceConfigObj.isRequired = (configsPropertyDef.isRequired !== undefined) ? configsPropertyDef.isRequired : true;
+    serviceConfigObj.isRequiredByAgent = (configsPropertyDef.isRequiredByAgent !== undefined) ? configsPropertyDef.isRequiredByAgent : true;
+    serviceConfigObj.isReconfigurable = (configsPropertyDef.isReconfigurable !== undefined) ? configsPropertyDef.isReconfigurable : true;
+    serviceConfigObj.isVisible = (configsPropertyDef.isVisible !== undefined) ? configsPropertyDef.isVisible : true;
+    serviceConfigObj.unit = (configsPropertyDef.unit !== undefined) ? configsPropertyDef.unit : undefined;
+    serviceConfigObj.description = (configsPropertyDef.description !== undefined) ? configsPropertyDef.description : undefined;
+    serviceConfigObj.isOverridable = configsPropertyDef.isOverridable === undefined ? true : configsPropertyDef.isOverridable;
+    serviceConfigObj.serviceName = configsPropertyDef ? configsPropertyDef.serviceName : null;
+    serviceConfigObj.index = configsPropertyDef.index;
+    serviceConfigObj.isSecureConfig = configsPropertyDef.isSecureConfig === undefined ? false : configsPropertyDef.isSecureConfig;
+    serviceConfigObj.belongsToService = configsPropertyDef.belongsToService;
+    serviceConfigObj.category = configsPropertyDef.category;
+  },
+
   /**
    * synchronize order of config properties with order, that on UI side
    * @param configSet
    * @return {Object}
    */
-  syncOrderWithPredefined: function(configSet){
+  syncOrderWithPredefined: function (configSet) {
     var globalConfigs = configSet.globalConfigs,
-        siteConfigs = configSet.configs,
-        globalStart = [],
-        siteStart = [];
+      siteConfigs = configSet.configs,
+      globalStart = [],
+      siteStart = [];
 
-    this.get('preDefinedGlobalProperties').mapProperty('name').forEach(function(name){
+    this.get('preDefinedGlobalProperties').mapProperty('name').forEach(function (name) {
       var _global = globalConfigs.findProperty('name', name);
-      if(_global){
+      if (_global) {
         globalStart.push(_global);
         globalConfigs = globalConfigs.without(_global);
       }
     }, this);
 
-    this.get('preDefinedSiteProperties').mapProperty('name').forEach(function(name){
+    this.get('preDefinedSiteProperties').mapProperty('name').forEach(function (name) {
       var _site = siteConfigs.findProperty('name', name);
-      if(_site){
+      if (_site) {
         siteStart.push(_site);
         siteConfigs = siteConfigs.without(_site);
       }
     }, this);
 
-    var alphabeticalSort = function(a, b){
+    var alphabeticalSort = function (a, b) {
       if (a.name < b.name) return -1;
       if (a.name > b.name) return 1;
       return 0;
@@ -413,7 +425,7 @@ App.config = Em.Object.create({
       if (_config) {
         if (this.get('configMapping').computed().someProperty('name', _config.name)) {
         } else if (!(configsToVerifying.someProperty('name', _config.name))) {
-          if(this.get('customFileNames').contains(_config.filename)){
+          if (this.get('customFileNames').contains(_config.filename)) {
             categoryMetaData = this.identifyCategory(_config);
             if (categoryMetaData != null) {
               configCategory = categoryMetaData.get('name');
@@ -445,7 +457,7 @@ App.config = Em.Object.create({
     var stored = configs.filter(function (_config) {
       return this.get('categoriesWithCustom').contains(_config.category);
     }, this);
-    if(App.supports.capacitySchedulerUi){
+    if (App.supports.capacitySchedulerUi) {
       var queueProperties = stored.filter(this.get('capacitySchedulerFilter'));
       if (queueProperties.length) {
         queueProperties.setEach('isQueue', true);
@@ -454,8 +466,10 @@ App.config = Em.Object.create({
   },
 
   miscConfigVisibleProperty: function (configs, serviceToShow) {
-    configs.forEach(function(item) {
-      item.set("isVisible", item.belongsToService.some(function(cur){return serviceToShow.contains(cur)}));
+    configs.forEach(function (item) {
+      item.set("isVisible", item.belongsToService.some(function (cur) {
+        return serviceToShow.contains(cur)
+      }));
     });
     return configs;
   },
@@ -505,10 +519,10 @@ App.config = Em.Object.create({
       // Use calculated default values for some configs
       var recommendedDefaults = {};
       if (!storedConfigs && service.defaultsProviders) {
-        service.defaultsProviders.forEach(function(defaultsProvider) {
+        service.defaultsProviders.forEach(function (defaultsProvider) {
           var defaults = defaultsProvider.getDefaults(localDB);
-          for(var name in defaults) {
-        	recommendedDefaults[name] = defaults[name];
+          for (var name in defaults) {
+            recommendedDefaults[name] = defaults[name];
             var config = configsByService.findProperty('name', name);
             if (config) {
               config.set('value', defaults[name]);
@@ -518,10 +532,10 @@ App.config = Em.Object.create({
         });
       }
       if (service.configsValidator) {
-    	service.configsValidator.set('recommendedDefaults', recommendedDefaults);
-    	var validators = service.configsValidator.get('configValidators');
-    	for (var validatorName in validators) {
-        var c = configsByService.findProperty('name', validatorName);
+        service.configsValidator.set('recommendedDefaults', recommendedDefaults);
+        var validators = service.configsValidator.get('configValidators');
+        for (var validatorName in validators) {
+          var c = configsByService.findProperty('name', validatorName);
           if (c) {
             c.set('serviceValidator', service.configsValidator);
           }
@@ -534,13 +548,13 @@ App.config = Em.Object.create({
     return renderedServiceConfigs;
   },
   /**
-  Takes care of the "dynamic defaults" for the HCFS configs.  Sets
-  some of the config defaults to previously user-entered data.
-  **/
+   Takes care of the "dynamic defaults" for the HCFS configs.  Sets
+   some of the config defaults to previously user-entered data.
+   **/
   tweakDynamicDefaults: function (localDB, serviceConfigProperty, config) {
     console.log("Step7: Tweaking Dynamic defaults");
     var firstHost = null;
-    for(var host in localDB.hosts) {
+    for (var host in localDB.hosts) {
       firstHost = host;
       break;
     }
@@ -595,7 +609,7 @@ App.config = Em.Object.create({
     serviceConfig.configCategories.filterProperty('isCustomView', true).forEach(function (category) {
       switch (category.name) {
         case 'CapacityScheduler':
-          if(App.supports.capacitySchedulerUi){
+          if (App.supports.capacitySchedulerUi) {
             category.set('customView', App.ServiceConfigCapacityScheduler);
           } else {
             category.set('isCustomView', false);
@@ -702,14 +716,14 @@ App.config = Em.Object.create({
     }
     return globalPropertyToServicesMap;
   },
-  
+
   loadGlobalPropertyToServicesMapSuccess: function (data) {
     globalPropertyToServicesMap = {};
-    if(data.items!=null){
-      data.items.forEach(function(service){
-        service.configurations.forEach(function(config){
-          if("global.xml" === config.StackConfigurations.type){
-            if(!(config.StackConfigurations.property_name in globalPropertyToServicesMap)){
+    if (data.items != null) {
+      data.items.forEach(function (service) {
+        service.configurations.forEach(function (config) {
+          if ("global.xml" === config.StackConfigurations.type) {
+            if (!(config.StackConfigurations.property_name in globalPropertyToServicesMap)) {
               globalPropertyToServicesMap[config.StackConfigurations.property_name] = [];
             }
             globalPropertyToServicesMap[config.StackConfigurations.property_name].push(service.StackServices.service_name);
@@ -718,7 +732,7 @@ App.config = Em.Object.create({
       });
     }
   },
-  
+
   /**
    * Hosts can override service configurations per property. This method GETs
    * the overriden configurations and sets only the changed properties into
@@ -877,19 +891,19 @@ App.config = Em.Object.create({
    * @param filename
    * @return {*}
    */
-  fileConfigsIntoTextarea: function(configs, filename){
+  fileConfigsIntoTextarea: function (configs, filename) {
     var fileConfigs = configs.filterProperty('filename', filename);
     var value = '';
     var defaultValue = '';
     var complexConfig = this.get('complexConfigs').findProperty('filename', filename);
-    if(complexConfig){
-      fileConfigs.forEach(function(_config){
+    if (complexConfig) {
+      fileConfigs.forEach(function (_config) {
         value += _config.name + '=' + _config.value + '\n';
         defaultValue += _config.name + '=' + _config.defaultValue + '\n';
       }, this);
       complexConfig.value = value;
       complexConfig.defaultValue = defaultValue;
-      configs = configs.filter(function(_config){
+      configs = configs.filter(function (_config) {
         return _config.filename !== filename;
       });
       configs.push(complexConfig);
@@ -904,7 +918,7 @@ App.config = Em.Object.create({
    * @param filename
    * @return {*}
    */
-  textareaIntoFileConfigs: function(configs, filename){
+  textareaIntoFileConfigs: function (configs, filename) {
     var complexConfigName = this.get('complexConfigs').findProperty('filename', filename).name;
     var configsTextarea = configs.findProperty('name', complexConfigName);
     if (configsTextarea) {
@@ -940,12 +954,12 @@ App.config = Em.Object.create({
    * @param property
    * @returns {*}
    */
-  trimProperty: function(property, isEmberObject){
+  trimProperty: function (property, isEmberObject) {
     var displayType = (isEmberObject) ? property.get('displayType') : property.displayType;
     var value = (isEmberObject) ? property.get('value') : property.value;
     var name = (isEmberObject) ? property.get('name') : property.name;
     var rez;
-    switch (displayType){
+    switch (displayType) {
       case 'directories':
       case 'directory':
         rez = value.trim().split(/\s+/g).join(',');
@@ -956,7 +970,7 @@ App.config = Em.Object.create({
       case 'password':
         break;
       case 'advanced':
-        if(name == 'javax.jdo.option.ConnectionURL' || name == 'oozie.service.JPAService.jdbc.url') {
+        if (name == 'javax.jdo.option.ConnectionURL' || name == 'oozie.service.JPAService.jdbc.url') {
           rez = value.trim();
         }
       default:
@@ -965,7 +979,7 @@ App.config = Em.Object.create({
     return ((rez == '') || (rez == undefined)) ? value : rez;
   },
 
-  OnNnHAHideSnn: function(ServiceConfig) {
+  OnNnHAHideSnn: function (ServiceConfig) {
     var configCategories = ServiceConfig.get('configCategories');
     var snCategory = configCategories.findProperty('name', 'SNameNode');
     var activeNn = App.HDFSService.find('HDFS').get('activeNameNode.hostName');
@@ -1289,7 +1303,7 @@ App.config = Em.Object.create({
 
   /**
    * Gets all the configuration-groups for a host.
-   * 
+   *
    * @param hostName
    *          (string) host name used to register
    * @return Array of App.ConfigGroups

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/utils/helper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/helper.js b/ambari-web/app/utils/helper.js
index 79a665f..bb6c20d 100644
--- a/ambari-web/app/utils/helper.js
+++ b/ambari-web/app/utils/helper.js
@@ -130,6 +130,10 @@ String.prototype.highlight = function (words, highlightTemplate) {
   return self;
 };
 
+Array.prototype.move = function(from, to) {
+  this.splice(to, 0, this.splice(from, 1)[0]);
+};
+
 Number.prototype.toDaysHoursMinutes = function () {
   var formatted = {},
     dateDiff = this,

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/views/wizard/controls_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/wizard/controls_view.js b/ambari-web/app/views/wizard/controls_view.js
index 9651c04..63f8e20 100644
--- a/ambari-web/app/views/wizard/controls_view.js
+++ b/ambari-web/app/views/wizard/controls_view.js
@@ -243,7 +243,7 @@ App.ServiceConfigRadioButtons = Ember.View.extend({
   databaseName: function () {
     switch (this.get('serviceConfig.serviceName')) {
       case 'HIVE':
-        return this.get('categoryConfigsAll').findProperty('name', 'hive_database_name').get('value');
+        return this.get('categoryConfigsAll').findProperty('name', 'ambari.hive.db.schema.name').get('value');
       case 'OOZIE':
         return this.get('categoryConfigsAll').findProperty('name', 'oozie.db.schema.name').get('value');
       default:


[3/3] git commit: AMBARI-3755. Config Refactor: Installer wizard should not save global configuration not used by agent. (jaimin)

Posted by ja...@apache.org.
AMBARI-3755. Config Refactor: Installer wizard should not save global configuration not used by agent. (jaimin)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/5100bb26
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/5100bb26
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/5100bb26

Branch: refs/heads/trunk
Commit: 5100bb26ba767d145a9d0d9cd603ec44d6d2557f
Parents: ce55414
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Fri Dec 6 17:20:41 2013 -0800
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Fri Dec 6 17:20:48 2013 -0800

----------------------------------------------------------------------
 .../services/HDFS/configuration/hdfs-site.xml   | 398 +++++-----
 .../services/HIVE/configuration/hive-site.xml   |  14 +-
 .../MAPREDUCE/configuration/mapred-site.xml     | 505 ++++++------
 .../services/HDFS/configuration/hdfs-site.xml   |  26 +-
 .../services/HIVE/configuration/hive-site.xml   |   6 +
 .../MAPREDUCE/configuration/mapred-site.xml     |  11 +-
 .../services/HDFS/configuration/hdfs-site.xml   |  26 +-
 .../services/HIVE/configuration/hive-site.xml   |   7 +
 .../services/HDFS/configuration/hdfs-site.xml   | 326 ++++----
 .../services/HIVE/configuration/hive-site.xml   |  17 +-
 .../main/admin/security/add/step4.js            |   6 -
 .../controllers/main/admin/security/disable.js  |   8 +-
 .../controllers/main/service/info/configs.js    |   2 +-
 ambari-web/app/controllers/wizard.js            |   3 +-
 .../app/controllers/wizard/step8_controller.js  |  15 +-
 ambari-web/app/data/HDP2/config_mapping.js      |  15 -
 ambari-web/app/data/HDP2/global_properties.js   | 275 +------
 ambari-web/app/data/HDP2/secure_mapping.js      |   8 +-
 ambari-web/app/data/HDP2/site_properties.js     |  14 +
 ambari-web/app/data/config_mapping.js           |  23 -
 ambari-web/app/data/global_properties.js        | 775 +++----------------
 ambari-web/app/data/secure_mapping.js           |   8 +-
 ambari-web/app/data/site_properties.js          |  26 +
 ambari-web/app/models/service_config.js         |   1 +
 ambari-web/app/utils/config.js                  | 162 ++--
 ambari-web/app/utils/helper.js                  |   4 +
 ambari-web/app/views/wizard/controls_view.js    |   2 +-
 27 files changed, 1007 insertions(+), 1676 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hdfs-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hdfs-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hdfs-site.xml
index 1a0b933..1fc6c59 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hdfs-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/configuration/hdfs-site.xml
@@ -22,7 +22,7 @@
 
 <configuration>
 
-<!-- file system properties -->
+  <!-- file system properties -->
 
   <property>
     <name>dfs.name.dir</name>
@@ -49,7 +49,7 @@
     <final>true</final>
   </property>
 
- <property>
+  <property>
     <name>dfs.datanode.socket.write.timeout</name>
     <value>0</value>
     <description>DFS Client write socket timeout</description>
@@ -66,7 +66,7 @@
     <name>dfs.block.local-path-access.user</name>
     <value>hbase</value>
     <description>the user who is allowed to perform short
-    circuit reads.
+      circuit reads.
     </description>
     <final>true</final>
   </property>
@@ -75,11 +75,11 @@
     <name>dfs.data.dir</name>
     <value>/hadoop/hdfs/data</value>
     <description>Determines where on the local filesystem an DFS data node
-  should store its blocks.  If this is a comma-delimited
-  list of directories, then data will be stored in all named
-  directories, typically on different devices.
-  Directories that do not exist are ignored.
-  </description>
+      should store its blocks.  If this is a comma-delimited
+      list of directories, then data will be stored in all named
+      directories, typically on different devices.
+      Directories that do not exist are ignored.
+    </description>
     <final>true</final>
   </property>
 
@@ -87,32 +87,32 @@
     <name>dfs.hosts.exclude</name>
     <value>/etc/hadoop/conf/dfs.exclude</value>
     <description>Names a file that contains a list of hosts that are
-    not permitted to connect to the namenode.  The full pathname of the
-    file must be specified.  If the value is empty, no hosts are
-    excluded.</description>
+      not permitted to connect to the namenode.  The full pathname of the
+      file must be specified.  If the value is empty, no hosts are
+      excluded.</description>
   </property>
 
   <property>
     <name>dfs.hosts</name>
     <value>/etc/hadoop/conf/dfs.include</value>
     <description>Names a file that contains a list of hosts that are
-    permitted to connect to the namenode. The full pathname of the file
-    must be specified.  If the value is empty, all hosts are
-    permitted.</description>
+      permitted to connect to the namenode. The full pathname of the file
+      must be specified.  If the value is empty, all hosts are
+      permitted.</description>
   </property>
 
   <property>
     <name>dfs.replication.max</name>
     <value>50</value>
     <description>Maximal block replication.
-  </description>
+    </description>
   </property>
 
   <property>
     <name>dfs.replication</name>
     <value>3</value>
     <description>Default block replication.
-  </description>
+    </description>
   </property>
 
   <property>
@@ -125,21 +125,21 @@
     <name>dfs.safemode.threshold.pct</name>
     <value>1.0f</value>
     <description>
-        Specifies the percentage of blocks that should satisfy
-        the minimal replication requirement defined by dfs.replication.min.
-        Values less than or equal to 0 mean not to start in safe mode.
-        Values greater than 1 will make safe mode permanent.
-        </description>
+      Specifies the percentage of blocks that should satisfy
+      the minimal replication requirement defined by dfs.replication.min.
+      Values less than or equal to 0 mean not to start in safe mode.
+      Values greater than 1 will make safe mode permanent.
+    </description>
   </property>
 
   <property>
     <name>dfs.balance.bandwidthPerSec</name>
     <value>6250000</value>
     <description>
-        Specifies the maximum amount of bandwidth that each datanode
-        can utilize for the balancing purpose in term of
-        the number of bytes per second.
-  </description>
+      Specifies the maximum amount of bandwidth that each datanode
+      can utilize for the balancing purpose in term of
+      the number of bytes per second.
+    </description>
   </property>
 
   <property>
@@ -151,13 +151,35 @@
   </property>
 
   <property>
+    <name>ambari.dfs.datanode.port</name>
+    <value>50010</value>
+    <description>
+      The datanode port for data transfer. This property is effective only if referenced from dfs.datanode.address property.
+    </description>
+  </property>
+
+  <property>
     <name>dfs.datanode.address</name>
-    <value></value>
+    <value>0.0.0.0:${ambari.dfs.datanode.port}</value>
+    <description>
+      The datanode server address and port for data transfer.
+    </description>
+  </property>
+
+  <property>
+    <name>ambari.dfs.datanode.http.port</name>
+    <value>50075</value>
+    <description>
+      The datanode http port. This property is effective only if referenced from dfs.datanode.http.address property.
+    </description>
   </property>
 
   <property>
     <name>dfs.datanode.http.address</name>
-    <value></value>
+    <value>0.0.0.0:${ambari.dfs.datanode.http.port}</value>
+    <description>
+      The datanode http server address and port.
+    </description>
   </property>
 
   <property>
@@ -169,133 +191,133 @@
   <property>
     <name>dfs.http.address</name>
     <value>localhost:50070</value>
-<description>The name of the default file system.  Either the
-literal string "local" or a host:port for NDFS.</description>
-<final>true</final>
-</property>
-
-<property>
-<name>dfs.datanode.du.reserved</name>
-<!-- cluster variant -->
-<value>1073741824</value>
-<description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
-</description>
-</property>
-
-<property>
-<name>dfs.datanode.ipc.address</name>
-<value>0.0.0.0:8010</value>
-<description>
-The datanode ipc server address and port.
-If the port is 0 then the server will start on a free port.
-</description>
-</property>
-
-<property>
-<name>dfs.blockreport.initialDelay</name>
-<value>120</value>
-<description>Delay for first block report in seconds.</description>
-</property>
-
-<property>
-<name>dfs.datanode.du.pct</name>
-<value>0.85f</value>
-<description>When calculating remaining space, only use this percentage of the real available space
-</description>
-</property>
-
-<property>
-<name>dfs.namenode.handler.count</name>
-<value>40</value>
-<description>The number of server threads for the namenode.</description>
-</property>
-
-<property>
-<name>dfs.datanode.max.xcievers</name>
-<value>4096</value>
-<description>PRIVATE CONFIG VARIABLE</description>
-</property>
-
-<!-- Permissions configuration -->
-
-<property>
-<name>dfs.umaskmode</name>
-<value>077</value>
-<description>
-The octal umask used when creating files and directories.
-</description>
-</property>
-
-<property>
-<name>dfs.web.ugi</name>
-<!-- cluster variant -->
-<value>gopher,gopher</value>
-<description>The user account used by the web interface.
-Syntax: USERNAME,GROUP1,GROUP2, ...
-</description>
-</property>
-
-<property>
-<name>dfs.permissions</name>
-<value>true</value>
-<description>
-If "true", enable permission checking in HDFS.
-If "false", permission checking is turned off,
-but all other behavior is unchanged.
-Switching from one parameter value to the other does not change the mode,
-owner or group of files or directories.
-</description>
-</property>
-
-<property>
-<name>dfs.permissions.supergroup</name>
-<value>hdfs</value>
-<description>The name of the group of super-users.</description>
-</property>
-
-<property>
-<name>dfs.namenode.handler.count</name>
-<value>100</value>
-<description>Added to grow Queue size so that more client connections are allowed</description>
-</property>
-
-<property>
-<name>ipc.server.max.response.size</name>
-<value>5242880</value>
-</property>
-<property>
-<name>dfs.block.access.token.enable</name>
-<value>true</value>
-<description>
-If "true", access tokens are used as capabilities for accessing datanodes.
-If "false", no access tokens are checked on accessing datanodes.
-</description>
-</property>
-
-<property>
-<name>dfs.namenode.kerberos.principal</name>
-<value></value>
-<description>
-Kerberos principal name for the NameNode
-</description>
-</property>
-
-<property>
-<name>dfs.secondary.namenode.kerberos.principal</name>
-<value></value>
+    <description>The name of the default file system.  Either the
+      literal string "local" or a host:port for NDFS.</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.datanode.du.reserved</name>
+    <!-- cluster variant -->
+    <value>1073741824</value>
+    <description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.ipc.address</name>
+    <value>0.0.0.0:8010</value>
     <description>
-        Kerberos principal name for the secondary NameNode.
+      The datanode ipc server address and port.
+      If the port is 0 then the server will start on a free port.
     </description>
   </property>
 
+  <property>
+    <name>dfs.blockreport.initialDelay</name>
+    <value>120</value>
+    <description>Delay for first block report in seconds.</description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.du.pct</name>
+    <value>0.85f</value>
+    <description>When calculating remaining space, only use this percentage of the real available space
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.namenode.handler.count</name>
+    <value>40</value>
+    <description>The number of server threads for the namenode.</description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.max.xcievers</name>
+    <value>4096</value>
+    <description>PRIVATE CONFIG VARIABLE</description>
+  </property>
+
+  <!-- Permissions configuration -->
+
+  <property>
+    <name>dfs.umaskmode</name>
+    <value>077</value>
+    <description>
+      The octal umask used when creating files and directories.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.web.ugi</name>
+    <!-- cluster variant -->
+    <value>gopher,gopher</value>
+    <description>The user account used by the web interface.
+      Syntax: USERNAME,GROUP1,GROUP2, ...
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.permissions</name>
+    <value>true</value>
+    <description>
+      If "true", enable permission checking in HDFS.
+      If "false", permission checking is turned off,
+      but all other behavior is unchanged.
+      Switching from one parameter value to the other does not change the mode,
+      owner or group of files or directories.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.permissions.supergroup</name>
+    <value>hdfs</value>
+    <description>The name of the group of super-users.</description>
+  </property>
+
+  <property>
+    <name>dfs.namenode.handler.count</name>
+    <value>100</value>
+    <description>Added to grow Queue size so that more client connections are allowed</description>
+  </property>
+
+  <property>
+    <name>ipc.server.max.response.size</name>
+    <value>5242880</value>
+  </property>
+  <property>
+    <name>dfs.block.access.token.enable</name>
+    <value>true</value>
+    <description>
+      If "true", access tokens are used as capabilities for accessing datanodes.
+      If "false", no access tokens are checked on accessing datanodes.
+    </description>
+  </property>
 
-<!--
-  This is KRB DOMAIN specific. The FQDN of the namenode has to be mentioned.
--->
+  <property>
+    <name>dfs.namenode.kerberos.principal</name>
+    <value></value>
+    <description>
+      Kerberos principal name for the NameNode
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.secondary.namenode.kerberos.principal</name>
+    <value></value>
+    <description>
+      Kerberos principal name for the secondary NameNode.
+    </description>
+  </property>
+
+
+  <!--
+    This is KRB DOMAIN specific. The FQDN of the namenode has to be mentioned.
+  -->
   <property>
     <name>dfs.namenode.kerberos.https.principal</name>
     <value></value>
-     <description>The Kerberos principal for the host that the NameNode runs on.</description>
+    <description>The Kerberos principal for the host that the NameNode runs on.</description>
 
   </property>
 
@@ -341,84 +363,84 @@ Kerberos principal name for the NameNode
   <property>
     <name>dfs.datanode.kerberos.principal</name>
     <value></value>
- <description>
-        The Kerberos principal that the DataNode runs as. "_HOST" is replaced by the real host name.
+    <description>
+      The Kerberos principal that the DataNode runs as. "_HOST" is replaced by the real host name.
     </description>
   </property>
 
   <property>
     <name>dfs.namenode.keytab.file</name>
     <value></value>
- <description>
-        Combined keytab file containing the namenode service and host principals.
+    <description>
+      Combined keytab file containing the namenode service and host principals.
     </description>
   </property>
 
   <property>
     <name>dfs.secondary.namenode.keytab.file</name>
     <value></value>
-  <description>
-        Combined keytab file containing the namenode service and host principals.
+    <description>
+      Combined keytab file containing the namenode service and host principals.
     </description>
   </property>
 
   <property>
     <name>dfs.datanode.keytab.file</name>
     <value></value>
- <description>
-        The filename of the keytab file for the DataNode.
+    <description>
+      The filename of the keytab file for the DataNode.
     </description>
   </property>
 
   <property>
     <name>dfs.https.port</name>
     <value>50470</value>
- <description>The https port where namenode binds</description>
+    <description>The https port where namenode binds</description>
 
   </property>
 
   <property>
     <name>dfs.https.address</name>
     <value>localhost:50470</value>
-  <description>The https address where namenode binds</description>
+    <description>The https address where namenode binds</description>
 
   </property>
 
   <property>
     <name>dfs.datanode.data.dir.perm</name>
     <value>750</value>
-<description>The permissions that should be there on dfs.data.dir
-directories. The datanode will not come up if the permissions are
-different on existing dfs.data.dir directories. If the directories
-don't exist, they will be created with this permission.</description>
-  </property>
-
-  <property>
-  <name>dfs.access.time.precision</name>
-  <value>0</value>
-  <description>The access time for HDFS file is precise upto this value.
-               The default value is 1 hour. Setting a value of 0 disables
-               access times for HDFS.
-  </description>
-</property>
-
-<property>
- <name>dfs.cluster.administrators</name>
- <value> hdfs</value>
- <description>ACL for who all can view the default servlets in the HDFS</description>
-</property>
-
-<property>
-  <name>ipc.server.read.threadpool.size</name>
-  <value>5</value>
-  <description></description>
-</property>
-
-<property>
-  <name>dfs.datanode.failed.volumes.tolerated</name>
-  <value>0</value>
-  <description>Number of failed disks datanode would tolerate</description>
-</property>
+    <description>The permissions that should be there on dfs.data.dir
+      directories. The datanode will not come up if the permissions are
+      different on existing dfs.data.dir directories. If the directories
+      don't exist, they will be created with this permission.</description>
+  </property>
+
+  <property>
+    <name>dfs.access.time.precision</name>
+    <value>0</value>
+    <description>The access time for HDFS file is precise upto this value.
+      The default value is 1 hour. Setting a value of 0 disables
+      access times for HDFS.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.cluster.administrators</name>
+    <value> hdfs</value>
+    <description>ACL for who all can view the default servlets in the HDFS</description>
+  </property>
+
+  <property>
+    <name>ipc.server.read.threadpool.size</name>
+    <value>5</value>
+    <description></description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.failed.volumes.tolerated</name>
+    <value>0</value>
+    <description>Number of failed disks datanode would tolerate</description>
+  </property>
 
   <property>
     <name>dfs.namenode.avoid.read.stale.datanode</name>

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-site.xml
index 9d0b168..29ed54e 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/configuration/hive-site.xml
@@ -19,6 +19,12 @@ limitations under the License.
 
 <configuration>
   <property>
+    <name>ambari.hive.db.schema.name</name>
+    <value>hive</value>
+    <description>Database name used as the Hive Metastore</description>
+  </property>
+
+  <property>
     <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc</value>
     <description>JDBC connect string for a JDBC metastore</description>
@@ -52,21 +58,21 @@ limitations under the License.
     <name>hive.metastore.sasl.enabled</name>
     <value></value>
     <description>If true, the metastore thrift interface will be secured with SASL.
-     Clients must authenticate with Kerberos.</description>
+      Clients must authenticate with Kerberos.</description>
   </property>
 
   <property>
     <name>hive.metastore.kerberos.keytab.file</name>
     <value></value>
     <description>The path to the Kerberos Keytab file containing the metastore
-     thrift server's service principal.</description>
+      thrift server's service principal.</description>
   </property>
 
   <property>
     <name>hive.metastore.kerberos.principal</name>
     <value></value>
     <description>The service principal for the metastore thrift server. The special
-    string _HOST will be replaced automatically with the correct host name.</description>
+      string _HOST will be replaced automatically with the correct host name.</description>
   </property>
 
   <property>
@@ -109,7 +115,7 @@ limitations under the License.
     <name>hive.security.authorization.manager</name>
     <value>org.apache.hcatalog.security.HdfsAuthorizationProvider</value>
     <description>the hive client authorization manager class name.
-    The user defined authorization class should implement interface org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider.  </description>
+      The user defined authorization class should implement interface org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider.  </description>
   </property>
 
   <property>

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-site.xml
index b49bcbf..4a174f0 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/MAPREDUCE/configuration/mapred-site.xml
@@ -22,7 +22,7 @@
 
 <configuration xmlns:xi="http://www.w3.org/2001/XInclude">
 
-<!-- i/o properties -->
+  <!-- i/o properties -->
 
   <property>
     <name>io.sort.mb</name>
@@ -50,25 +50,25 @@
     <description>No description</description>
   </property>
 
-<!-- map/reduce properties -->
+  <!-- map/reduce properties -->
 
-<property>
-  <name>mapred.tasktracker.tasks.sleeptime-before-sigkill</name>
-  <value>250</value>
-  <description>Normally, this is the amount of time before killing
-  processes, and the recommended-default is 5.000 seconds - a value of
-  5000 here.  In this case, we are using it solely to blast tasks before
-  killing them, and killing them very quickly (1/4 second) to guarantee
-  that we do not leave VMs around for later jobs.
-  </description>
-</property>
+  <property>
+    <name>mapred.tasktracker.tasks.sleeptime-before-sigkill</name>
+    <value>250</value>
+    <description>Normally, this is the amount of time before killing
+      processes, and the recommended-default is 5.000 seconds - a value of
+      5000 here.  In this case, we are using it solely to blast tasks before
+      killing them, and killing them very quickly (1/4 second) to guarantee
+      that we do not leave VMs around for later jobs.
+    </description>
+  </property>
 
   <property>
     <name>mapred.job.tracker.handler.count</name>
     <value>50</value>
     <description>
-    The number of server threads for the JobTracker. This should be roughly
-    4% of the number of tasktracker nodes.
+      The number of server threads for the JobTracker. This should be roughly
+      4% of the number of tasktracker nodes.
     </description>
   </property>
 
@@ -91,11 +91,10 @@
     <name>mapred.job.tracker.http.address</name>
     <!-- cluster variant -->
     <value>localhost:50030</value>
-    <description>Http address for JobTracker</description>
+    <description>JobTracker host and http port address</description>
     <final>true</final>
   </property>
 
-
   <property>
     <!-- cluster specific -->
     <name>mapred.local.dir</name>
@@ -105,8 +104,8 @@
   </property>
 
   <property>
-  <name>mapreduce.cluster.administrators</name>
-  <value> hadoop</value>
+    <name>mapreduce.cluster.administrators</name>
+    <value> hadoop</value>
   </property>
 
   <property>
@@ -136,14 +135,14 @@
     <name>mapred.map.tasks.speculative.execution</name>
     <value>false</value>
     <description>If true, then multiple instances of some map tasks
-               may be executed in parallel.</description>
+      may be executed in parallel.</description>
   </property>
 
   <property>
     <name>mapred.reduce.tasks.speculative.execution</name>
     <value>false</value>
     <description>If true, then multiple instances of some reduce tasks
-               may be executed in parallel.</description>
+      may be executed in parallel.</description>
   </property>
 
   <property>
@@ -155,29 +154,29 @@
     <name>mapred.inmem.merge.threshold</name>
     <value>1000</value>
     <description>The threshold, in terms of the number of files
-  for the in-memory merge process. When we accumulate threshold number of files
-  we initiate the in-memory merge and spill to disk. A value of 0 or less than
-  0 indicates we want to DON'T have any threshold and instead depend only on
-  the ramfs's memory consumption to trigger the merge.
-  </description>
+      for the in-memory merge process. When we accumulate threshold number of files
+      we initiate the in-memory merge and spill to disk. A value of 0 or less than
+      0 indicates we want to DON'T have any threshold and instead depend only on
+      the ramfs's memory consumption to trigger the merge.
+    </description>
   </property>
 
   <property>
     <name>mapred.job.shuffle.merge.percent</name>
     <value>0.66</value>
     <description>The usage threshold at which an in-memory merge will be
-  initiated, expressed as a percentage of the total memory allocated to
-  storing in-memory map outputs, as defined by
-  mapred.job.shuffle.input.buffer.percent.
-  </description>
+      initiated, expressed as a percentage of the total memory allocated to
+      storing in-memory map outputs, as defined by
+      mapred.job.shuffle.input.buffer.percent.
+    </description>
   </property>
 
   <property>
     <name>mapred.job.shuffle.input.buffer.percent</name>
     <value>0.7</value>
     <description>The percentage of memory to be allocated from the maximum heap
-  size to storing map outputs during the shuffle.
-  </description>
+      size to storing map outputs during the shuffle.
+    </description>
   </property>
 
   <property>
@@ -188,13 +187,13 @@
     </description>
   </property>
 
-<property>
-  <name>mapred.output.compression.type</name>
-  <value>BLOCK</value>
-  <description>If the job outputs are to compressed as SequenceFiles, how should
-               they be compressed? Should be one of NONE, RECORD or BLOCK.
-  </description>
-</property>
+  <property>
+    <name>mapred.output.compression.type</name>
+    <value>BLOCK</value>
+    <description>If the job outputs are to compressed as SequenceFiles, how should
+      they be compressed? Should be one of NONE, RECORD or BLOCK.
+    </description>
+  </property>
 
 
   <property>
@@ -211,7 +210,7 @@
     <name>mapred.jobtracker.restart.recover</name>
     <value>false</value>
     <description>"true" to enable (job) recovery upon restart,
-               "false" to start afresh
+      "false" to start afresh
     </description>
   </property>
 
@@ -219,20 +218,20 @@
     <name>mapred.job.reduce.input.buffer.percent</name>
     <value>0.0</value>
     <description>The percentage of memory- relative to the maximum heap size- to
-  retain map outputs during the reduce. When the shuffle is concluded, any
-  remaining map outputs in memory must consume less than this threshold before
-  the reduce can begin.
-  </description>
+      retain map outputs during the reduce. When the shuffle is concluded, any
+      remaining map outputs in memory must consume less than this threshold before
+      the reduce can begin.
+    </description>
   </property>
 
- <property>
-  <name>mapreduce.reduce.input.limit</name>
-  <value>10737418240</value>
-  <description>The limit on the input size of the reduce. (This value
-  is 10 Gb.)  If the estimated input size of the reduce is greater than
-  this value, job is failed. A value of -1 means that there is no limit
-  set. </description>
-</property>
+  <property>
+    <name>mapreduce.reduce.input.limit</name>
+    <value>10737418240</value>
+    <description>The limit on the input size of the reduce. (This value
+      is 10 Gb.)  If the estimated input size of the reduce is greater than
+      this value, job is failed. A value of -1 means that there is no limit
+      set. </description>
+  </property>
 
 
   <!-- copied from kryptonite configuration -->
@@ -246,9 +245,9 @@
     <name>mapred.task.timeout</name>
     <value>600000</value>
     <description>The number of milliseconds before a task will be
-  terminated if it neither reads an input, writes an output, nor
-  updates its status string.
-  </description>
+      terminated if it neither reads an input, writes an output, nor
+      updates its status string.
+    </description>
   </property>
 
   <property>
@@ -260,9 +259,9 @@
   <property>
     <name>mapred.task.tracker.task-controller</name>
     <value>org.apache.hadoop.mapred.DefaultTaskController</value>
-   <description>
-     TaskController which is used to launch and manage task execution.
-  </description>
+    <description>
+      TaskController which is used to launch and manage task execution.
+    </description>
   </property>
 
   <property>
@@ -271,10 +270,16 @@
   </property>
 
   <property>
-    <name>mapred.child.java.opts</name>
-    <value></value>
+    <name>ambari.mapred.child.java.opts.memory</name>
+    <value>768</value>
 
-    <description>No description</description>
+    <description>Java options Memory for the TaskTracker child processes</description>
+  </property>
+
+  <property>
+    <name>mapred.child.java.opts</name>
+    <value>-server -Xmx${ambari.mapred.child.java.opts.memory}m -Djava.net.preferIPv4Stack=true</value>
+    <description>Java options for the TaskTracker child processes</description>
   </property>
 
   <property>
@@ -289,7 +294,7 @@
     <name>mapred.cluster.reduce.memory.mb</name>
     <value>2048</value>
     <description>
-    The virtual memory size of a single Reduce slot in the MapReduce framework
+      The virtual memory size of a single Reduce slot in the MapReduce framework
     </description>
   </property>
 
@@ -335,137 +340,137 @@
     </description>
   </property>
 
-<property>
-  <name>mapred.hosts.exclude</name>
-  <value>/etc/hadoop/conf/mapred.exclude</value>
-  <description>
-    Names a file that contains the list of hosts that
-    should be excluded by the jobtracker.  If the value is empty, no
-    hosts are excluded.
-  </description>
-</property>
-
-<property>
-  <name>mapred.max.tracker.blacklists</name>
-  <value>16</value>
-  <description>
-    if node is reported blacklisted by 16 successful jobs within timeout-window, it will be graylisted
-  </description>
-</property>
-
-<property>
-  <name>mapred.healthChecker.script.path</name>
-  <value>file:////mapred/jobstatus</value>
-  <description>
-    Directory path to view job status
-  </description>
-</property>
-
-<property>
-  <name>mapred.healthChecker.interval</name>
-  <value>135000</value>
-</property>
-
-<property>
-  <name>mapred.healthChecker.script.timeout</name>
-  <value>60000</value>
-</property>
-
-<property>
-  <name>mapred.job.tracker.persist.jobstatus.active</name>
-  <value>false</value>
-  <description>Indicates if persistency of job status information is
-  active or not.
-  </description>
-</property>
-
-<property>
-  <name>mapred.job.tracker.persist.jobstatus.hours</name>
-  <value>1</value>
-  <description>The number of hours job status information is persisted in DFS.
-    The job status information will be available after it drops of the memory
-    queue and between jobtracker restarts. With a zero value the job status
-    information is not persisted at all in DFS.
-  </description>
-</property>
-
-<property>
-  <name>mapred.job.tracker.persist.jobstatus.dir</name>
-  <value>/etc/hadoop/conf/health_check</value>
-  <description>The directory where the job status information is persisted
-    in a file system to be available after it drops of the memory queue and
-    between jobtracker restarts.
-  </description>
-</property>
-
-<property>
-  <name>mapred.jobtracker.retirejob.check</name>
-  <value>10000</value>
-</property>
-
-<property>
-  <name>mapred.jobtracker.retirejob.interval</name>
-  <value>21600000</value>
-</property>
-
-<property>
-  <name>mapred.job.tracker.history.completed.location</name>
-  <value>/mapred/history/done</value>
-  <description>No description</description>
-</property>
-
-<property>
-  <name>mapred.task.maxvmem</name>
-  <value></value>
-  <final>true</final>
-   <description>No description</description>
-</property>
-
-<property>
-  <name>mapred.jobtracker.maxtasks.per.job</name>
-  <value>-1</value>
-  <final>true</final>
-  <description>The maximum number of tasks for a single job.
-  A value of -1 indicates that there is no maximum.  </description>
-</property>
-
-<property>
-  <name>mapreduce.fileoutputcommitter.marksuccessfuljobs</name>
-  <value>false</value>
-</property>
-
-<property>
-  <name>mapred.userlog.retain.hours</name>
-  <value>24</value>
-  <description>
-    The maximum time, in hours, for which the user-logs are to be retained after the job completion.
-  </description>
-</property>
-
-<property>
-  <name>mapred.job.reuse.jvm.num.tasks</name>
-  <value>1</value>
-  <description>
-    How many tasks to run per jvm. If set to -1, there is no limit
-  </description>
-  <final>true</final>
-</property>
-
-<property>
-  <name>mapreduce.jobtracker.kerberos.principal</name>
-  <value></value>
-  <description>
+  <property>
+    <name>mapred.hosts.exclude</name>
+    <value>/etc/hadoop/conf/mapred.exclude</value>
+    <description>
+      Names a file that contains the list of hosts that
+      should be excluded by the jobtracker.  If the value is empty, no
+      hosts are excluded.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.max.tracker.blacklists</name>
+    <value>16</value>
+    <description>
+      if node is reported blacklisted by 16 successful jobs within timeout-window, it will be graylisted
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.healthChecker.script.path</name>
+    <value>file:////mapred/jobstatus</value>
+    <description>
+      Directory path to view job status
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.healthChecker.interval</name>
+    <value>135000</value>
+  </property>
+
+  <property>
+    <name>mapred.healthChecker.script.timeout</name>
+    <value>60000</value>
+  </property>
+
+  <property>
+    <name>mapred.job.tracker.persist.jobstatus.active</name>
+    <value>false</value>
+    <description>Indicates if persistency of job status information is
+      active or not.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.job.tracker.persist.jobstatus.hours</name>
+    <value>1</value>
+    <description>The number of hours job status information is persisted in DFS.
+      The job status information will be available after it drops of the memory
+      queue and between jobtracker restarts. With a zero value the job status
+      information is not persisted at all in DFS.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.job.tracker.persist.jobstatus.dir</name>
+    <value>/etc/hadoop/conf/health_check</value>
+    <description>The directory where the job status information is persisted
+      in a file system to be available after it drops of the memory queue and
+      between jobtracker restarts.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.jobtracker.retirejob.check</name>
+    <value>10000</value>
+  </property>
+
+  <property>
+    <name>mapred.jobtracker.retirejob.interval</name>
+    <value>21600000</value>
+  </property>
+
+  <property>
+    <name>mapred.job.tracker.history.completed.location</name>
+    <value>/mapred/history/done</value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>mapred.task.maxvmem</name>
+    <value></value>
+    <final>true</final>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>mapred.jobtracker.maxtasks.per.job</name>
+    <value>-1</value>
+    <final>true</final>
+    <description>The maximum number of tasks for a single job.
+      A value of -1 indicates that there is no maximum.  </description>
+  </property>
+
+  <property>
+    <name>mapreduce.fileoutputcommitter.marksuccessfuljobs</name>
+    <value>false</value>
+  </property>
+
+  <property>
+    <name>mapred.userlog.retain.hours</name>
+    <value>24</value>
+    <description>
+      The maximum time, in hours, for which the user-logs are to be retained after the job completion.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.job.reuse.jvm.num.tasks</name>
+    <value>1</value>
+    <description>
+      How many tasks to run per jvm. If set to -1, there is no limit
+    </description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>mapreduce.jobtracker.kerberos.principal</name>
+    <value></value>
+    <description>
       JT user name key.
- </description>
-</property>
+    </description>
+  </property>
 
-<property>
-  <name>mapreduce.tasktracker.kerberos.principal</name>
-   <value></value>
-  <description>
-       tt user name key. "_HOST" is replaced by the host name of the task tracker.
-   </description>
-</property>
+  <property>
+    <name>mapreduce.tasktracker.kerberos.principal</name>
+    <value></value>
+    <description>
+      tt user name key. "_HOST" is replaced by the host name of the task tracker.
+    </description>
+  </property>
 
 
   <property>
@@ -475,54 +480,54 @@
   </property>
 
 
- <property>
-   <name>mapreduce.jobtracker.keytab.file</name>
-   <value></value>
-   <description>
-       The keytab for the jobtracker principal.
-   </description>
+  <property>
+    <name>mapreduce.jobtracker.keytab.file</name>
+    <value></value>
+    <description>
+      The keytab for the jobtracker principal.
+    </description>
 
-</property>
+  </property>
 
- <property>
-   <name>mapreduce.tasktracker.keytab.file</name>
-   <value></value>
+  <property>
+    <name>mapreduce.tasktracker.keytab.file</name>
+    <value></value>
     <description>The filename of the keytab for the task tracker</description>
- </property>
+  </property>
 
- <property>
-   <name>mapred.task.tracker.http.address</name>
-   <value></value>
-   <description>Http address for task tracker.</description>
- </property>
+  <property>
+    <name>mapred.task.tracker.http.address</name>
+    <value></value>
+    <description>Http address for task tracker.</description>
+  </property>
 
- <property>
-   <name>mapreduce.jobtracker.staging.root.dir</name>
-   <value>/user</value>
- <description>The Path prefix for where the staging directories should be placed. The next level is always the user's
-   name. It is a path in the default file system.</description>
- </property>
+  <property>
+    <name>mapreduce.jobtracker.staging.root.dir</name>
+    <value>/user</value>
+    <description>The Path prefix for where the staging directories should be placed. The next level is always the user's
+      name. It is a path in the default file system.</description>
+  </property>
 
- <property>
-      <name>mapreduce.tasktracker.group</name>
-      <value>hadoop</value>
-      <description>The group that the task controller uses for accessing the task controller. The mapred user must be a member and users should *not* be members.</description>
+  <property>
+    <name>mapreduce.tasktracker.group</name>
+    <value>hadoop</value>
+    <description>The group that the task controller uses for accessing the task controller. The mapred user must be a member and users should *not* be members.</description>
 
- </property>
+  </property>
 
   <property>
     <name>mapreduce.jobtracker.split.metainfo.maxsize</name>
     <value>50000000</value>
     <final>true</final>
-     <description>If the size of the split metainfo file is larger than this, the JobTracker will fail the job during
-    initialize.
-   </description>
+    <description>If the size of the split metainfo file is larger than this, the JobTracker will fail the job during
+      initialize.
+    </description>
   </property>
   <property>
     <name>mapreduce.history.server.embedded</name>
     <value>false</value>
     <description>Should job history server be embedded within Job tracker
-process</description>
+      process</description>
     <final>true</final>
   </property>
 
@@ -537,38 +542,38 @@ process</description>
   <property>
     <name>mapreduce.jobhistory.kerberos.principal</name>
     <!-- cluster variant -->
-  <value></value>
+    <value></value>
     <description>Job history user name key. (must map to same user as JT
-user)</description>
+      user)</description>
   </property>
 
- <property>
-   <name>mapreduce.jobhistory.keytab.file</name>
+  <property>
+    <name>mapreduce.jobhistory.keytab.file</name>
     <!-- cluster variant -->
-   <value></value>
-   <description>The keytab for the job history server principal.</description>
- </property>
-
-<property>
-  <name>mapred.jobtracker.blacklist.fault-timeout-window</name>
-  <value>180</value>
-  <description>
-    3-hour sliding window (value is in minutes)
-  </description>
-</property>
-
-<property>
-  <name>mapred.jobtracker.blacklist.fault-bucket-width</name>
-  <value>15</value>
-  <description>
-    15-minute bucket size (value is in minutes)
-  </description>
-</property>
-
-<property>
-  <name>mapred.queue.names</name>
-  <value>default</value>
-  <description> Comma separated list of queues configured for this jobtracker.</description>
-</property>
+    <value></value>
+    <description>The keytab for the job history server principal.</description>
+  </property>
+
+  <property>
+    <name>mapred.jobtracker.blacklist.fault-timeout-window</name>
+    <value>180</value>
+    <description>
+      3-hour sliding window (value is in minutes)
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.jobtracker.blacklist.fault-bucket-width</name>
+    <value>15</value>
+    <description>
+      15-minute bucket size (value is in minutes)
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.queue.names</name>
+    <value>default</value>
+    <description> Comma separated list of queues configured for this jobtracker.</description>
+  </property>
 
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hdfs-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hdfs-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hdfs-site.xml
index 1a0b933..ac76122 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hdfs-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hdfs-site.xml
@@ -151,13 +151,35 @@
   </property>
 
   <property>
+    <name>ambari.dfs.datanode.port</name>
+    <value>50010</value>
+    <description>
+      The datanode port for data transfer. This property is effective only if referenced from dfs.datanode.address property.
+    </description>
+  </property>
+
+  <property>
     <name>dfs.datanode.address</name>
-    <value></value>
+    <value>0.0.0.0:${ambari.dfs.datanode.port}</value>
+    <description>
+      The datanode server address and port for data transfer.
+    </description>
+  </property>
+
+  <property>
+    <name>ambari.dfs.datanode.http.port</name>
+    <value>50075</value>
+    <description>
+      The datanode http port. This property is effective only if referenced from dfs.datanode.http.address property.
+    </description>
   </property>
 
   <property>
     <name>dfs.datanode.http.address</name>
-    <value></value>
+    <value>0.0.0.0:${ambari.dfs.datanode.http.port}</value>
+    <description>
+      The datanode http server address and port.
+    </description>
   </property>
 
   <property>

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/hive-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/hive-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/hive-site.xml
index 9d0b168..24de30b 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/hive-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/hive-site.xml
@@ -19,6 +19,12 @@ limitations under the License.
 
 <configuration>
   <property>
+    <name>ambari.hive.db.schema.name</name>
+    <value>hive</value>
+    <description>Database name used as the Hive Metastore</description>
+  </property>
+
+  <property>
     <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc</value>
     <description>JDBC connect string for a JDBC metastore</description>

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml
index 32b2d5b..b7737c3 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml
@@ -270,10 +270,17 @@
   </property>
 
   <property>
+    <name>ambari.mapred.child.java.opts.memory</name>
+    <value>768</value>
+
+    <description>Java options Memory for the TaskTracker child processes</description>
+  </property>
+
+  <property>
     <name>mapred.child.java.opts</name>
-    <value></value>
+    <value>-server -Xmx${ambari.mapred.child.java.opts.memory}m -Djava.net.preferIPv4Stack=true</value>
 
-    <description>No description</description>
+    <description>Java options for the TaskTracker child processes</description>
   </property>
 
   <property>

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hdfs-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hdfs-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hdfs-site.xml
index a32a05f..fc292e6 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hdfs-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/configuration/hdfs-site.xml
@@ -181,13 +181,35 @@
   </property>
 
   <property>
+    <name>ambari.dfs.datanode.port</name>
+    <value>50010</value>
+    <description>
+      The datanode port for data transfer. This property is effective only if referenced from dfs.datanode.address property.
+    </description>
+  </property>
+
+  <property>
     <name>dfs.datanode.address</name>
-    <value>0.0.0.0:50010</value>
+    <value>0.0.0.0:${ambari.dfs.datanode.port}</value>
+    <description>
+      The datanode server address and port for data transfer.
+    </description>
+  </property>
+
+  <property>
+    <name>ambari.dfs.datanode.http.port</name>
+    <value>50075</value>
+    <description>
+      The datanode http port. This property is effective only if referenced from dfs.datanode.http.address property.
+    </description>
   </property>
 
   <property>
     <name>dfs.datanode.http.address</name>
-    <value>0.0.0.0:50075</value>
+    <value>0.0.0.0:${ambari.dfs.datanode.http.port}</value>
+    <description>
+      The datanode http server address and port.
+    </description>
   </property>
 
   <property>

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-site.xml
index 7fb8969..b3ed5f5 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/configuration/hive-site.xml
@@ -18,6 +18,13 @@ limitations under the License.
 -->
 
 <configuration>
+
+  <property>
+    <name>ambari.hive.db.schema.name</name>
+    <value>hive</value>
+    <description>Database name used as the Hive Metastore</description>
+  </property>
+
   <property>
     <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc</value>

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-server/src/main/resources/stacks/HDP/2.0.8/services/HDFS/configuration/hdfs-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/services/HDFS/configuration/hdfs-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.0.8/services/HDFS/configuration/hdfs-site.xml
index a32a05f..7e8bfba 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.8/services/HDFS/configuration/hdfs-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/services/HDFS/configuration/hdfs-site.xml
@@ -22,7 +22,7 @@
 
 <configuration>
 
-<!-- file system properties -->
+  <!-- file system properties -->
 
   <property>
     <name>dfs.namenode.name.dir</name>
@@ -60,11 +60,11 @@
     <name>dfs.datanode.data.dir</name>
     <value>/hadoop/hdfs/data</value>
     <description>Determines where on the local filesystem an DFS data node
-  should store its blocks.  If this is a comma-delimited
-  list of directories, then data will be stored in all named
-  directories, typically on different devices.
-  Directories that do not exist are ignored.
-  </description>
+      should store its blocks.  If this is a comma-delimited
+      list of directories, then data will be stored in all named
+      directories, typically on different devices.
+      Directories that do not exist are ignored.
+    </description>
     <final>true</final>
   </property>
 
@@ -72,21 +72,21 @@
     <name>dfs.hosts.exclude</name>
     <value>/etc/hadoop/conf/dfs.exclude</value>
     <description>Names a file that contains a list of hosts that are
-    not permitted to connect to the namenode.  The full pathname of the
-    file must be specified.  If the value is empty, no hosts are
-    excluded.</description>
+      not permitted to connect to the namenode.  The full pathname of the
+      file must be specified.  If the value is empty, no hosts are
+      excluded.</description>
   </property>
 
-<!--
-  <property>
-    <name>dfs.hosts</name>
-    <value>/etc/hadoop/conf/dfs.include</value>
-    <description>Names a file that contains a list of hosts that are
-    permitted to connect to the namenode. The full pathname of the file
-    must be specified.  If the value is empty, all hosts are
-    permitted.</description>
-  </property>
--->
+  <!--
+    <property>
+      <name>dfs.hosts</name>
+      <value>/etc/hadoop/conf/dfs.include</value>
+      <description>Names a file that contains a list of hosts that are
+      permitted to connect to the namenode. The full pathname of the file
+      must be specified.  If the value is empty, all hosts are
+      permitted.</description>
+    </property>
+  -->
 
   <property>
     <name>dfs.namenode.checkpoint.dir</name>
@@ -129,14 +129,14 @@
     <name>dfs.replication.max</name>
     <value>50</value>
     <description>Maximal block replication.
-  </description>
+    </description>
   </property>
 
   <property>
     <name>dfs.replication</name>
     <value>3</value>
     <description>Default block replication.
-  </description>
+    </description>
   </property>
 
   <property>
@@ -155,21 +155,21 @@
     <name>dfs.namenode.safemode.threshold-pct</name>
     <value>1.0f</value>
     <description>
-        Specifies the percentage of blocks that should satisfy
-        the minimal replication requirement defined by dfs.namenode.replication.min.
-        Values less than or equal to 0 mean not to start in safe mode.
-        Values greater than 1 will make safe mode permanent.
-        </description>
+      Specifies the percentage of blocks that should satisfy
+      the minimal replication requirement defined by dfs.namenode.replication.min.
+      Values less than or equal to 0 mean not to start in safe mode.
+      Values greater than 1 will make safe mode permanent.
+    </description>
   </property>
 
   <property>
     <name>dfs.datanode.balance.bandwidthPerSec</name>
     <value>6250000</value>
     <description>
-        Specifies the maximum amount of bandwidth that each datanode
-        can utilize for the balancing purpose in term of
-        the number of bytes per second.
-  </description>
+      Specifies the maximum amount of bandwidth that each datanode
+      can utilize for the balancing purpose in term of
+      the number of bytes per second.
+    </description>
   </property>
 
   <property>
@@ -181,13 +181,35 @@
   </property>
 
   <property>
+    <name>ambari.dfs.datanode.port</name>
+    <value>50010</value>
+    <description>
+      The datanode port for data transfer. This property is effective only if referenced from dfs.datanode.address property.
+    </description>
+  </property>
+
+  <property>
     <name>dfs.datanode.address</name>
-    <value>0.0.0.0:50010</value>
+    <value>0.0.0.0:${ambari.dfs.datanode.port}</value>
+    <description>
+      The datanode server address and port for data transfer.
+    </description>
+  </property>
+
+  <property>
+    <name>ambari.dfs.datanode.http.port</name>
+    <value>50075</value>
+    <description>
+      The datanode http port. This property is effective only if referenced from dfs.datanode.http.address property.
+    </description>
   </property>
 
   <property>
     <name>dfs.datanode.http.address</name>
-    <value>0.0.0.0:50075</value>
+    <value>0.0.0.0:${ambari.dfs.datanode.http.port}</value>
+    <description>
+      The datanode http server address and port.
+    </description>
   </property>
 
   <property>
@@ -199,113 +221,113 @@
   <property>
     <name>dfs.namenode.http-address</name>
     <value>localhost:50070</value>
-<description>The name of the default file system.  Either the
-literal string "local" or a host:port for NDFS.</description>
-<final>true</final>
-</property>
-
-<property>
-<name>dfs.datanode.du.reserved</name>
-<!-- cluster variant -->
-<value>1073741824</value>
-<description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
-</description>
-</property>
-
-<property>
-<name>dfs.datanode.ipc.address</name>
-<value>0.0.0.0:8010</value>
-<description>
-The datanode ipc server address and port.
-If the port is 0 then the server will start on a free port.
-</description>
-</property>
-
-<property>
-<name>dfs.blockreport.initialDelay</name>
-<value>120</value>
-<description>Delay for first block report in seconds.</description>
-</property>
-
-<property>
-<name>dfs.namenode.handler.count</name>
-<value>40</value>
-<description>The number of server threads for the namenode.</description>
-</property>
-
-<property>
-<name>dfs.datanode.max.transfer.threads</name>
-<value>1024</value>
-<description>PRIVATE CONFIG VARIABLE</description>
-</property>
-
-<!-- Permissions configuration -->
-
-<property>
-<name>fs.permissions.umask-mode</name>
-<value>022</value>
-<description>
-The octal umask used when creating files and directories.
-</description>
-</property>
-
-<property>
-<name>dfs.permissions.enabled</name>
-<value>true</value>
-<description>
-If "true", enable permission checking in HDFS.
-If "false", permission checking is turned off,
-but all other behavior is unchanged.
-Switching from one parameter value to the other does not change the mode,
-owner or group of files or directories.
-</description>
-</property>
-
-<property>
-<name>dfs.permissions.superusergroup</name>
-<value>hdfs</value>
-<description>The name of the group of super-users.</description>
-</property>
-
-<property>
-<name>dfs.namenode.handler.count</name>
-<value>100</value>
-<description>Added to grow Queue size so that more client connections are allowed</description>
-</property>
-
-<property>
-<name>dfs.block.access.token.enable</name>
-<value>true</value>
-<description>
-If "true", access tokens are used as capabilities for accessing datanodes.
-If "false", no access tokens are checked on accessing datanodes.
-</description>
-</property>
-
-<property>
-<name>dfs.namenode.kerberos.principal</name>
-<value></value>
-<description>
-Kerberos principal name for the NameNode
-</description>
-</property>
-
-<property>
-<name>dfs.secondary.namenode.kerberos.principal</name>
-<value></value>
+    <description>The name of the default file system.  Either the
+      literal string "local" or a host:port for NDFS.</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.datanode.du.reserved</name>
+    <!-- cluster variant -->
+    <value>1073741824</value>
+    <description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.ipc.address</name>
+    <value>0.0.0.0:8010</value>
     <description>
-        Kerberos principal name for the secondary NameNode.
+      The datanode ipc server address and port.
+      If the port is 0 then the server will start on a free port.
     </description>
   </property>
 
+  <property>
+    <name>dfs.blockreport.initialDelay</name>
+    <value>120</value>
+    <description>Delay for first block report in seconds.</description>
+  </property>
+
+  <property>
+    <name>dfs.namenode.handler.count</name>
+    <value>40</value>
+    <description>The number of server threads for the namenode.</description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.max.transfer.threads</name>
+    <value>1024</value>
+    <description>PRIVATE CONFIG VARIABLE</description>
+  </property>
+
+  <!-- Permissions configuration -->
+
+  <property>
+    <name>fs.permissions.umask-mode</name>
+    <value>022</value>
+    <description>
+      The octal umask used when creating files and directories.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.permissions.enabled</name>
+    <value>true</value>
+    <description>
+      If "true", enable permission checking in HDFS.
+      If "false", permission checking is turned off,
+      but all other behavior is unchanged.
+      Switching from one parameter value to the other does not change the mode,
+      owner or group of files or directories.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.permissions.superusergroup</name>
+    <value>hdfs</value>
+    <description>The name of the group of super-users.</description>
+  </property>
 
-<!--
-  This is KRB DOMAIN specific. The FQDN of the namenode has to be mentioned.
--->
+  <property>
+    <name>dfs.namenode.handler.count</name>
+    <value>100</value>
+    <description>Added to grow Queue size so that more client connections are allowed</description>
+  </property>
+
+  <property>
+    <name>dfs.block.access.token.enable</name>
+    <value>true</value>
+    <description>
+      If "true", access tokens are used as capabilities for accessing datanodes.
+      If "false", no access tokens are checked on accessing datanodes.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.namenode.kerberos.principal</name>
+    <value></value>
+    <description>
+      Kerberos principal name for the NameNode
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.secondary.namenode.kerberos.principal</name>
+    <value></value>
+    <description>
+      Kerberos principal name for the secondary NameNode.
+    </description>
+  </property>
+
+
+  <!--
+    This is KRB DOMAIN specific. The FQDN of the namenode has to be mentioned.
+  -->
   <property>
     <name>dfs.namenode.kerberos.https.principal</name>
     <value></value>
-     <description>The Kerberos principal for the host that the NameNode runs on.</description>
+    <description>The Kerberos principal for the host that the NameNode runs on.</description>
 
   </property>
 
@@ -345,64 +367,64 @@ Kerberos principal name for the NameNode
   <property>
     <name>dfs.datanode.kerberos.principal</name>
     <value></value>
- <description>
-        The Kerberos principal that the DataNode runs as. "_HOST" is replaced by the real host name.
+    <description>
+      The Kerberos principal that the DataNode runs as. "_HOST" is replaced by the real host name.
     </description>
   </property>
 
   <property>
     <name>dfs.namenode.keytab.file</name>
     <value></value>
- <description>
-        Combined keytab file containing the namenode service and host principals.
+    <description>
+      Combined keytab file containing the namenode service and host principals.
     </description>
   </property>
 
   <property>
     <name>dfs.secondary.namenode.keytab.file</name>
     <value></value>
-  <description>
-        Combined keytab file containing the namenode service and host principals.
+    <description>
+      Combined keytab file containing the namenode service and host principals.
     </description>
   </property>
 
   <property>
     <name>dfs.datanode.keytab.file</name>
     <value></value>
- <description>
-        The filename of the keytab file for the DataNode.
+    <description>
+      The filename of the keytab file for the DataNode.
     </description>
   </property>
 
   <property>
     <name>dfs.namenode.https-address</name>
     <value>localhost:50470</value>
-  <description>The https address where namenode binds</description>
+    <description>The https address where namenode binds</description>
 
   </property>
 
   <property>
     <name>dfs.datanode.data.dir.perm</name>
     <value>750</value>
-<description>The permissions that should be there on dfs.datanode.data.dir
-directories. The datanode will not come up if the permissions are
-different on existing dfs.datanode.data.dir directories. If the directories
-don't exist, they will be created with this permission.</description>
+    <description>The permissions that should be there on dfs.datanode.data.dir
+      directories. The datanode will not come up if the permissions are
+      different on existing dfs.datanode.data.dir directories. If the directories
+      don't exist, they will be created with this permission.</description>
   </property>
 
   <property>
     <name>dfs.namenode.accesstime.precision</name>
     <value>0</value>
     <description>The access time for HDFS file is precise upto this value.
-                 The default value is 1 hour. Setting a value of 0 disables
-                 access times for HDFS.
+      The default value is 1 hour. Setting a value of 0 disables
+      access times for HDFS.
     </description>
   </property>
 
   <property>
-   <name>dfs.cluster.administrators</name>
-   <value> hdfs</value>
-   <description>ACL for who all can view the default servlets in the HDFS</description>
+    <name>dfs.cluster.administrators</name>
+    <value> hdfs</value>
+    <description>ACL for who all can view the default servlets in the HDFS</description>
   </property>
 
   <property>
@@ -435,14 +457,14 @@ don't exist, they will be created with this permission.</description>
     <value>30000</value>
     <description>Datanode is stale after not getting a heartbeat in this interval in ms</description>
   </property>
-  
+
   <property>
     <name>dfs.journalnode.http-address</name>
     <value>0.0.0.0:8480</value>
     <description>The address and port the JournalNode web UI listens on.
-     If the port is 0 then the server will start on a free port. </description>
+      If the port is 0 then the server will start on a free port. </description>
   </property>
-  
+
   <property>
     <name>dfs.journalnode.edits.dir</name>
     <value>/grid/0/hdfs/journal</value>

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-server/src/main/resources/stacks/HDP/2.0.8/services/HIVE/configuration/hive-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/services/HIVE/configuration/hive-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.0.8/services/HIVE/configuration/hive-site.xml
index 7fb8969..17571f6 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.8/services/HIVE/configuration/hive-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/services/HIVE/configuration/hive-site.xml
@@ -18,6 +18,13 @@ limitations under the License.
 -->
 
 <configuration>
+
+  <property>
+    <name>ambari.hive.db.schema.name</name>
+    <value>hive</value>
+    <description>Database name used as the Hive Metastore</description>
+  </property>
+
   <property>
     <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc</value>
@@ -52,21 +59,21 @@ limitations under the License.
     <name>hive.metastore.sasl.enabled</name>
     <value></value>
     <description>If true, the metastore thrift interface will be secured with SASL.
-     Clients must authenticate with Kerberos.</description>
+      Clients must authenticate with Kerberos.</description>
   </property>
 
   <property>
     <name>hive.metastore.kerberos.keytab.file</name>
     <value></value>
     <description>The path to the Kerberos Keytab file containing the metastore
-     thrift server's service principal.</description>
+      thrift server's service principal.</description>
   </property>
 
   <property>
     <name>hive.metastore.kerberos.principal</name>
     <value></value>
     <description>The service principal for the metastore thrift server. The special
-    string _HOST will be replaced automatically with the correct host name.</description>
+      string _HOST will be replaced automatically with the correct host name.</description>
   </property>
 
   <property>
@@ -109,7 +116,7 @@ limitations under the License.
     <name>hive.security.authorization.manager</name>
     <value>org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider</value>
     <description>the hive client authorization manager class name.
-    The user defined authorization class should implement interface org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider.  </description>
+      The user defined authorization class should implement interface org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider.  </description>
   </property>
 
   <property>
@@ -253,7 +260,7 @@ limitations under the License.
     <name>hive.optimize.index.filter</name>
     <value>true</value>
     <description>
-    Whether to enable automatic use of indexes
+      Whether to enable automatic use of indexes
     </description>
   </property>
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/controllers/main/admin/security/add/step4.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/security/add/step4.js b/ambari-web/app/controllers/main/admin/security/add/step4.js
index dc16066..1bc3555 100644
--- a/ambari-web/app/controllers/main/admin/security/add/step4.js
+++ b/ambari-web/app/controllers/main/admin/security/add/step4.js
@@ -284,12 +284,6 @@ App.MainAdminSecurityAddStep4Controller = App.MainAdminSecurityProgressControlle
         case 'security_enabled':
           _property.value = 'true';
           break;
-        case 'dfs_datanode_address':
-          _property.value = '1019';
-          break;
-        case 'dfs_datanode_http_address':
-          _property.value = '1022';
-          break;
       }
     }, this);
   },

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/controllers/main/admin/security/disable.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/security/disable.js b/ambari-web/app/controllers/main/admin/security/disable.js
index 1f15afa..aa9756b 100644
--- a/ambari-web/app/controllers/main/admin/security/disable.js
+++ b/ambari-web/app/controllers/main/admin/security/disable.js
@@ -104,11 +104,11 @@ App.MainAdminSecurityDisableController = App.MainAdminSecurityProgressController
             var configName = _config.name;
             if (configName in _serviceConfigTags.configs) {
               switch (configName) {
-                case 'dfs.datanode.address':
-                  _serviceConfigTags.configs[configName] = '0.0.0.0:50010';
+                case 'ambari.dfs.datanode.port':
+                  _serviceConfigTags.configs[configName] = '50010';
                   break;
-                case 'dfs.datanode.http.address':
-                  _serviceConfigTags.configs[configName] = '0.0.0.0:50075';
+                case 'ambari.dfs.datanode.http.port':
+                  _serviceConfigTags.configs[configName] = '50075';
                   break;
                 case 'mapred.task.tracker.task-controller':
                   _serviceConfigTags.configs[configName] = 'org.apache.hadoop.mapred.DefaultTaskController';

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/controllers/main/service/info/configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/configs.js b/ambari-web/app/controllers/main/service/info/configs.js
index 7010ea6..9201c2e 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -1513,7 +1513,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
     var globalSiteProperties = {};
     globalConfigs.forEach(function (_globalSiteObj) {
       // do not pass any globalConfigs whose name ends with _host or _hosts
-      if (!/_hosts?$/.test(_globalSiteObj.name)) {
+      if (_globalSiteObj.isRequiredByAgent === true) {
         // append "m" to JVM memory options except for hadoop_heapsize
         if (/_heapsize|_newsize|_maxnewsize$/.test(_globalSiteObj.name) && !heapsizeException.contains(_globalSiteObj.name)) {
           _globalSiteObj.value += "m";

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/controllers/wizard.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard.js b/ambari-web/app/controllers/wizard.js
index de04286..51e46e7 100644
--- a/ambari-web/app/controllers/wizard.js
+++ b/ambari-web/app/controllers/wizard.js
@@ -721,7 +721,8 @@ App.WizardController = Em.Controller.extend({
           serviceName: _configProperties.get('serviceName'),
           domain: _configProperties.get('domain'),
           filename: _configProperties.get('filename'),
-          displayType: _configProperties.get('displayType')
+          displayType: _configProperties.get('displayType'),
+          isRequiredByAgent: _configProperties.get('isRequiredByAgent')
         };
         serviceConfigProperties.push(configProperty);
       }, this);

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/controllers/wizard/step8_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step8_controller.js b/ambari-web/app/controllers/wizard/step8_controller.js
index f614f7f..da7f561 100644
--- a/ambari-web/app/controllers/wizard/step8_controller.js
+++ b/ambari-web/app/controllers/wizard/step8_controller.js
@@ -1446,18 +1446,16 @@ App.WizardStep8Controller = Em.Controller.extend({
     globalSiteObj.forEach(function (_globalSiteObj) {
       var heapsizeException =  ['hadoop_heapsize','yarn_heapsize','nodemanager_heapsize','resourcemanager_heapsize'];
       // do not pass any globals whose name ends with _host or _hosts
-      if (!/_hosts?$/.test(_globalSiteObj.name)) {
+      if (_globalSiteObj.isRequiredByAgent === true) {
         // append "m" to JVM memory options except for hadoop_heapsize
         if (/_heapsize|_newsize|_maxnewsize$/.test(_globalSiteObj.name) && !heapsizeException.contains(_globalSiteObj.name)) {
           globalSiteProperties[_globalSiteObj.name] = _globalSiteObj.value + "m";
         } else {
           globalSiteProperties[_globalSiteObj.name] = App.config.escapeXMLCharacters(_globalSiteObj.value);
         }
-        console.log("STEP8: name of the global property is: " + _globalSiteObj.name);
-        console.log("STEP8: value of the global property is: " + _globalSiteObj.value);
-      }
-      if (_globalSiteObj.name == 'java64_home') {
-        globalSiteProperties['java64_home'] = this.get('content.installOptions.javaHome');
+        if (_globalSiteObj.name == 'java64_home') {
+          globalSiteProperties['java64_home'] = this.get('content.installOptions.javaHome');
+        }
       }
       this._recordHostOverrideFromObj(_globalSiteObj, 'global', 'version1', this);
     }, this);
@@ -1614,16 +1612,11 @@ App.WizardStep8Controller = Em.Controller.extend({
     var globals = this.get('content.serviceConfigProperties').filterProperty('id', 'puppet var');
     if (globals.someProperty('name', 'hive_database')) {
       var hiveDb = globals.findProperty('name', 'hive_database');
-      var hiveHost = globals.findProperty('name', 'hive_hostname').value;
-      var hiveDbName = globals.findProperty('name', 'hive_database_name').value;
       if (hiveDb.value === 'New MySQL Database') {
-        // hiveProperties["javax.jdo.option.ConnectionURL"] = "jdbc:mysql://"+ hiveHost + "/" + hiveDbName + "?createDatabaseIfNotExist=true";
         hiveProperties["javax.jdo.option.ConnectionDriverName"] = "com.mysql.jdbc.Driver";
       } else if (hiveDb.value === 'Existing MySQL Database'){
-        // hiveProperties["javax.jdo.option.ConnectionURL"] = "jdbc:mysql://"+ hiveHost + "/" + hiveDbName + "?createDatabaseIfNotExist=true";
         hiveProperties["javax.jdo.option.ConnectionDriverName"] = "com.mysql.jdbc.Driver";
       } else { //existing oracle database
-        // hiveProperties["javax.jdo.option.ConnectionURL"] = "jdbc:oracle:thin:@//"+ hiveHost + ":1521/" + hiveDbName;
         hiveProperties["javax.jdo.option.ConnectionDriverName"] = "oracle.jdbc.driver.OracleDriver";
       }
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/data/HDP2/config_mapping.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/HDP2/config_mapping.js b/ambari-web/app/data/HDP2/config_mapping.js
index 7f284be..742d505 100644
--- a/ambari-web/app/data/HDP2/config_mapping.js
+++ b/ambari-web/app/data/HDP2/config_mapping.js
@@ -67,21 +67,6 @@ var configs = [
     "filename": "core-site.xml",
     "isOverridable": true
   },
-/**********************************************hdfs-site***************************************/
-  {
-    "name": "dfs.datanode.address",
-    "templateName": ["dfs_datanode_address"],
-    "foreignKey": null,
-    "value": "0.0.0.0:<templateName[0]>",
-    "filename": "hdfs-site.xml"
-  },
-  {
-    "name": "dfs.datanode.http.address",
-    "templateName": ["dfs_datanode_http_address"],
-    "foreignKey": null,
-    "value": "0.0.0.0:<templateName[0]>",
-    "filename": "hdfs-site.xml"
-  },
 
 /**********************************************hbase-site***************************************/
   {


[2/3] AMBARI-3755. Config Refactor: Installer wizard should not save global configuration not used by agent. (jaimin)

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/data/HDP2/global_properties.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/HDP2/global_properties.js b/ambari-web/app/data/HDP2/global_properties.js
index 8272d3a..4bac061 100644
--- a/ambari-web/app/data/HDP2/global_properties.js
+++ b/ambari-web/app/data/HDP2/global_properties.js
@@ -47,6 +47,10 @@
  *     If this is unspecified, true is assumed.
  *     E.g., true, false
  *
+ *     isRequiredByAgent:
+ *     Whether the config property is required by agent or not.
+ *     If value is false then it will be not persisted in global configuration
+ *
  *   displayType:
  *     How the config property is to be rendered for user input.
  *     If this is left unspecified, "string" is assumed
@@ -86,7 +90,7 @@ module.exports =
       "displayType": "masterHosts",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
+      "isRequiredByAgent": false,
       "serviceName": "HDFS",
       "category": "NameNode",
       "index": 0
@@ -101,7 +105,6 @@ module.exports =
       "unit": "MB",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "NameNode",
       "index": 2
@@ -116,7 +119,6 @@ module.exports =
       "unit": "MB",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "NameNode",
       "index": 3
@@ -130,8 +132,8 @@ module.exports =
       "description": "The host that has been assigned to run SecondaryNameNode",
       "displayType": "masterHost",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "SNameNode",
       "index": 0
@@ -147,6 +149,7 @@ module.exports =
       "isRequired": false,
       "isOverridable": false,
       "isVisible": true,
+      "isRequiredByAgent": false,
       "domain": "datanode-global",
       "serviceName": "HDFS",
       "category": "DataNode",
@@ -175,7 +178,6 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "index": 1
     },
@@ -189,7 +191,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "Advanced"
     },
@@ -203,7 +204,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "Advanced"
     },
@@ -217,7 +217,6 @@ module.exports =
       "unit": "MB",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "NameNode"
     },
@@ -231,26 +230,11 @@ module.exports =
       "displayType": "checkbox",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "Advanced"
     },
     {
       "id": "puppet var",
-      "name": "namenode_formatted_mark_dir",
-      "displayName": "Hadoop formatted mark directory",
-      "description": "",
-      "defaultValue": "/var/run/hadoop/hdfs/namenode/formatted/",
-      "isRequired": false,
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "HDFS",
-      "category": "NameNode"
-    },
-    {
-      "id": "puppet var",
       "name": "hcat_conf_dir",
       "displayName": "HCat conf directory",
       "description": "",
@@ -259,7 +243,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "Advanced"
     },
@@ -272,7 +255,6 @@ module.exports =
       "displayType": "checkbox",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HDFS"
     },
 
@@ -285,8 +267,8 @@ module.exports =
       "defaultValue": "",
       "isOverridable": false,
       "displayType": "masterHost",
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MAPREDUCE2",
       "category": "HistoryServer",
       "index": 0
@@ -300,7 +282,6 @@ module.exports =
       "displayType": "directory",
       "isVisible": true,
       "isReconfigurable": false,
-      "domain": "global",
       "serviceName": "MAPREDUCE2",
       "category": "Advanced"
     },
@@ -313,7 +294,6 @@ module.exports =
       "displayType": "directory",
       "isVisible": true,
       "isReconfigurable": false,
-      "domain": "global",
       "serviceName": "MAPREDUCE2",
       "category": "Advanced"
     },
@@ -329,7 +309,6 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "YARN",
       "category": "General",
       "index": 0
@@ -342,8 +321,8 @@ module.exports =
       "defaultValue": "",
       "isOverridable": false,
       "displayType": "masterHost",
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "YARN",
       "category": "ResourceManager",
       "index": 0
@@ -358,7 +337,6 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "YARN",
       "category": "ResourceManager",
       "index": 1
@@ -371,8 +349,8 @@ module.exports =
       "defaultValue": "",
       "isOverridable": false,
       "displayType": "slaveHosts",
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "YARN",
       "category": "NodeManager",
       "index": 0
@@ -387,7 +365,6 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "YARN",
       "category": "NodeManager",
       "index": 0
@@ -401,7 +378,6 @@ module.exports =
       "displayType": "directory",
       "isReconfigurable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "YARN",
       "category": "Advanced"
     },
@@ -414,7 +390,6 @@ module.exports =
       "displayType": "directory",
       "isVisible": true,
       "isReconfigurable": false,
-      "domain": "global",
       "serviceName": "YARN",
       "category": "Advanced"
     },
@@ -428,8 +403,8 @@ module.exports =
       "description": "The host that has been assigned to run HBase Master",
       "displayType": "masterHosts",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HBASE",
       "category": "HBase Master",
       "index": 0
@@ -443,8 +418,8 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "isOverridable": false,
+      
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HBASE",
       "category": "HBase Master",
       "index": 1
@@ -458,6 +433,7 @@ module.exports =
       "description": "The hosts that have been assigned to run RegionServer",
       "displayType": "slaveHosts",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
       "isRequired": false,
       "domain": "regionserver-global",
@@ -489,7 +465,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HBASE",
       "category": "Advanced"
     },
@@ -503,7 +478,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HBASE",
       "category": "Advanced"
     },
@@ -516,7 +490,6 @@ module.exports =
       "isRequired": true,
       "displayType": "advanced",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HBASE",
       "category": "Advanced"
     },
@@ -530,6 +503,7 @@ module.exports =
       "description": "The host that has been assigned to run Hive Metastore",
       "displayType": "masterHost",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
       "serviceName": "HIVE",
       "category": "Hive Metastore",
@@ -547,7 +521,6 @@ module.exports =
       "isOverridable": false,
       "isVisible": false,
       "isReconfigurable": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 1
@@ -564,7 +537,6 @@ module.exports =
       "isVisible": false,
       "isOverridable": false,
       "isReconfigurable": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 1
@@ -580,7 +552,6 @@ module.exports =
       "displayType": "masterHost",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 1
@@ -612,7 +583,6 @@ module.exports =
       "radioName": "hive-database",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 2
@@ -628,7 +598,6 @@ module.exports =
       "isOverridable": false,
       "isVisible": false,
       "isObserved": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 3
@@ -642,9 +611,9 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "host",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": false,
       "isObserved": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 3
@@ -658,9 +627,9 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "host",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": false,
       "isObserved": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 3
@@ -674,31 +643,15 @@ module.exports =
       "description": "Host on which the database will be created by Ambari",
       "isReconfigurable": false,
       "displayType": "masterHost",
+      "isRequiredByAgent": false,
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 3
     },
     {
       "id": "puppet var",
-      "name": "hive_database_name",
-      "displayName": "Database Name",
-      "description": "Database name used as the Hive Metastore",
-      "defaultValue": "hive",
-      "isReconfigurable": true,
-      "displayType": "host",
-      "isOverridable": false,
-      "isVisible": true,
-      "isObserved": true,
-      "domain": "global",
-      "serviceName": "HIVE",
-      "category": "Hive Metastore",
-      "index": 4
-    },
-    {
-      "id": "puppet var",
       "name": "hive_metastore_port",
       "displayName": "Hive metastore port",
       "description": "",
@@ -707,7 +660,6 @@ module.exports =
       "displayType": "int",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -720,20 +672,7 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
-      "serviceName": "HIVE",
-      "category": "Advanced"
-    },
-    {
-      "id": "puppet var",
-      "name": "hive_conf_dir",
-      "displayName": "Hive conf directory",
-      "description": "",
-      "defaultValue": "/etc/hive/conf",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
+      "isRequiredByAgent": false, // Make this to true when we expose the property on ui by making "isVisible": true
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -746,7 +685,7 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
+      "isRequiredByAgent": false, // Make this to true when we expose the property on ui by making "isVisible": true
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -760,7 +699,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -774,20 +712,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
-      "serviceName": "HIVE",
-      "category": "Advanced"
-    },
-    {
-      "id": "puppet var",
-      "name": "mysql_connector_url",
-      "displayName": "MySQL connector url",
-      "description": "",
-      "defaultValue": "${download_url}/mysql-connector-java-5.1.18.zip",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -800,7 +724,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -815,7 +738,7 @@ module.exports =
       "displayType": "masterHost",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
+      "isRequiredByAgent": false,
       "serviceName": "WEBHCAT",
       "category": "WebHCat Server"
     },
@@ -829,7 +752,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "WEBHCAT",
       "category": "Advanced"
     },
@@ -843,7 +765,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "WEBHCAT",
       "category": "Advanced"
     },
@@ -858,7 +779,7 @@ module.exports =
       "displayType": "masterHost",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
+      "isRequiredByAgent": false,
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 0
@@ -876,7 +797,6 @@ module.exports =
       "isObserved": true,
       "isReconfigurable": false,
       "isOverridable": false,
-      //"domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 1
@@ -892,7 +812,6 @@ module.exports =
       "displayType": "masterHost",
       "isVisible": false,
       "isOverridable": false,
-      // "domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 1
@@ -909,7 +828,6 @@ module.exports =
       "isVisible": false,
       "isReconfigurable": false,
       "isOverridable": false,
-      // "domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 1
@@ -926,7 +844,6 @@ module.exports =
       "isVisible": false,
       "isReconfigurable": false,
       "isOverridable": false,
-      //"domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 1
@@ -964,7 +881,6 @@ module.exports =
       "isOverridable": false,
       "radioName": "oozie-database",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 2
@@ -981,7 +897,6 @@ module.exports =
       "isOverridable": false,
       "isVisible": true,
       "isRequired": false,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 7
@@ -996,7 +911,6 @@ module.exports =
       "isOverridable": false,
       "displayType": "host",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 3
@@ -1012,7 +926,6 @@ module.exports =
       "displayType": "host",
       "isVisible": false,
       "isObserved": true,
-      //"domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server"
     },
@@ -1027,7 +940,6 @@ module.exports =
       "displayType": "host",
       "isVisible": false,
       "isObserved": true,
-      //"domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server"
     },
@@ -1042,7 +954,7 @@ module.exports =
       "isOverridable": false,
       "displayType": "masterHost",
       "isVisible": false,
-      //"domain": "global",
+      "isRequiredByAgent": false,
       "serviceName": "OOZIE",
       "category": "Oozie Server"
     },
@@ -1056,7 +968,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Advanced"
     },
@@ -1070,7 +981,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Advanced"
     },
@@ -1084,7 +994,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "user",
       "isOverridable": false,
-      "domain": "global",
       "isVisible": true,
       "serviceName": "NAGIOS",
       "index": 0
@@ -1099,7 +1008,6 @@ module.exports =
       "displayType": "password",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "NAGIOS",
       "index": 1
     },
@@ -1112,7 +1020,6 @@ module.exports =
       "displayType": "email",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "NAGIOS",
       "index": 2
     },
@@ -1126,6 +1033,7 @@ module.exports =
       "description": "The host that has been assigned to run ZooKeeper Server",
       "displayType": "masterHosts",
       "isVisible": true,
+      "isRequiredByAgent": false,
       "isOverridable": false,
       "isRequired": false,
       "serviceName": "ZOOKEEPER",
@@ -1142,7 +1050,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "ZooKeeper Server",
       "index": 1
@@ -1157,7 +1064,6 @@ module.exports =
       "unit": "ms",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "ZooKeeper Server",
       "index": 2
@@ -1171,7 +1077,6 @@ module.exports =
       "displayType": "int",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "ZooKeeper Server",
       "index": 3
@@ -1185,7 +1090,6 @@ module.exports =
       "displayType": "int",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "ZooKeeper Server",
       "index": 4
@@ -1199,7 +1103,6 @@ module.exports =
       "displayType": "int",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "ZooKeeper Server",
       "index": 5
@@ -1214,7 +1117,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "Advanced",
       "index": 0
@@ -1229,24 +1131,10 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "Advanced",
       "index": 1
     },
-    {
-      "id": "puppet var",
-      "name": "zk_pid_file",
-      "displayName": "ZooKeeper PID File",
-      "description": "",
-      "defaultValue": "/var/run/zookeeper/zookeeper_server.pid",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "ZOOKEEPER",
-      "category": "Advanced"
-    },
   /**********************************************HUE***************************************/
     {
       "id": "puppet var",
@@ -1257,8 +1145,8 @@ module.exports =
       "description": "The host that has been assigned to run Hue Server",
       "displayType": "masterHost",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HUE",
       "category": "Hue Server"
     },
@@ -1271,8 +1159,8 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HUE",
       "category": "Advanced"
     },
@@ -1285,8 +1173,8 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HUE",
       "category": "Advanced"
     },
@@ -1300,7 +1188,7 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
+      "isRequiredByAgent": false,
       "serviceName": "GANGLIA",
       "category": "Advanced"
     },
@@ -1314,7 +1202,7 @@ module.exports =
       "isRequired": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
+      "isRequiredByAgent": false,
       "serviceName": "MISC",
       "category": "General",
       "belongsToService":[]
@@ -1330,71 +1218,12 @@ module.exports =
       "isOverridable": false,
       "isVisible": true,
       "filename": "core-site.xml",
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["HIVE","WEBHCAT","OOZIE"]
     },
     {
       "id": "puppet var",
-      "name": "dfs_datanode_address",
-      "displayName": "dfs_datanode_address",
-      "description": "",
-      "defaultValue": "50010",
-      "isReconfigurable": true,
-      "displayType": "int",
-      "isVisible": true,
-      "filename": "hdfs-site.xml",
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "Advanced",
-      "belongsToService":[]
-    },
-    {
-      "id": "puppet var",
-      "name": "dfs_datanode_http_address",
-      "displayName": "dfs_datanode_http_address",
-      "description": "",
-      "defaultValue": "50075",
-      "isReconfigurable": true,
-      "displayType": "int",
-      "isVisible": true,
-      "filename": "hdfs-site.xml",
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "Advanced",
-      "belongsToService":[]
-    },
-    {
-      "id": "puppet var",
-      "name": "gpl_artifacts_download_url",
-      "displayName": "gpl artifact download url",
-      "description": "",
-      "defaultValue": "",
-      "isReconfigurable": false,
-      "displayType": "advanced",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General",
-      "belongsToService":[]
-    },
-    {
-      "id": "puppet var",
-      "name": "apache_artifacts_download_url",
-      "displayName": "apache artifact download url",
-      "description": "",
-      "defaultValue": "",
-      "isReconfigurable": false,
-      "displayType": "advanced",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General",
-      "belongsToService":[]
-    },
-    {
-      "id": "puppet var",
       "name": "ganglia_runtime_dir",
       "displayName": "Ganglia runtime directory",
       "description": "",
@@ -1402,7 +1231,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "General",
       "belongsToService":[]
@@ -1417,38 +1245,7 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "belongsToService":[]
-    },
-    {
-      "id": "puppet var",
-      "name": "run_dir",
-      "displayName": "Hadoop run directory",
-      "description": "",
-      "defaultValue": "/var/run/hadoop",
-      "isRequired": false,
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "Advanced",
-      "belongsToService":[]
-    },
-    {
-      "id": "puppet var",
-      "name": "hadoop_conf_dir",
-      "displayName": "Hadoop conf directory",
-      "description": "",
-      "defaultValue": "/etc/hadoop/conf",
-      "isRequired": false,
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
       "serviceName": "MISC",
-      "category": "Advanced",
       "belongsToService":[]
     },
     {
@@ -1462,7 +1259,6 @@ module.exports =
       "isOverridable": false,
       "isVisible": true,
       "serviceName": "MISC",
-      "domain": "global",
       "category": "Users and Groups",
       "belongsToService":["HDFS"]
     },
@@ -1476,7 +1272,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["MAPREDUCE2"]
@@ -1491,7 +1286,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["YARN"]
@@ -1506,7 +1300,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["HBASE"]
@@ -1521,7 +1314,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["HIVE"]
@@ -1536,7 +1328,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["HCATALOG"]
@@ -1551,7 +1342,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["WEBHCAT"]
@@ -1566,7 +1356,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["OOZIE"]
@@ -1581,7 +1370,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["ZOOKEEPER"]
@@ -1596,7 +1384,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["GANGLIA"]
@@ -1611,7 +1398,6 @@ module.exports =
       "displayType": "advanced",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName":"MISC",
       "category": "Users and Groups",
       "belongsToService":[]
@@ -1625,7 +1411,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "user",
       "isOverridable": false,
-      "domain": "global",
       "isVisible": true,
       "serviceName":"MISC",
       "category": "Users and Groups",
@@ -1640,7 +1425,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "user",
       "isOverridable": false,
-      "domain": "global",
       "isVisible": true,
       "serviceName":"MISC",
       "category": "Users and Groups",
@@ -1656,7 +1440,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": App.supports.customizeSmokeTestUser,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["HDFS"]
@@ -1671,7 +1454,6 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
       "belongsToService":["HDFS"]
@@ -1685,7 +1467,6 @@ module.exports =
       "displayType": "directory",
       "isReconfigurable": true,
       "isOverridable": false,
-      "domain": "global",
       "isVisible": true,
       "serviceName": "GANGLIA",
       "category": "General",

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/data/HDP2/secure_mapping.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/HDP2/secure_mapping.js b/ambari-web/app/data/HDP2/secure_mapping.js
index 421cf06..47be31c 100644
--- a/ambari-web/app/data/HDP2/secure_mapping.js
+++ b/ambari-web/app/data/HDP2/secure_mapping.js
@@ -146,18 +146,18 @@ module.exports = [
     "serviceName": "HDFS"
   },
   {
-    "name": "dfs.datanode.address",
+    "name": "ambari.dfs.datanode.port",
     "templateName": ["dfs_datanode_address"],
     "foreignKey": null,
-    "value": "0.0.0.0:<templateName[0]>",
+    "value": "<templateName[0]>",
     "filename": "hdfs-site.xml",
     "serviceName": "HDFS"
   },
   {
-    "name": "dfs.datanode.http.address",
+    "name": "ambari.dfs.datanode.http.port",
     "templateName": ["dfs_datanode_http_address"],
     "foreignKey": null,
-    "value": "0.0.0.0:<templateName[0]>",
+    "value": "<templateName[0]>",
     "filename": "hdfs-site.xml",
     "serviceName": "HDFS"
   },

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/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 8697c5f..95ea021 100644
--- a/ambari-web/app/data/HDP2/site_properties.js
+++ b/ambari-web/app/data/HDP2/site_properties.js
@@ -485,6 +485,20 @@ module.exports =
       "serviceName": "HIVE",
       "index": 7
     },
+    {
+      "id": "site property",
+      "name": "ambari.hive.db.schema.name",
+      "displayName": "Database Name",
+      "description": "Database name used as the Hive Metastore",
+      "defaultValue": "",
+      "isReconfigurable": true,
+      "displayType": "host",
+      "isOverridable": false,
+      "isObserved": true,
+      "serviceName": "HIVE",
+      "category": "Hive Metastore",
+      "index": 4
+    },
 
   /**********************************************hbase-site***************************************/
     {

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/data/config_mapping.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/config_mapping.js b/ambari-web/app/data/config_mapping.js
index 7b09bf5..7107fa0 100644
--- a/ambari-web/app/data/config_mapping.js
+++ b/ambari-web/app/data/config_mapping.js
@@ -66,29 +66,6 @@ var configs = [
     "filename": "core-site.xml",
     "isOverridable" : true
   },
-  {
-    "name": "dfs.datanode.address",
-    "templateName": ["dfs_datanode_address"],
-    "foreignKey": null,
-    "value": "0.0.0.0:<templateName[0]>",
-    "filename": "hdfs-site.xml"
-  },
-  {
-    "name": "dfs.datanode.http.address",
-    "templateName": ["dfs_datanode_http_address"],
-    "foreignKey": null,
-    "value": "0.0.0.0:<templateName[0]>",
-    "filename": "hdfs-site.xml"
-  },
-
-  /******************************************MAPREDUCE***************************************/
-  {
-    "name": "mapred.child.java.opts",
-    "templateName": ["mapred_child_java_opts_sz"],
-    "foreignKey": null,
-    "value": "-server -Xmx<templateName[0]>m -Djava.net.preferIPv4Stack=true",
-    "filename": "mapred-site.xml"
-  },
 
 /**********************************************hbase-site***************************************/
   {

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/data/global_properties.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/global_properties.js b/ambari-web/app/data/global_properties.js
index cc8d56c..ff4e5df 100644
--- a/ambari-web/app/data/global_properties.js
+++ b/ambari-web/app/data/global_properties.js
@@ -56,6 +56,10 @@
  *     The unit for the config property.
  *     E.g., "ms", "MB", "bytes"
  *
+ *   isRequiredByAgent:
+ *     Whether the config property is required by agent or not.
+ *     If value is false then it will be not persisted in global configuration
+ *
  *   serviceName:
  *     The service that the config property belongs to.
  *     E.g., "HDFS", "MAPREDUCE", "ZOOKEEPER", etc.
@@ -75,7 +79,7 @@ require('config');
 module.exports =
 {
   "configProperties": [
-    /**********************************************HDFS***************************************/
+  /**********************************************HDFS***************************************/
     {
       "id": "puppet var",
       "name": "namenode_host",
@@ -85,8 +89,8 @@ module.exports =
       "description": "The host that has been assigned to run NameNode",
       "displayType": "masterHost",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "NameNode",
       "index": 0
@@ -101,7 +105,6 @@ module.exports =
       "unit": "MB",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "NameNode",
       "index": 2
@@ -116,7 +119,6 @@ module.exports =
       "unit": "MB",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "NameNode",
       "index": 3
@@ -129,9 +131,9 @@ module.exports =
       "defaultValue": "",
       "description": "The host that has been assigned to run SecondaryNameNode",
       "displayType": "masterHost",
+      "isRequiredByAgent": false,
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "SNameNode",
       "index": 0
@@ -145,6 +147,7 @@ module.exports =
       "description": "The hosts that have been assigned to run DataNode",
       "displayType": "slaveHosts",
       "isRequired": false,
+      "isRequiredByAgent": false,
       "isOverridable": false,
       "isVisible": true,
       "domain": "datanode-global",
@@ -175,7 +178,6 @@ module.exports =
       "displayType": "int",
       "unit": "MB",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "index": 1
     },
@@ -189,7 +191,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "Advanced"
     },
@@ -203,23 +204,9 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "Advanced"
     },
-    /*
-     {
-     "id": "puppet var",
-     "name": "dfs_support_append",
-     "displayName": "Append enabled",
-     "description": "Whether to enable HDFS Append feature",
-     "defaultValue": true,
-     "displayType": "checkbox",
-     "isVisible": true,
-     "domain": "global",
-     "serviceName": "HDFS"
-     },
-     */
     {
       "id": "puppet var",
       "name": "namenode_opt_maxnewsize",
@@ -230,7 +217,6 @@ module.exports =
       "unit": "MB",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "NameNode"
     },
@@ -244,7 +230,6 @@ module.exports =
       "displayType": "checkbox",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "Advanced"
     },
@@ -258,25 +243,11 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HDFS",
       "category": "NameNode"
     },
-    {
-      "id": "puppet var",
-      "name": "hcat_conf_dir",
-      "displayName": "HCat conf directory",
-      "description": "",
-      "defaultValue": "",
-      "isRequired": false,
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "HDFS",
-      "category": "Advanced"
-    },
-    /**********************************************HCFS***************************************/    
+
+  /**********************************************HCFS***************************************/
     {
       "id": "puppet var",
       "name": "fs_glusterfs_server",
@@ -285,7 +256,6 @@ module.exports =
       "defaultValue": "{firstHost}",
       "displayType": "string",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HCFS",
       "category": "General"
     },
@@ -297,7 +267,6 @@ module.exports =
       "defaultValue": "glusterfs://{firstHost}:9000",
       "displayType": "string",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HCFS",
       "category": "General"
     },
@@ -309,7 +278,6 @@ module.exports =
       "defaultValue": "HadoopVol",
       "displayType": "string",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HCFS",
       "category": "General"
     },
@@ -321,7 +289,6 @@ module.exports =
       "defaultValue": "/mnt/glusterfs",
       "displayType": "string",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HCFS",
       "category": "General"
     },
@@ -333,7 +300,6 @@ module.exports =
       "defaultValue": "false",
       "displayType": "string",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HCFS",
       "category": "General"
     },
@@ -345,7 +311,6 @@ module.exports =
       "defaultValue": "org.apache.hadoop.fs.glusterfs.GlusterFileSystem",
       "displayType": "string",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HCFS",
       "category": "General"
     },
@@ -357,7 +322,6 @@ module.exports =
       "defaultValue": "sudo getfattr -m . -n trusted.glusterfs.pathinfo",
       "displayType": "string",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HCFS",
       "category": "General"
     },
@@ -371,8 +335,8 @@ module.exports =
       "description": "The host that has been assigned to run JobTracker",
       "displayType": "masterHost",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MAPREDUCE",
       "category": "JobTracker",
       "index": 0
@@ -387,7 +351,6 @@ module.exports =
       "unit": "MB",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MAPREDUCE",
       "category": "JobTracker",
       "index": 1
@@ -402,7 +365,6 @@ module.exports =
       "unit": "MB",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MAPREDUCE",
       "category": "JobTracker",
       "index": 2
@@ -417,7 +379,6 @@ module.exports =
       "unit": "MB",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MAPREDUCE",
       "category": "JobTracker",
       "index": 3
@@ -433,6 +394,7 @@ module.exports =
       "isOverridable": false,
       "isVisible": true,
       "isRequired": false,
+      "isRequiredByAgent": false,
       "domain": "tasktracker-global",
       "serviceName": "MAPREDUCE",
       "category": "TaskTracker",
@@ -440,20 +402,6 @@ module.exports =
     },
     {
       "id": "puppet var",
-      "name": "mapred_child_java_opts_sz",
-      "displayName": "Java options for MapReduce tasks",
-      "description": "Java options for the TaskTracker child processes.",
-      "defaultValue": "768",
-      "displayType": "int",
-      "unit": "MB",
-      "isVisible": true,
-      "domain": "tasktracker-global",
-      "serviceName": "MAPREDUCE",
-      "category": "TaskTracker",
-      "index": 4
-    },
-    {
-      "id": "puppet var",
       "name": "lzo_enabled",
       "displayName": "LZO compression",
       "description": "LZO compression enabled",
@@ -461,7 +409,6 @@ module.exports =
       "displayType": "checkbox",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName": "MAPREDUCE",
       "index": 11
     },
@@ -475,7 +422,6 @@ module.exports =
       "displayType": "checkbox",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName": "MAPREDUCE",
       "index": 12
     },
@@ -489,7 +435,6 @@ module.exports =
       "isOverridable": false,
       "displayType": "checkbox",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MAPREDUCE",
       "index": 13
     },
@@ -503,8 +448,8 @@ module.exports =
       "description": "The host that has been assigned to run HBase Master",
       "displayType": "masterHosts",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HBASE",
       "category": "HBase Master",
       "index": 0
@@ -519,7 +464,6 @@ module.exports =
       "unit": "MB",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HBASE",
       "category": "HBase Master",
       "index": 1
@@ -533,6 +477,7 @@ module.exports =
       "description": "The hosts that have been assigned to run RegionServer",
       "displayType": "slaveHosts",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
       "isRequired": false,
       "domain": "regionserver-global",
@@ -564,7 +509,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HBASE",
       "category": "Advanced"
     },
@@ -578,7 +522,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HBASE",
       "category": "Advanced"
     },
@@ -591,7 +534,6 @@ module.exports =
       "isRequired": true,
       "displayType": "advanced",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HBASE",
       "category": "Advanced"
     },
@@ -604,6 +546,7 @@ module.exports =
       "defaultValue": "",
       "description": "The host that has been assigned to run Hive Metastore",
       "displayType": "masterHost",
+      "isRequiredByAgent": false,
       "isOverridable": false,
       "isVisible": true,
       "serviceName": "HIVE",
@@ -622,7 +565,6 @@ module.exports =
       "isOverridable": false,
       "isVisible": false,
       "isReconfigurable": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 1
@@ -639,7 +581,6 @@ module.exports =
       "isVisible": false,
       "isOverridable": false,
       "isReconfigurable": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 1
@@ -655,7 +596,6 @@ module.exports =
       "displayType": "masterHost",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 1
@@ -687,7 +627,6 @@ module.exports =
       "radioName": "hive-database",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 2
@@ -703,7 +642,6 @@ module.exports =
       "isOverridable": false,
       "isVisible": false,
       "isObserved": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 3
@@ -716,10 +654,10 @@ module.exports =
       "defaultValue": "",
       "isReconfigurable": false,
       "displayType": "host",
+      "isRequiredByAgent": false,
       "isOverridable": false,
       "isVisible": false,
       "isObserved": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 3
@@ -733,9 +671,9 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "host",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": false,
       "isObserved": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 3
@@ -749,31 +687,15 @@ module.exports =
       "description": "The host where Hive Metastore database is located",
       "isReconfigurable": false,
       "displayType": "masterHost",
+      "isRequiredByAgent": false,
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Hive Metastore",
       "index": 3
     },
     {
       "id": "puppet var",
-      "name": "hive_database_name",
-      "displayName": "Database Name",
-      "description": "Database name used as the Hive Metastore",
-      "defaultValue": "hive",
-      "isReconfigurable": true,
-      "displayType": "host",
-      "isOverridable": false,
-      "isVisible": true,
-      "isObserved": true,
-      "domain": "global",
-      "serviceName": "HIVE",
-      "category": "Hive Metastore",
-      "index": 4
-    },
-    {
-      "id": "puppet var",
       "name": "hive_metastore_port",
       "displayName": "Hive metastore port",
       "description": "",
@@ -782,46 +704,6 @@ module.exports =
       "displayType": "int",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
-      "serviceName": "HIVE",
-      "category": "Advanced"
-    },
-    {
-      "id": "puppet var",
-      "name": "hive_lib",
-      "displayName": "Hive library",
-      "description": "",
-      "defaultValue": "/usr/lib/hive/lib/",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "HIVE",
-      "category": "Advanced"
-    },
-    {
-      "id": "puppet var",
-      "name": "hive_conf_dir",
-      "displayName": "Hive conf directory",
-      "description": "",
-      "defaultValue": "/etc/hive/conf",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "HIVE",
-      "category": "Advanced"
-    },
-    {
-      "id": "puppet var",
-      "name": "hive_dbroot",
-      "displayName": "Hive db directory",
-      "description": "",
-      "defaultValue": "/usr/lib/hive/lib",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -835,7 +717,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -849,7 +730,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -862,7 +742,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -875,7 +754,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "HIVE",
       "category": "Advanced"
     },
@@ -889,8 +767,8 @@ module.exports =
       "description": "The host that has been assigned to run WebHCat Server",
       "displayType": "masterHost",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "WEBHCAT",
       "category": "WebHCat Server"
     },
@@ -904,7 +782,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "WEBHCAT",
       "category": "Advanced"
     },
@@ -918,7 +795,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "WEBHCAT",
       "category": "Advanced"
     },
@@ -932,8 +808,8 @@ module.exports =
       "description": "The host that has been assigned to run Oozie Server",
       "displayType": "masterHost",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 0
@@ -951,27 +827,10 @@ module.exports =
       "isObserved": true,
       "isReconfigurable": false,
       "isOverridable": false,
-      //"domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 1
     },
-    // for new MySQL
-    /*{
-      "id": "puppet var",
-      "name": "oozie_ambari_database",
-      "displayName": "Database Type",
-      "value": "",
-      "defaultValue": "MySQL",
-      "description": "MySQL will be installed by Ambari",
-      "displayType": "masterHost",
-      "isVisible": false,
-      "isOverridable": false,
-      // "domain": "global",
-      "serviceName": "OOZIE",
-      "category": "Oozie Server",
-      "index": 1
-    },*/
     // for current derby
     {
       "id": "puppet var",
@@ -984,7 +843,6 @@ module.exports =
       "isVisible": false,
       "isReconfigurable": false,
       "isOverridable": false,
-      // "domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 1
@@ -1001,7 +859,6 @@ module.exports =
       "isVisible": false,
       "isReconfigurable": false,
       "isOverridable": false,
-      //"domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 1
@@ -1015,13 +872,8 @@ module.exports =
       "options": [
         {
           displayName: 'New Derby Database',
-          foreignKeys: ['oozie_derby_database','oozie_ambari_host']
+          foreignKeys: ['oozie_derby_database', 'oozie_ambari_host']
         },
-         /*{
-          displayName: 'New MySQL Database',
-          foreignKeys: ['oozie_ambari_database', 'oozie_ambari_host'],
-          hidden: !App.supports.hiveOozieExtraDatabases
-        },*/
         {
           displayName: 'Existing MySQL Database',
           foreignKeys: ['oozie_existing_mysql_database', 'oozie_existing_mysql_host'],
@@ -1039,7 +891,6 @@ module.exports =
       "isOverridable": false,
       "radioName": "oozie-database",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 2
@@ -1054,59 +905,58 @@ module.exports =
       "isOverridable": false,
       "displayType": "host",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 3
     },
-      {
-          "id": "puppet var",
-          "name": "oozie_existing_mysql_host",
-          "displayName": "Database Host",
-          "description": "Specify the host on which the existing database is hosted",
-          "defaultValue": "",
-          "isReconfigurable": false,
-          "isOverridable": false,
-          "displayType": "host",
-          "isVisible": false,
-          "isObserved": true,
-          "domain": "global",
-          "serviceName": "OOZIE",
-          "category": "Oozie Server",
-          "index": 3
-      },
-      {
-          "id": "puppet var",
-          "name": "oozie_existing_oracle_host",
-          "displayName": "Database Host",
-          "description": "Specify the host on which the existing database is hosted",
-          "defaultValue": "",
-          "isReconfigurable": false,
-          "isOverridable": false,
-          "displayType": "host",
-          "isVisible": false,
-          "isObserved": true,
-          "domain": "global",
-          "serviceName": "OOZIE",
-          "category": "Oozie Server",
-          "index": 3
-      },
-      {
-          "id": "puppet var",
-          "name": "oozie_ambari_host",
-          "value": "",
-          "defaultValue": "",
-          "displayName": "Database Host",
-          "description": "Host on which the database will be created by Ambari",
-          "isReconfigurable": false,
-          "isOverridable": false,
-          "displayType": "masterHost",
-          "isVisible": false,
-          "domain": "global",
-          "serviceName": "OOZIE",
-          "category": "Oozie Server",
-          "index": 3
-      },
+    {
+      "id": "puppet var",
+      "name": "oozie_existing_mysql_host",
+      "displayName": "Database Host",
+      "description": "Specify the host on which the existing database is hosted",
+      "defaultValue": "",
+      "isReconfigurable": false,
+      "isOverridable": false,
+      "displayType": "host",
+      "isRequiredByAgent": false,
+      "isVisible": false,
+      "isObserved": true,
+      "serviceName": "OOZIE",
+      "category": "Oozie Server",
+      "index": 3
+    },
+    {
+      "id": "puppet var",
+      "name": "oozie_existing_oracle_host",
+      "displayName": "Database Host",
+      "description": "Specify the host on which the existing database is hosted",
+      "defaultValue": "",
+      "isReconfigurable": false,
+      "isOverridable": false,
+      "isRequiredByAgent": false,
+      "displayType": "host",
+      "isVisible": false,
+      "isObserved": true,
+      "serviceName": "OOZIE",
+      "category": "Oozie Server",
+      "index": 3
+    },
+    {
+      "id": "puppet var",
+      "name": "oozie_ambari_host",
+      "value": "",
+      "defaultValue": "",
+      "displayName": "Database Host",
+      "description": "Host on which the database will be created by Ambari",
+      "isReconfigurable": false,
+      "isOverridable": false,
+      "isRequiredByAgent": false,
+      "displayType": "masterHost",
+      "isVisible": false,
+      "serviceName": "OOZIE",
+      "category": "Oozie Server",
+      "index": 3
+    },
     {
       "id": "puppet var",
       "name": "oozie_data_dir",
@@ -1119,7 +969,6 @@ module.exports =
       "isOverridable": false,
       "isVisible": true,
       "isRequired": false,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Oozie Server",
       "index": 8
@@ -1135,7 +984,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Advanced"
     },
@@ -1149,84 +997,9 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "OOZIE",
       "category": "Advanced"
     },
-    /*  {
-     "id": "puppet var",
-     "name": "oozie_database",
-     "displayName": "Oozie Database",
-     "value": "",
-     "defaultValue": "New PostgreSQL Database",
-     "options": [
-     {
-     displayName: 'New PostgreSQL Database',
-     foreignKeys: ['oozie_ambari_database', 'oozie_ambari_host']
-     },
-     {
-     displayName: 'Existing Database',
-     foreignKeys: ['oozie_existing_database', 'oozie_existing_host']
-     }
-     ],
-     "description": "PostgreSQL will be installed by ambari. Any other database will have to be installed by the user.",
-     "displayType": "radio button",
-     "radioName": "oozie-database",
-     "isVisible": true,
-     "serviceName": "OOZIE",
-     "category": "Oozie Server"
-     },
-     {
-     "id": "puppet var",
-     "name": "oozie_existing_database",
-     "displayName": "Oozie Database",
-     "value": "",
-     "defaultValue": "MySQL",
-     "description": "Select the database, if you already have existing one for Oozie.",
-     "displayType": "combobox",
-     "isVisible": false,
-     "options": ['MySQL', 'PostgreSQL'],
-     "serviceName": "OOZIE",
-     "category": "Oozie Server"
-     },
-     {
-     "id": "puppet var",
-     "name": "oozie_existing_host",
-     "displayName": "Database Host",
-     "description": "Select the host on which the existing database is hosted.",
-     "defaultValue": "",
-     "isReconfigurable": false,
-     "displayType": "host",
-     "isVisible": false,
-     "serviceName": "OOZIE",
-     "category": "Oozie Server"
-     },
-     {
-     "id": "puppet var",
-     "name": "oozie_ambari_database",
-     "displayName": "Oozie Database",
-     "value": "",
-     "defaultValue": "PostgreSQL",
-     "description": "PostgreSQL will be installed by ambari.",
-     "displayType": "masterHost",
-     "isVisible": true,
-     "serviceName": "OOZIE",
-     "category": "Oozie Server"
-     },
-     {
-     "id": "puppet var",
-     "name": "oozie_ambari_host",
-     "value": "",
-     "defaultValue": "",
-     "displayName": "PostgreSQL host",
-     "description": "Host  on which the PostgreSQL database will be created by ambari. ",
-     "isReconfigurable": false,
-     "displayType": "masterHost",
-     "isVisible": true,
-     "serviceName": "OOZIE",
-     "category": "Oozie Server"
-     },
-     */
   /**********************************************NAGIOS***************************************/
     {
       "id": "puppet var",
@@ -1237,7 +1010,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "user",
       "isOverridable": false,
-      "domain": "global",
       "isVisible": true,
       "serviceName": "NAGIOS",
       "index": 0
@@ -1252,7 +1024,6 @@ module.exports =
       "displayType": "password",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "NAGIOS",
       "index": 1
     },
@@ -1265,7 +1036,6 @@ module.exports =
       "displayType": "email",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "NAGIOS",
       "index": 2
     },
@@ -1278,6 +1048,7 @@ module.exports =
       "defaultValue": "",
       "description": "The host that has been assigned to run ZooKeeper Server",
       "displayType": "masterHosts",
+      "isRequiredByAgent": false,
       "isVisible": true,
       "isOverridable": false,
       "isRequired": false,
@@ -1295,7 +1066,6 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "ZooKeeper Server",
       "index": 1
@@ -1310,7 +1080,6 @@ module.exports =
       "unit": "ms",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "ZooKeeper Server",
       "index": 2
@@ -1324,7 +1093,6 @@ module.exports =
       "displayType": "int",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "ZooKeeper Server",
       "index": 3
@@ -1338,7 +1106,6 @@ module.exports =
       "displayType": "int",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "ZooKeeper Server",
       "index": 4
@@ -1352,7 +1119,6 @@ module.exports =
       "displayType": "int",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "ZooKeeper Server",
       "index": 5
@@ -1367,7 +1133,6 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "Advanced",
       "index": 0
@@ -1382,24 +1147,10 @@ module.exports =
       "displayType": "directory",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "ZOOKEEPER",
       "category": "Advanced",
       "index": 1
     },
-    {
-      "id": "puppet var",
-      "name": "zk_pid_file",
-      "displayName": "ZooKeeper PID File",
-      "description": "",
-      "defaultValue": "/var/run/zookeeper/zookeeper_server.pid",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "ZOOKEEPER",
-      "category": "Advanced"
-    },
   /**********************************************HUE***************************************/
     {
       "id": "puppet var",
@@ -1409,9 +1160,9 @@ module.exports =
       "defaultValue": "",
       "description": "The host that has been assigned to run Hue Server",
       "displayType": "masterHost",
+      "isRequiredByAgent": false,
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HUE",
       "category": "Hue Server"
     },
@@ -1424,8 +1175,8 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HUE",
       "category": "Advanced"
     },
@@ -1438,8 +1189,8 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isOverridable": false,
+      "isRequiredByAgent": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "HUE",
       "category": "Advanced"
     },
@@ -1453,25 +1204,10 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "GANGLIA",
       "category": "Advanced"
     },
-  /**********************************************MISC***************************************/
-    {
-      "id": "puppet var",
-      "name": "hbase_conf_dir",
-      "displayName": "HBase conf dir",
-      "description": "",
-      "defaultValue": "/etc/hbase",
-      "isRequired": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General",
-      "belongsToService":[]
-    },
+  /**********************************************MISC******************************************/
     {
       "id": "puppet var",
       "name": "proxyuser_group",
@@ -1483,68 +1219,9 @@ module.exports =
       "isOverridable": false,
       "isVisible": true,
       "filename": "core-site.xml",
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["HIVE","WEBHCAT","OOZIE"]
-    },
-    {
-      "id": "puppet var",
-      "name": "dfs_datanode_address",
-      "displayName": "dfs_datanode_address",
-      "description": "",
-      "defaultValue": "50010",
-      "isReconfigurable": true,
-      "displayType": "int",
-      "isVisible": true,
-      "filename": "hdfs-site.xml",
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "Advanced",
-      "belongsToService":[]
-    },
-    {
-      "id": "puppet var",
-      "name": "dfs_datanode_http_address",
-      "displayName": "dfs_datanode_http_address",
-      "description": "",
-      "defaultValue": "50075",
-      "isReconfigurable": true,
-      "displayType": "int",
-      "isVisible": true,
-      "filename": "hdfs-site.xml",
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "Advanced",
-      "belongsToService":[]
-    },
-    {
-      "id": "puppet var",
-      "name": "gpl_artifacts_download_url",
-      "displayName": "gpl artifact download url",
-      "description": "",
-      "defaultValue": "",
-      "isReconfigurable": false,
-      "displayType": "advanced",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General",
-      "belongsToService":[]
-    },
-    {
-      "id": "puppet var",
-      "name": "apache_artifacts_download_url",
-      "displayName": "apache artifact download url",
-      "description": "",
-      "defaultValue": "",
-      "isReconfigurable": false,
-      "displayType": "advanced",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General",
-      "belongsToService":[]
+      "belongsToService": ["HIVE", "WEBHCAT", "OOZIE"]
     },
     {
       "id": "puppet var",
@@ -1555,53 +1232,10 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "General",
-      "belongsToService":[]
-    },
-    /*
-    {
-      "id": "puppet var",
-      "name": "ganglia_shell_cmds_dir",
-      "displayName": "ganglia_shell_cmds_dir",
-      "description": "",
-      "defaultValue": "/usr/libexec/hdp/ganglia",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General"
-    },
-    {
-      "id": "puppet var",
-      "name": "webserver_group",
-      "displayName": "ganglia_shell_cmds_dir",
-      "description": "",
-      "defaultValue": "apache",
-      "isReconfigurable": false,
-      "displayType": "advanced",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General"
-    },
-    */
-    /*
-    {
-      "id": "puppet var",
-      "name": "jdk_location",
-      "displayName": "URL to download 64-bit JDK",
-      "description": "URL from where the 64-bit JDK binary can be downloaded",
-      "defaultValue": "",
-      "isRequired": false,
-      "isReconfigurable": false,
-      "displayType": "url",
-      "isVisible": true,
-      "serviceName": "MISC"
+      "belongsToService": []
     },
-    */
     {
       "id": "puppet var",
       "name": "java64_home",
@@ -1612,144 +1246,11 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "directory",
       "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "belongsToService":[]
-    },
-    {
-      "id": "puppet var",
-      "name": "run_dir",
-      "displayName": "Hadoop run directory",
-      "description": "",
-      "defaultValue": "/var/run/hadoop",
-      "isRequired": false,
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
       "serviceName": "MISC",
-      "category": "Advanced",
-      "belongsToService":[]
+      "belongsToService": []
     },
     {
       "id": "puppet var",
-      "name": "hadoop_conf_dir",
-      "displayName": "Hadoop conf directory",
-      "description": "",
-      "defaultValue": "/etc/hadoop/conf",
-      "isRequired": false,
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "Advanced",
-      "belongsToService":[]
-    },
-    /*
-    {
-      "id": "puppet var",
-      "name": "hcat_metastore_port",
-      "displayName": "hcat_metastore_port",
-      "description": "",
-      "defaultValue": "/usr/lib/hcatalog/share/hcatalog",
-      "isRequired": true,
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC"
-    },
-    {
-      "id": "puppet var",
-      "name": "hcat_lib",
-      "displayName": "hcat_lib",
-      "description": "",
-      "defaultValue": "/usr/lib/hcatalog/share/hcatalog",
-      "isRequired": true,
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC"
-    },
-
-    {
-      "id": "puppet var",
-      "name": "hcat_dbroot",
-      "displayName": "hcat_dbroot",
-      "description": "",
-      "defaultValue": "/usr/lib/hcatalog/share/hcatalog",
-      "isRequired": true,
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC"
-    },
-    {
-      "id": "puppet var",
-      "name": "hcat_dbroot",
-      "displayName": "hcat_dbroot",
-      "description": "",
-      "defaultValue": "/usr/lib/hcatalog/share/hcatalog",
-      "isRequired": true,
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC"
-    },
-
-     {
-     "id": "puppet var",
-     "name": "hadoop_log_dir",
-     "displayName": "Hadoop Log Dir",
-     "description": "Directory for Hadoop log files",
-     "defaultValue": "/var/log/hadoop",
-     "isReconfigurable": false,
-     "displayType": "directory",
-     "isVisible":  true, "serviceName": "MISC",
-     "category": "Advanced"
-     },
-     {
-     "id": "puppet var",
-     "name": "hadoop_pid_dir",
-     "displayName": "Hadoop PID Dir",
-     "description": "Directory in which the pid files for Hadoop processes will be created",
-     "defaultValue": "/var/run/hadoop",
-     "isReconfigurable": false,
-     "displayType": "directory",
-     "isVisible":  true, "serviceName": "MISC",
-     "category": "Advanced"
-     },
-    {
-      "id": "puppet var",
-      "name": "using_local_repo",
-      "displayName": "Whether a local repo is being used",
-      "description": "Whether a local repo is being used",
-      "defaultValue": false,
-      "isReconfigurable": false,
-      "displayType": "checkbox",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC"
-    },
-    {
-      "id": "puppet var",
-      "name": "yum_repo_file",
-      "displayName": "Path to local repo file",
-      "description": "Path to local repository file that configures from where to download software packages",
-      "defaultValue": "/etc/yum.repos.d/hdp.repo",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": true,
-      "domain": "global",
-      "serviceName": "MISC"
-    },
-    */
-    {
-      "id": "puppet var",
       "name": "hdfs_user",
       "displayName": "HDFS User",
       "description": "User to run HDFS as",
@@ -1759,9 +1260,8 @@ module.exports =
       "isOverridable": false,
       "isVisible": true,
       "serviceName": "MISC",
-      "domain": "global",
       "category": "Users and Groups",
-      "belongsToService":["HDFS"]
+      "belongsToService": ["HDFS"]
     },
     {
       "id": "puppet var",
@@ -1773,10 +1273,9 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["MAPREDUCE"]
+      "belongsToService": ["MAPREDUCE"]
     },
     {
       "id": "puppet var",
@@ -1788,10 +1287,9 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["HBASE"]
+      "belongsToService": ["HBASE"]
     },
     {
       "id": "puppet var",
@@ -1803,10 +1301,9 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["HIVE"]
+      "belongsToService": ["HIVE"]
     },
     {
       "id": "puppet var",
@@ -1818,10 +1315,9 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["HCATALOG"]
+      "belongsToService": ["HCATALOG"]
     },
     {
       "id": "puppet var",
@@ -1833,10 +1329,9 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["WEBHCAT"]
+      "belongsToService": ["WEBHCAT"]
     },
     {
       "id": "puppet var",
@@ -1848,68 +1343,10 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["OOZIE"]
+      "belongsToService": ["OOZIE"]
     },
-    /*
-    {
-      "id": "puppet var",
-      "name": "oozie_conf_dir",
-      "displayName": "Oozie conf dir",
-      "description": "",
-      "defaultValue": "/etc/oozie",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General"
-    },
-
-    {
-      "id": "puppet var",
-      "name": "pig_conf_dir",
-      "displayName": "Pig conf dir",
-      "description": "",
-      "defaultValue": "/etc/pig",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General"
-    },
-    */
-    /*
-    {
-      "id": "puppet var",
-      "name": "sqoop_conf_dir",
-      "displayName": "sqoop conf dir",
-      "description": "",
-      "defaultValue": "/etc/sqoop",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General"
-    },
-    {
-      "id": "puppet var",
-      "name": "sqoop_lib",
-      "displayName": "sqoop conf dir",
-      "description": "",
-      "defaultValue": "/usr/lib/sqoop/lib/",
-      "isReconfigurable": false,
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General"
-    },
-    */
     {
       "id": "puppet var",
       "name": "zk_user",
@@ -1920,10 +1357,9 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["ZOOKEEPER"]
+      "belongsToService": ["ZOOKEEPER"]
     },
     {
       "id": "puppet var",
@@ -1935,10 +1371,9 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["GANGLIA"]
+      "belongsToService": ["GANGLIA"]
     },
     {
       "id": "puppet var",
@@ -1950,10 +1385,9 @@ module.exports =
       "displayType": "advanced",
       "isOverridable": false,
       "isVisible": false,
-      "domain": "global",
-      "serviceName":"MISC",
+      "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":[]
+      "belongsToService": []
     },
     {
       "id": "puppet var",
@@ -1964,11 +1398,10 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "user",
       "isOverridable": false,
-      "domain": "global",
       "isVisible": true,
-      "serviceName":"MISC",
+      "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["NAGIOS"]
+      "belongsToService": ["NAGIOS"]
     },
     {
       "id": "puppet var",
@@ -1979,11 +1412,10 @@ module.exports =
       "isReconfigurable": false,
       "displayType": "user",
       "isOverridable": false,
-      "domain": "global",
       "isVisible": true,
-      "serviceName":"MISC",
+      "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["NAGIOS"]
+      "belongsToService": ["NAGIOS"]
     },
     {
       "id": "puppet var",
@@ -1995,10 +1427,9 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": App.supports.customizeSmokeTestUser,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["HDFS"]
+      "belongsToService": ["HDFS"]
     },
     {
       "id": "puppet var",
@@ -2010,25 +1441,10 @@ module.exports =
       "displayType": "user",
       "isOverridable": false,
       "isVisible": true,
-      "domain": "global",
       "serviceName": "MISC",
       "category": "Users and Groups",
-      "belongsToService":["HDFS"]
-    },
-    /*
-    {
-      "id": "puppet var",
-      "name": "zk_conf_dir",
-      "displayName": "zk_conf_dir",
-      "description": "",
-      "defaultValue": "/etc/conf/",
-      "displayType": "directory",
-      "isVisible": false,
-      "domain": "global",
-      "serviceName": "MISC",
-      "category": "General"
+      "belongsToService": ["HDFS"]
     },
-    */
     {
       "id": "puppet var",
       "name": "rrdcached_base_dir",
@@ -2038,11 +1454,10 @@ module.exports =
       "displayType": "directory",
       "isReconfigurable": true,
       "isOverridable": false,
-      "domain": "global",
       "isVisible": true,
       "serviceName": "GANGLIA",
       "category": "General",
-      "belongsToService":["GANGLIA"]
+      "belongsToService": ["GANGLIA"]
     }
   ]
 };

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/ambari-web/app/data/secure_mapping.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/secure_mapping.js b/ambari-web/app/data/secure_mapping.js
index 8fb49eb..2dacffb 100644
--- a/ambari-web/app/data/secure_mapping.js
+++ b/ambari-web/app/data/secure_mapping.js
@@ -123,18 +123,18 @@ module.exports = [
     "serviceName": "HDFS"
   },
   {
-    "name": "dfs.datanode.address",
+    "name": "ambari.dfs.datanode.port",
     "templateName": ["dfs_datanode_address"],
     "foreignKey": null,
-    "value": "0.0.0.0:<templateName[0]>",
+    "value": "<templateName[0]>",
     "filename": "hdfs-site.xml",
     "serviceName": "HDFS"
   },
   {
-    "name": "dfs.datanode.http.address",
+    "name": "ambari.dfs.datanode.http.port",
     "templateName": ["dfs_datanode_http_address"],
     "foreignKey": null,
-    "value": "0.0.0.0:<templateName[0]>",
+    "value": "<templateName[0]>",
     "filename": "hdfs-site.xml",
     "serviceName": "HDFS"
   },

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/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 fdf7326..acdc2a8 100644
--- a/ambari-web/app/data/site_properties.js
+++ b/ambari-web/app/data/site_properties.js
@@ -344,6 +344,18 @@ module.exports =
       "category": "Advanced",
       "serviceName": "MAPREDUCE"
     },
+    {
+      "id": "site property",
+      "name": "ambari.mapred.child.java.opts.memory",
+      "displayName": "Java options for MapReduce tasks",
+      "description": "Java options for the TaskTracker child processes.",
+      "defaultValue": "",
+      "displayType": "int",
+      "unit": "MB",
+      "category": "TaskTracker",
+      "serviceName": "MAPREDUCE",
+      "index": 4
+    },
 
   /**********************************************oozie-site***************************************/
     {
@@ -460,6 +472,20 @@ module.exports =
       "serviceName": "HIVE",
       "index": 7
     },
+    {
+      "id": "site property",
+      "name": "ambari.hive.db.schema.name",
+      "displayName": "Database Name",
+      "description": "Database name used as the Hive Metastore",
+      "defaultValue": "",
+      "isReconfigurable": true,
+      "displayType": "host",
+      "isOverridable": false,
+      "isObserved": true,
+      "serviceName": "HIVE",
+      "category": "Hive Metastore",
+      "index": 4
+    },
 
   /**********************************************hbase-site***************************************/
     {

http://git-wip-us.apache.org/repos/asf/ambari/blob/5100bb26/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 a0eb8f1..68b7a69 100644
--- a/ambari-web/app/models/service_config.js
+++ b/ambari-web/app/models/service_config.js
@@ -146,6 +146,7 @@ App.ServiceConfigProperty = Ember.Object.extend({
   isReconfigurable: true, // by default a config property is reconfigurable
   isEditable: true, // by default a config property is editable
   isVisible: true,
+  isRequiredByAgent: true, // Setting it to true implies property will be stored in global configuration
   isSecureConfig: false,
   errorMessage: '',
   warnMessage: '',