http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/utils/configs/config_property_helper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/config_property_helper.js 
b/ambari-web/app/utils/configs/config_property_helper.js
index 07226c5..63b7290 100644
--- a/ambari-web/app/utils/configs/config_property_helper.js
+++ b/ambari-web/app/utils/configs/config_property_helper.js
@@ -36,14 +36,14 @@ module.exports = {
       case 'dfs.https.address':
       case 'dfs.namenode.https-address':
         var nnHost =  masterComponentHostsInDB.findProperty('component', 
'NAMENODE').hostName;
-        this.setDefaultValue(configProperty, hostWithPort,nnHost);
+        this.setRecommendedValue(configProperty, hostWithPort,nnHost);
         break;
       case 'fs.default.name':
       case 'fs.defaultFS':
       case 'hbase.rootdir':
       case 'instance.volumes':
         var nnHost = masterComponentHostsInDB.filterProperty('component', 
'NAMENODE').mapProperty('hostName');
-        this.setDefaultValue(configProperty, hostWithPrefix,'://' + nnHost);
+        this.setRecommendedValue(configProperty, hostWithPrefix,'://' + 
nnHost);
         break;
       case 'snamenode_host':
         // Secondary NameNode does not exist when NameNode HA is enabled
@@ -56,7 +56,7 @@ module.exports = {
       case 'dfs.namenode.secondary.http-address':
         var snnHost = masterComponentHostsInDB.findProperty('component', 
'SECONDARY_NAMENODE');
         if (snnHost) {
-          this.setDefaultValue(configProperty, hostWithPort,snnHost.hostName);
+          this.setRecommendedValue(configProperty, 
hostWithPort,snnHost.hostName);
         }
         break;
       case 'datanode_hosts':
@@ -73,12 +73,12 @@ module.exports = {
         break;
       case 'yarn.log.server.url':
         var hsHost = masterComponentHostsInDB.filterProperty('component', 
'HISTORYSERVER').mapProperty('hostName');
-        this.setDefaultValue(configProperty, hostWithPrefix,'://' + hsHost);
+        this.setRecommendedValue(configProperty, hostWithPrefix,'://' + 
hsHost);
         break;
       case 'mapreduce.jobhistory.webapp.address':
       case 'mapreduce.jobhistory.address':
         var hsHost = masterComponentHostsInDB.filterProperty('component', 
'HISTORYSERVER').mapProperty('hostName');
-        this.setDefaultValue(configProperty, hostWithPort,hsHost);
+        this.setRecommendedValue(configProperty, hostWithPort,hsHost);
         break;
       case 'rm_host':
         configProperty.set('value', 
masterComponentHostsInDB.findProperty('component', 'RESOURCEMANAGER').hostName);
@@ -92,8 +92,8 @@ module.exports = {
         break;
       case 'yarn.resourcemanager.hostname':
         var rmHost = masterComponentHostsInDB.findProperty('component', 
'RESOURCEMANAGER').hostName;
-        configProperty.set('defaultValue',rmHost);
-        configProperty.set('value',configProperty.get('defaultValue'));
+        configProperty.set('recommendedValue',rmHost);
+        configProperty.set('value',configProperty.get('recommendedValue'));
         break;
       case 'yarn.resourcemanager.resource-tracker.address':
       case 'yarn.resourcemanager.webapp.https.address':
@@ -102,14 +102,14 @@ module.exports = {
       case 'yarn.resourcemanager.address':
       case 'yarn.resourcemanager.admin.address':
         var rmHost = masterComponentHostsInDB.findProperty('component', 
'RESOURCEMANAGER').hostName;
-        this.setDefaultValue(configProperty, hostWithPort,rmHost);
+        this.setRecommendedValue(configProperty, hostWithPort,rmHost);
         break;
       case 'yarn.timeline-service.webapp.address':
       case 'yarn.timeline-service.webapp.https.address':
       case 'yarn.timeline-service.address':
         var atsHost =  masterComponentHostsInDB.findProperty('component', 
'APP_TIMELINE_SERVER');
         if (atsHost && atsHost.hostName) {
-          this.setDefaultValue(configProperty, hostWithPort,atsHost.hostName);
+          this.setRecommendedValue(configProperty, 
hostWithPort,atsHost.hostName);
         }
         break;
       case 'nm_hosts':
@@ -121,11 +121,11 @@ module.exports = {
       case 'mapred.job.tracker':
       case 'mapred.job.tracker.http.address':
         var jtHost = masterComponentHostsInDB.findProperty('component', 
'JOBTRACKER').hostName;
-        this.setDefaultValue(configProperty, hostWithPort,jtHost);
+        this.setRecommendedValue(configProperty, hostWithPort,jtHost);
         break;
       case 'mapreduce.history.server.http.address':
         var jtHost = masterComponentHostsInDB.findProperty('component', 
'HISTORYSERVER').hostName;
-        this.setDefaultValue(configProperty, hostWithPort,jtHost);
+        this.setRecommendedValue(configProperty, hostWithPort,jtHost);
         break;
       case 'tasktracker_hosts':
         configProperty.set('value', 
slaveComponentHostsInDB.findProperty('componentName', 
'TASKTRACKER').hosts.mapProperty('hostName'));
@@ -164,7 +164,7 @@ module.exports = {
         break;
       case 'oozie.base.url':
         var oozieHost = masterComponentHostsInDB.findProperty('component', 
'OOZIE_SERVER').hostName;
-        this.setDefaultValue(configProperty, hostWithPrefix,'://' + oozieHost);
+        this.setRecommendedValue(configProperty, hostWithPrefix,'://' + 
oozieHost);
         break;
       case 'webhcatserver_host':
         configProperty.set('value', 
masterComponentHostsInDB.findProperty('component', 'WEBHCAT_SERVER').hostName);
@@ -181,12 +181,12 @@ module.exports = {
       case 'hive_existing_mssql_server_host':
       case 'hive_existing_mssql_server_2_host':
         var hiveServerHost = 
masterComponentHostsInDB.findProperty('component', 'HIVE_SERVER').hostName;
-        configProperty.set('value', hiveServerHost).set('defaultValue', 
hiveServerHost);
+        configProperty.set('value', hiveServerHost).set('recommendedValue', 
hiveServerHost);
         break;
       case 'hive.metastore.uris':
         var hiveMSUris = this.getHiveMetastoreUris(masterComponentHostsInDB, 
dependencies['hive.metastore.uris']);
         if (hiveMSUris) {
-          this.setDefaultValue(configProperty, "(.*)", hiveMSUris);
+          this.setRecommendedValue(configProperty, "(.*)", hiveMSUris);
         }
         break;
       case 'oozie_existing_mysql_host':
@@ -195,7 +195,7 @@ module.exports = {
       case 'oozie_existing_mssql_server_host':
       case 'oozie_existing_mssql_server_2_host':
         var oozieServerHost = 
masterComponentHostsInDB.findProperty('component', 'OOZIE_SERVER').hostName;
-        configProperty.set('value', oozieServerHost).set('defaultValue', 
oozieServerHost);
+        configProperty.set('value', oozieServerHost).set('recommendedValue', 
oozieServerHost);
         break;
       case 'storm.zookeeper.servers':
       case 'zookeeperserver_hosts':
@@ -243,14 +243,14 @@ module.exports = {
       case 'hbase.zookeeper.quorum':
         if (configProperty.get('filename') == 'hbase-site.xml') {
           var zkHosts = masterComponentHostsInDB.filterProperty('component', 
'ZOOKEEPER_SERVER').mapProperty('hostName');
-          this.setDefaultValue(configProperty, "(\\w*)", zkHosts);
+          this.setRecommendedValue(configProperty, "(\\w*)", zkHosts);
         }
         break;
       case 'yarn.resourcemanager.zk-address':
         var value = masterComponentHostsInDB.findProperty('component', 
'ZOOKEEPER_SERVER').hostName + ':' + dependencies.clientPort;
         configProperty.setProperties({
           value: value,
-          defaultValue: value
+          recommendedValue: value
         });
         break;
       case 'zookeeper.connect':
@@ -262,21 +262,21 @@ module.exports = {
         var zkHosts = masterComponentHostsInDB.filterProperty('component', 
'ZOOKEEPER_SERVER').mapProperty('hostName');
         var zkHostPort = zkHosts;
         var regex = "\\w*:(\\d+)";   //regex to fetch the port
-        var portValue = configProperty.get('defaultValue').match(new 
RegExp(regex));
+        var portValue = configProperty.get('recommendedValue').match(new 
RegExp(regex));
         if (!portValue) return;
         if (portValue[1]) {
           for ( var i = 0; i < zkHosts.length; i++ ) {
             zkHostPort[i] = zkHosts[i] + ":" + portValue[1];
           }
         }
-        this.setDefaultValue(configProperty, "(.*)", zkHostPort);
+        this.setRecommendedValue(configProperty, "(.*)", zkHostPort);
         break;
       case 'templeton.hive.properties':
         var hiveMSUris = this.getHiveMetastoreUris(masterComponentHostsInDB, 
dependencies['hive.metastore.uris']).replace(',', '\\,');
         if (/\/\/localhost:/g.test(configProperty.get('value'))) {
-          configProperty.set('defaultValue', configProperty.get('value') + 
',hive.metastore.execute.setugi=true');
+          configProperty.set('recommendedValue', configProperty.get('value') + 
',hive.metastore.execute.setugi=true');
         }
-        this.setDefaultValue(configProperty, 
"(hive\\.metastore\\.uris=)([^\\,]+)", "$1" + hiveMSUris);
+        this.setRecommendedValue(configProperty, 
"(hive\\.metastore\\.uris=)([^\\,]+)", "$1" + hiveMSUris);
         break;
       case 'dfs.name.dir':
       case 'dfs.namenode.name.dir':
@@ -306,7 +306,7 @@ module.exports = {
         break;
       case '*.broker.url':
         var falconServerHost = 
masterComponentHostsInDB.findProperty('component', 'FALCON_SERVER').hostName;
-        this.setDefaultValue(configProperty, 'localhost', falconServerHost);
+        this.setRecommendedValue(configProperty, 'localhost', 
falconServerHost);
         break;
       case 'RANGER_HOST':
         var rangerAdminHost = 
masterComponentHostsInDB.findProperty('component', 'RANGER_ADMIN');
@@ -331,7 +331,7 @@ module.exports = {
         var masterComponent = 
masterComponentHostsInDB.findProperty('component', 'RANGER_ADMIN'),
           rangerServerHost = masterComponent ? 
masterComponentHostsInDB.findProperty('component', 'RANGER_ADMIN').hostName : 
'';
         if (rangerServerHost) {
-          configProperty.set('value', rangerServerHost).set('defaultValue', 
rangerServerHost);
+          configProperty.set('value', 
rangerServerHost).set('recommendedValue', rangerServerHost);
         }
         break;
     }
@@ -340,14 +340,14 @@ module.exports = {
   /**
    * Get hive.metastore.uris initial value
    * @param hosts
-   * @param defaultValue
+   * @param recommendedValue
    * @returns {string}
    */
-  getHiveMetastoreUris: function (hosts, defaultValue) {
+  getHiveMetastoreUris: function (hosts, recommendedValue) {
     var hiveMSHosts = hosts.filterProperty('component', 
'HIVE_METASTORE').mapProperty('hostName'),
       hiveMSUris = hiveMSHosts,
       regex = "\\w*:(\\d+)",
-      portValue = defaultValue && defaultValue.match(new RegExp(regex));
+      portValue = recommendedValue && recommendedValue.match(new 
RegExp(regex));
 
     if (!portValue) return '';
     if (portValue[1]) {
@@ -363,12 +363,12 @@ module.exports = {
    * @param replaceWith : String
    * @param configProperty
    */
-  setDefaultValue: function(configProperty, regex, replaceWith) {
-    var defaultValue = configProperty.get('defaultValue');
+  setRecommendedValue: function(configProperty, regex, replaceWith) {
+    var recommendedValue = !Em.isNone(configProperty.get('recommendedValue')) 
? configProperty.get('recommendedValue') : '';
     var re = new RegExp(regex);
-    defaultValue = defaultValue.replace(re,replaceWith);
-    configProperty.set('defaultValue',defaultValue);
-    configProperty.set('value',configProperty.get('defaultValue'));
+    recommendedValue = recommendedValue.replace(re,replaceWith);
+    configProperty.set('recommendedValue', recommendedValue);
+    configProperty.set('value', 
!Em.isNone(configProperty.get('recommendedValue')) ? 
configProperty.get('recommendedValue') : '');
   },
 
   unionAllMountPoints: function (configProperty, isOnlyFirstOneNeeded, 
localDB) {
@@ -543,7 +543,7 @@ module.exports = {
           mPoint += eachDrive.mountpoint + 
configProperty.get('defaultDirectory') + "\n";
         }
         configProperty.set('value', mPoint);
-        configProperty.set('defaultValue', mPoint);
+        configProperty.set('recommendedValue', mPoint);
       }, this);
     } else {
       var mPoint = allMountPoints[0].mountpoint;
@@ -570,7 +570,7 @@ module.exports = {
         mPoint = mPoint + configProperty.get('defaultDirectory');
       }
       configProperty.set('value', mPoint);
-      configProperty.set('defaultValue', mPoint);
+      configProperty.set('recommendedValue', mPoint);
     }
   }
 };

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views.js b/ambari-web/app/views.js
index 6af5d2f..a684f41 100644
--- a/ambari-web/app/views.js
+++ b/ambari-web/app/views.js
@@ -30,7 +30,6 @@ require('views/common/modal_popups/alert_popup');
 require('views/common/modal_popups/confirmation_feedback_popup');
 require('views/common/modal_popups/confirmation_popup');
 require('views/common/modal_popups/hosts_table_list_popup');
-require('views/common/modal_popups/prompt_popup');
 require('views/common/modal_popups/cluster_check_popup');
 require('views/common/modal_popups/invalid_KDC_popup');
 require('views/common/modal_popups/dependent_configs_list_popup');

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/configs/service_configs_by_category_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/service_configs_by_category_view.js 
b/ambari-web/app/views/common/configs/service_configs_by_category_view.js
index 5cfc3e9..3df706e 100644
--- a/ambari-web/app/views/common/configs/service_configs_by_category_view.js
+++ b/ambari-web/app/views/common/configs/service_configs_by_category_view.js
@@ -188,7 +188,7 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
           var affected = self.get("newAffectedProperties").objectAt(0),
             changedProperty = 
self.get("controller.stepConfigs").findProperty("serviceName", 
affected.sourceServiceName)
               .get("configs").findProperty("name", 
affected.changedPropertyName);
-          changedProperty.set('value', changedProperty.get('defaultValue'));
+          changedProperty.set('value', changedProperty.get('savedValue'));
           self.get("controller").set("miscModalVisible", false);
           this.hide();
         },
@@ -252,7 +252,7 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
           return false;
         }
 
-        var searchString = config.get('defaultValue') + 
config.get('description') +
+        var searchString = config.get('savedValue') + 
config.get('description') +
           config.get('displayName') + config.get('name') + config.get('value') 
+ config.getWithDefault('stackConfigProperty.displayName', '');
 
         if (config.get('overrides')) {
@@ -383,7 +383,8 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
       category: propertyObj.categoryName,
       id: 'site property',
       serviceName: propertyObj.serviceName,
-      defaultValue: null,
+      savedValue: null,
+      recommendedValue: null,
       supportsFinal: App.config.shouldSupportFinal(propertyObj.serviceName, 
propertyObj.filename),
       filename: propertyObj.filename || '',
       isUserProperty: true,
@@ -633,18 +634,18 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
   doRestoreDefaultValue: function (event) {
     var serviceConfigProperty = event.contexts[0];
     var value = serviceConfigProperty.get('value');
-    var dValue = serviceConfigProperty.get('defaultValue');
+    var savedValue = serviceConfigProperty.get('savedValue');
     var supportsFinal = serviceConfigProperty.get('supportsFinal');
-    var defaultIsFinal = serviceConfigProperty.get('defaultIsFinal');
+    var savedIsFinal = serviceConfigProperty.get('savedIsFinal');
 
-    if (dValue != null) {
+    if (savedValue != null) {
       if (serviceConfigProperty.get('displayType') === 'password') {
-        serviceConfigProperty.set('retypedPassword', dValue);
+        serviceConfigProperty.set('retypedPassword', savedValue);
       }
-      serviceConfigProperty.set('value', dValue);
+      serviceConfigProperty.set('value', savedValue);
     }
     if (supportsFinal) {
-      serviceConfigProperty.set('isFinal', defaultIsFinal);
+      serviceConfigProperty.set('isFinal', savedIsFinal);
     }
     this.configChangeObserver(serviceConfigProperty);
     Em.$('body>.tooltip').remove(); //some tooltips get frozen when their 
owner's DOM element is removed

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js 
b/ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js
index 03d3d3f..8ab8088 100644
--- a/ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js
@@ -59,13 +59,6 @@ App.CheckboxConfigWidgetView = App.ConfigWidgetView.extend({
   restoreValue: function () {
     this.$('input[type="checkbox"]:eq(0)').checkbox('click');
     this._super();
-  },
-
-  /**
-   * @method setRecommendedValue
-   */
-  setRecommendedValue: function () {
-    this.set('config.value', this.get('config.recommendedValue'));
   }
 
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js 
b/ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js
index a9346ab..2cb4488 100644
--- a/ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js
@@ -115,8 +115,7 @@ App.ComboConfigWidgetView = App.ConfigWidgetView.extend({
    * @method restoreValue
    */
   restoreValue: function() {
-    this._super();
-    this.setConfigValue({ context: this.get('config.defaultValue') });
+    this.setConfigValue({ context: this.get('config.savedValue') });
   },
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/configs/widgets/config_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/config_widget_view.js 
b/ambari-web/app/views/common/configs/widgets/config_widget_view.js
index 0b3939c..b7c1931 100644
--- a/ambari-web/app/views/common/configs/widgets/config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/config_widget_view.js
@@ -207,8 +207,8 @@ App.ConfigWidgetView = 
Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
    * @type {boolean}
    */
   valueIsChanged: function () {
-    return this.get('config.value') != this.get('config.defaultValue');
-  }.property('config.value'),
+    return !Em.isNone(this.get('config.savedValue')) && 
this.get('config.value') != this.get('config.savedValue');
+  }.property('config.value', 'config.savedValue'),
 
   /**
    * Enable/disable widget state
@@ -224,13 +224,31 @@ App.ConfigWidgetView = 
Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
    */
   restoreValue: function () {
     var self = this;
-    this.set('config.value', this.get('config.defaultValue'));
+    this.set('config.value', this.get('config.savedValue'));
     this.sendRequestRorDependentConfigs(this.get('config')).done(function() {
       self.restoreDependentConfigs(self.get('config'));
     });
 
     if (this.get('config.supportsFinal')) {
-      this.get('config').set('isFinal', this.get('config.defaultIsFinal'));
+      this.get('config').set('isFinal', this.get('config.savedIsFinal'));
+    }
+    Em.$('body > .tooltip').remove();
+  },
+
+  /**
+   * set <code>recommendedValue<code> to config
+   * and send request to change dependent configs
+   * @method setRecommendedValue
+   */
+  setRecommendedValue: function() {
+    var self = this;
+    this.set('config.value', this.get('config.recommendedValue'));
+    this.sendRequestRorDependentConfigs(this.get('config')).done(function() {
+      self.restoreDependentConfigs(self.get('config'));
+    });
+
+    if (this.get('config.supportsFinal')) {
+      this.get('config').set('isFinal', this.get('config.recommendedIsFinal'));
     }
     Em.$('body > .tooltip').remove();
   },
@@ -367,11 +385,6 @@ App.ConfigWidgetView = 
Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
       return true;
     }
     return this.isValueCompatibleWithWidget();
-  }.property('config.value', 'config.showAsTextBox'),
-
-  /**
-   * @method setRecommendedValue
-   */
-  setRecommendedValue: Em.required(Function)
+  }.property('config.value', 'config.showAsTextBox')
 
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js 
b/ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js
index be589b0..3f132ea 100644
--- 
a/ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js
+++ 
b/ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js
@@ -39,6 +39,7 @@ App.DirectoryConfigWidgetView = App.ConfigWidgetView.extend({
 
   didInsertElement: function() {
     this.initPopover();
+    this._super();
     this.set('config.displayType', 
this.get('config.stackConfigProperty.widget.type'));
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/configs/widgets/list_config_widget_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/widgets/list_config_widget_view.js 
b/ambari-web/app/views/common/configs/widgets/list_config_widget_view.js
index 149f87d..41bc203 100644
--- a/ambari-web/app/views/common/configs/widgets/list_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/list_config_widget_view.js
@@ -243,7 +243,7 @@ App.ListConfigWidgetView = App.ConfigWidgetView.extend({
    * @method setRecommendedValue
    */
   setRecommendedValue: function () {
-    this.set('config.value', this.get('config.recommendedValue'));
+    this._super();
     this.calculateInitVal();
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/configs/widgets/plain_config_text_field.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/widgets/plain_config_text_field.js 
b/ambari-web/app/views/common/configs/widgets/plain_config_text_field.js
index 27d6b3b..ba62dee 100644
--- a/ambari-web/app/views/common/configs/widgets/plain_config_text_field.js
+++ b/ambari-web/app/views/common/configs/widgets/plain_config_text_field.js
@@ -28,7 +28,7 @@ App.PlainConfigTextField = 
Ember.View.extend(App.SupportsDependentConfigs, {
   templateName: 
require('templates/common/configs/widgets/plain_config_text_field'),
   valueBinding: 'serviceConfig.value',
   classNames: ['widget-config-plain-text-field'],
-  placeholderBinding: 'serviceConfig.defaultValue',
+  placeholderBinding: 'serviceConfig.savedValue',
   unit: function() {
     return Em.getWithDefault(this, 
'serviceConfig.stackConfigProperty.valueAttributes.unit', false);
   }.property('serviceConfig.stackConfigProperty.valueAttributes.unit'),

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js 
b/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
index e618020..2924514 100644
--- a/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
@@ -99,8 +99,8 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
    */
   widgetDefaultValue: function () {
     var parseFunction = this.get('mirrorValueParseFunction');
-    return 
parseFunction(this.widgetValueByConfigAttributes(this.get('config.defaultValue')));
-  }.property('config.defaultValue'),
+    return 
parseFunction(this.widgetValueByConfigAttributes(this.get('config.savedValue')));
+  }.property('config.savedValue'),
 
   /**
    * Default value of config property transformed according widget format
@@ -240,8 +240,8 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
         }
       }
       // avoid precision during restore value
-      if (parsed == 
parseFunction(this.widgetValueByConfigAttributes(this.get('config.defaultValue'))))
 {
-        this.set('config.value', this.get('config.defaultValue'));
+      if (parsed == 
parseFunction(this.widgetValueByConfigAttributes(this.get('config.savedValue'))))
 {
+        this.set('config.value', this.get('config.savedValue'));
       }
     } else {
       this.set('isMirrorValueValid', false);
@@ -304,7 +304,7 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
       ticksLabels.push((items.length < 5 || index % 2 === 0 || items.length - 
1 == index) ? tick + ' ' + self.get('unitLabel') : '');
     });
 
-    // default-value marker should be added only if defaultValue is in range 
[min, max]
+    // default marker should be added only if recommendedValue is in range 
[min, max]
     if (recommendedValue <= this.get('maxMirrorValue') && recommendedValue >= 
this.get('minMirrorValue') && recommendedValue != '') {
       // process additional tick for default value if it not defined in 
previous computation
       if (!ticks.contains(recommendedValue)) {
@@ -410,7 +410,7 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
   },
 
   /**
-   * Restore <code>defaultValue</code> for config
+   * Restore <code>savedValue</code> for config
    * Restore <code>mirrorValue</code> too
    * @method restoreValue
    */
@@ -423,11 +423,19 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
    * @method setRecommendedValue
    */
   setRecommendedValue: function () {
-    this.setValue(this.get('config.recommendedValue'));
-    this.get('slider').setValue(this.get('mirrorValue'));
+    this._super();
+    this.get('slider').setValue(this.get('widgetRecommendedValue'));
   },
 
   /**
+   * Determines if config-value was changed
+   * @type {boolean}
+   */
+  valueIsChanged: function () {
+    return !Em.isNone(this.get('config.savedValue')) && 
this.get('parseFunction')(this.get('config.value')) != 
this.get('parseFunction')(this.get('config.savedValue'));
+  }.property('config.value', 'config.savedValue'),
+
+  /**
    * Run changeBoundariesOnce only once
    * @method changeBoundaries
    */

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js 
b/ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js
index fb5879d..231bacf 100644
--- a/ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js
+++ b/ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js
@@ -45,10 +45,10 @@ App.TimeIntervalSpinnerView = App.ConfigWidgetView.extend({
   /**
    * Default property value in widget format.
    *
-   * @property defaultValue
+   * @property savedValue
    * @type {Object[]}
    */
-  defaultValue: null,
+  savedValue: null,
 
   /**
    * Maximum property value in widget format.
@@ -92,7 +92,7 @@ App.TimeIntervalSpinnerView = App.ConfigWidgetView.extend({
    * Content setter.
    * Affects to view attributes:
    *  @see propertyUnit
-   *  @see defaultValue
+   *  @see savedValue
    *  @see minValue
    *  @see maxValue
    *       content
@@ -167,7 +167,7 @@ App.TimeIntervalSpinnerView = App.ConfigWidgetView.extend({
    * @method checkModified
    */
   checkModified: function() {
-    this.set('valueIsChanged', this.configValueByWidget(this.get('content')) 
!= parseInt(this.get('config.defaultValue')));
+    this.set('valueIsChanged', this.configValueByWidget(this.get('content')) 
!= parseInt(this.get('config.savedValue')));
   },
 
   /**
@@ -228,7 +228,7 @@ App.TimeIntervalSpinnerView = App.ConfigWidgetView.extend({
    */
   restoreValue: function() {
     this._super();
-    this.set('content', 
this.generateWidgetValue(this.get('config.defaultValue')));
+    this.set('content', 
this.generateWidgetValue(this.get('config.savedValue')));
     this.parseIncrement();
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js 
b/ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js
index 8aec220..7f5d283 100644
--- a/ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js
@@ -163,6 +163,7 @@ App.ToggleConfigWidgetView = App.ConfigWidgetView.extend({
    * @method setRecommendedValue
    */
   setRecommendedValue: function () {
+    this._super();
     this.setValue(this.get('config.recommendedValue'));
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/controls_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/controls_view.js 
b/ambari-web/app/views/common/controls_view.js
index 6dd82b7..7263475 100644
--- a/ambari-web/app/views/common/controls_view.js
+++ b/ambari-web/app/views/common/controls_view.js
@@ -159,7 +159,7 @@ App.ServiceConfigTextField = 
Ember.TextField.extend(App.ServiceConfigPopoverSupp
 
   valueBinding: 'serviceConfig.value',
   classNameBindings: 'textFieldClassName',
-  placeholderBinding: 'serviceConfig.defaultValue',
+  placeholderBinding: 'serviceConfig.savedValue',
 
   keyPress: function (event) {
     if (event.keyCode == 13) {
@@ -203,7 +203,7 @@ App.ServiceConfigTextField = 
Ember.TextField.extend(App.ServiceConfigPopoverSupp
 App.ServiceConfigTextFieldWithUnit = 
Ember.View.extend(App.ServiceConfigPopoverSupport, 
App.SupportsDependentConfigs, {
   valueBinding: 'serviceConfig.value',
   classNames: ['input-append', 'with-unit'],
-  placeholderBinding: 'serviceConfig.defaultValue',
+  placeholderBinding: 'serviceConfig.savedValue',
 
   //Set editDone true for last edited config text field parameter
   focusOut: function () {
@@ -467,7 +467,7 @@ App.ServiceConfigRadioButtons = 
Ember.View.extend(App.ServiceConfigCalculateId,
         var hostNameDefault;
         var databaseNameDefault;
         var connectionUrlValue = connectionUrl.get('value');
-        var connectionUrlDefaultValue = connectionUrl.get('defaultValue');
+        var connectionUrlDefaultValue = connectionUrl.get('recommendedValue');
         var dbClassValue = dbClass.get('value');
         var serviceName = this.get('serviceConfig.serviceName');
         var isServiceInstalled = 
App.Service.find().someProperty('serviceName', serviceName);
@@ -478,8 +478,8 @@ App.ServiceConfigRadioButtons = 
Ember.View.extend(App.ServiceConfigCalculateId,
         var isNotExistingMySQLServer = this.get('serviceConfig.value') !== 
'Existing MSSQL Server database with integrated authentication';
         var categoryConfigsAll = this.get('categoryConfigsAll');
         if (isServiceInstalled) {
-          hostNameDefault = this.get('hostNameProperty.defaultValue');
-          databaseNameDefault = this.get('databaseNameProperty.defaultValue');
+          hostNameDefault = this.get('hostNameProperty.recommendedValue');
+          databaseNameDefault = 
this.get('databaseNameProperty.recommendedValue');
         } else {
           hostNameDefault = hostName;
           databaseNameDefault = databaseName;
@@ -615,12 +615,12 @@ App.ServiceConfigRadioButtons = 
Ember.View.extend(App.ServiceConfigCalculateId,
             }
             this.get('categoryConfigsAll').findProperty('name', 
'db_host').set('value', this.get('hostNameProperty.value'));
             sqlConnectorJAR.set('value',sqlConnectorJARValue);
-            sqlConnectorJAR.set('defaultValue',sqlConnectorJARValue);
+            sqlConnectorJAR.set('recommendedValue',sqlConnectorJARValue);
             sqlCommandInvoker.set('value', sqlCommand);
             break;
         }
         connectionUrl.set('value', connectionUrlValue);
-        connectionUrl.set('defaultValue', connectionUrlDefaultValue);
+        connectionUrl.set('recommendedValue', connectionUrlDefaultValue);
         dbClass.set('value', dbClassValue);
       }
     }
@@ -863,7 +863,7 @@ App.ServiceConfigRadioButton = Ember.Checkbox.extend({
 App.ServiceConfigComboBox = 
Ember.Select.extend(App.ServiceConfigPopoverSupport, 
App.ServiceConfigCalculateId, App.SupportsDependentConfigs, {
   contentBinding: 'serviceConfig.options',
   selectionBinding: 'serviceConfig.value',
-  placeholderBinding: 'serviceConfig.defaultValue',
+  placeholderBinding: 'serviceConfig.savedValue',
   classNames: [ 'span3' ]
 });
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/app/views/common/modal_popups/prompt_popup.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/modal_popups/prompt_popup.js 
b/ambari-web/app/views/common/modal_popups/prompt_popup.js
deleted file mode 100644
index df45489..0000000
--- a/ambari-web/app/views/common/modal_popups/prompt_popup.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var App = require('app');
-
-/**
- * Show prompt popup
- *
- * @param {String} text - additional text constant. Will be placed on the top 
of the input field
- * @param {Function} primary - "OK" button click handler
- * @param {String} defaultValue - additional text constant. Will be default 
value for input field
- * @param {Function} secondary
- * @return {*}
- */
-App.showPromptPopup = function (text, primary, defaultValue, secondary) {
-  if (!primary) {
-    return false;
-  }
-  return App.ModalPopup.show({
-    header: Em.I18n.t('popup.prompt.commonHeader'),
-    bodyClass: Em.View.extend({
-      templateName: require('templates/common/modal_popups/prompt_popup'),
-      text: text
-    }),
-    inputValue: defaultValue || '',
-    isInvalid: false,
-    errorMessage: '',
-    onPrimary: function () {
-      this.hide();
-      primary(this.get('inputValue'));
-    },
-    onSecondary: function () {
-      this.hide();
-      if (secondary) {
-        secondary();
-      }
-    }
-  });
-};

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js
 
b/ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js
index 21416d6..d9ed1df 100644
--- 
a/ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js
+++ 
b/ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js
@@ -267,22 +267,22 @@ describe('App.RMHighAvailabilityWizardStep3Controller', 
function () {
     it('setting new RM properties values', function () {
       controller.setDynamicConfigValues(configs, '2181', ':8088', ':8090');
       expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.hostname.rm1').get('value')).to.equal('h0');
-      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.hostname.rm1').get('defaultValue')).to.equal('h0');
+      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.hostname.rm1').get('recommendedValue')).to.equal('h0');
       expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.hostname.rm2').get('value')).to.equal('h1');
-      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.hostname.rm2').get('defaultValue')).to.equal('h1');
+      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.hostname.rm2').get('recommendedValue')).to.equal('h1');
 
       expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.address.rm1').get('value')).to.equal('h0:8088');
-      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.address.rm1').get('defaultValue')).to.equal('h0:8088');
+      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.address.rm1').get('recommendedValue')).to.equal('h0:8088');
       expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.address.rm2').get('value')).to.equal('h1:8088');
-      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.address.rm2').get('defaultValue')).to.equal('h1:8088');
+      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.address.rm2').get('recommendedValue')).to.equal('h1:8088');
 
       expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.https.address.rm1').get('value')).to.equal('h0:8090');
-      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.https.address.rm1').get('defaultValue')).to.equal('h0:8090');
+      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.https.address.rm1').get('recommendedValue')).to.equal('h0:8090');
       expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.https.address.rm2').get('value')).to.equal('h1:8090');
-      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.https.address.rm2').get('defaultValue')).to.equal('h1:8090');
+      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.webapp.https.address.rm2').get('recommendedValue')).to.equal('h1:8090');
 
       expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.zk-address').get('value')).to.equal('h2:2181,h3:2181');
-      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.zk-address').get('defaultValue')).to.equal('h2:2181,h3:2181');
+      expect(configs.configs.findProperty('name', 
'yarn.resourcemanager.zk-address').get('recommendedValue')).to.equal('h2:2181,h3:2181');
     });
 
   });

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/controllers/main/admin/kerberos/step4_controller_test.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/test/controllers/main/admin/kerberos/step4_controller_test.js 
b/ambari-web/test/controllers/main/admin/kerberos/step4_controller_test.js
index b45a3a4..780bc00 100644
--- a/ambari-web/test/controllers/main/admin/kerberos/step4_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/kerberos/step4_controller_test.js
@@ -180,8 +180,8 @@ describe('App.KerberosWizardStep4Controller', function() {
             getDBProperty: function() {
               return Em.A([
                 Em.Object.create({ name: 'realm', value: 'realm_value' }),
-                Em.Object.create({ name: 'admin_principal', value: 
'some_val1', defaultValue: 'some_val1', filename: 'krb5-conf.xml' }),
-                Em.Object.create({ name: 'admin_password', value: 
'some_password', defaultValue: 'some_password', filename: 'krb5-conf.xml' })
+                Em.Object.create({ name: 'admin_principal', value: 
'some_val1', recommendedValue: 'some_val1', filename: 'krb5-conf.xml' }),
+                Em.Object.create({ name: 'admin_password', value: 
'some_password', recommendedValue: 'some_password', filename: 'krb5-conf.xml' })
               ]);
             }
           })

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/controllers/main/service/info/config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/info/config_test.js 
b/ambari-web/test/controllers/main/service/info/config_test.js
index 7d46d9d..320edc8 100644
--- a/ambari-web/test/controllers/main/service/info/config_test.js
+++ b/ambari-web/test/controllers/main/service/info/config_test.js
@@ -606,138 +606,6 @@ describe("App.MainServiceInfoConfigsController", function 
() {
 
   });
 
-  describe("#addDynamicProperties", function() {
-
-    var tests = [
-      {
-        stepConfigs: [Em.Object.create({
-          serviceName: "HIVE",
-          configs: []
-        })],
-        content: Em.Object.create({
-          serviceName: "HIVE"
-        }),
-        m: "add dynamic property",
-        addDynamic: true
-      },
-      {
-        stepConfigs: [Em.Object.create({
-          serviceName: "HIVE",
-          configs: [
-            Em.Object.create({
-              name: "templeton.hive.properties"
-            })
-          ]
-        })],
-        content: Em.Object.create({
-          serviceName: "HIVE"
-        }),
-        m: "don't add dynamic property (already included)",
-        addDynamic: false
-      },
-      {
-        stepConfigs: [Em.Object.create({
-          serviceName: "HDFS",
-          configs: []
-        })],
-        content: Em.Object.create({
-          serviceName: "HDFS"
-        }),
-        m: "don't add dynamic property (wrong service)",
-        addDynamic: false
-      }
-    ];
-    var dynamicProperty = {
-      "name": "templeton.hive.properties",
-      "templateName": ["hive.metastore.uris"],
-      "foreignKey": null,
-      "value": 
"hive.metastore.local=false,hive.metastore.uris=<templateName[0]>,hive.metastore.sasl.enabled=yes,hive.metastore.execute.setugi=true,hive.metastore.warehouse.dir=/apps/hive/warehouse",
-      "filename": "webhcat-site.xml"
-    };
-
-
-
-    tests.forEach(function(t) {
-      it(t.m, function() {
-        mainServiceInfoConfigsController.set("content", t.content);
-        mainServiceInfoConfigsController.set("stepConfigs", t.stepConfigs);
-        var configs = [];
-        mainServiceInfoConfigsController.addDynamicProperties(configs);
-        if (t.addDynamic){
-          
expect(configs.findProperty("name","templeton.hive.properties")).to.deep.eql(dynamicProperty);
-        }
-      });
-    });
-  });
-
-  describe("#loadUiSideConfigs", function () {
-
-    var t = {
-      configMapping: [
-        {
-          foreignKey: null,
-          templateName: "",
-          value: "default",
-          name: "name1",
-          filename: "filename1"
-        },
-        {
-          foreignKey: "notNull",
-          templateName: "",
-          value: "default2",
-          name: "name2",
-          filename: "filename2"
-        }
-      ],
-      configMappingf: [
-        {
-          foreignKey: null,
-          templateName: "",
-          value: "default",
-          name: "name1",
-          filename: "filename1"
-        }
-      ],
-      valueWithOverrides: {
-        "value": "default",
-        "overrides": {
-          "value1": "value1",
-          "value2": "value2"
-        }
-      },
-      uiConfigs: [
-        {
-          "id": "site property",
-          "name": "name1",
-          "value": "default",
-          "filename": "filename1",
-          "overrides": {
-            "value1": "value1",
-            "value2": "value2"
-          }
-        }
-      ]
-    };
-
-    beforeEach(function(){
-      sinon.stub(mainServiceInfoConfigsController, "addDynamicProperties", 
Em.K);
-      sinon.stub(mainServiceInfoConfigsController, 
"getGlobConfigValueWithOverrides", function () {
-        return t.valueWithOverrides
-      });
-    });
-
-    afterEach(function(){
-      mainServiceInfoConfigsController.addDynamicProperties.restore();
-      
mainServiceInfoConfigsController.getGlobConfigValueWithOverrides.restore();
-    });
-
-    it("load ui config", function() {
-      
expect(mainServiceInfoConfigsController.loadUiSideConfigs(t.configMapping)[0]).to.deep.equal(t.uiConfigs[0]);
-      
expect(mainServiceInfoConfigsController.addDynamicProperties.calledWith(t.configMappingf)).to.equal(true);
-      
expect(mainServiceInfoConfigsController.getGlobConfigValueWithOverrides.calledWith(t.configMapping[0].templateName,
 t.configMapping[0].value, t.configMapping[0].name)).to.equal(true);
-    });
-  });
-
   describe("#formatConfigValues", function () {
     var t = {
       configs: [

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/controllers/wizard/step7_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/wizard/step7_test.js 
b/ambari-web/test/controllers/wizard/step7_test.js
index 044ebbb..7eeaa82 100644
--- a/ambari-web/test/controllers/wizard/step7_test.js
+++ b/ambari-web/test/controllers/wizard/step7_test.js
@@ -670,10 +670,10 @@ describe('App.InstallerStep7Controller', function () {
     it('should set property to true', function () {
       var allSelectedServiceNames = ['SLIDER', 'YARN'],
         configs = [
-          {name: 'hadoop.registry.rm.enabled', value: false, defaultValue: 
false}
+          {name: 'hadoop.registry.rm.enabled', value: false, recommendedValue: 
false}
         ],
         expected = [
-          {name: 'hadoop.registry.rm.enabled', value: true, defaultValue: 
true, forceUpdate: true}
+          {name: 'hadoop.registry.rm.enabled', value: true, recommendedValue: 
true}
         ];
       installerStep7Controller.reopen({allSelectedServiceNames: 
allSelectedServiceNames});
       installerStep7Controller.resolveYarnConfigs(configs);
@@ -683,10 +683,10 @@ describe('App.InstallerStep7Controller', function () {
     it('should set property to false', function () {
       var allSelectedServiceNames = ['YARN'],
         configs = [
-          {name: 'hadoop.registry.rm.enabled', value: true, defaultValue: true}
+          {name: 'hadoop.registry.rm.enabled', value: true, recommendedValue: 
true}
         ],
         expected = [
-          {name: 'hadoop.registry.rm.enabled', value: false, defaultValue: 
false, forceUpdate: true}
+          {name: 'hadoop.registry.rm.enabled', value: false, recommendedValue: 
false}
         ];
       installerStep7Controller.reopen({allSelectedServiceNames: 
allSelectedServiceNames});
       installerStep7Controller.resolveYarnConfigs(configs);
@@ -696,10 +696,10 @@ describe('App.InstallerStep7Controller', function () {
     it('should skip setting property', function () {
       var allSelectedServiceNames = ['YARN', 'SLIDER'],
         configs = [
-          {name: 'hadoop.registry.rm.enabled', value: true, defaultValue: true}
+          {name: 'hadoop.registry.rm.enabled', value: true, recommendedValue: 
true}
         ],
         expected = [
-          {name: 'hadoop.registry.rm.enabled', value: true, defaultValue: true}
+          {name: 'hadoop.registry.rm.enabled', value: true, recommendedValue: 
true}
         ];
       installerStep7Controller.reopen({allSelectedServiceNames: 
allSelectedServiceNames});
       installerStep7Controller.resolveYarnConfigs(configs);
@@ -727,14 +727,14 @@ describe('App.InstallerStep7Controller', function () {
     it('shouldn\'t do nothing if Ganglia and Storm are installed', function () 
{
       var installedServiceNames = ['GANGLIA', 'STORM'],
         configs = [
-          {name: 'nimbus.childopts', value: '.jar=host=host2', defaultValue: 
''},
-          {name: 'supervisor.childopts', value: '.jar=host=host2', 
defaultValue: ''},
-          {name: 'worker.childopts', value: '.jar=host=host2', defaultValue: 
''}
+          {name: 'nimbus.childopts', value: '.jar=host=host2', 
recommendedValue: ''},
+          {name: 'supervisor.childopts', value: '.jar=host=host2', 
recommendedValue: ''},
+          {name: 'worker.childopts', value: '.jar=host=host2', 
recommendedValue: ''}
         ],
         expected = [
-          {name: 'nimbus.childopts', value: '.jar=host=host2', defaultValue: 
''},
-          {name: 'supervisor.childopts', value: '.jar=host=host2', 
defaultValue: ''},
-          {name: 'worker.childopts', value: '.jar=host=host2', defaultValue: 
''}
+          {name: 'nimbus.childopts', value: '.jar=host=host2', 
recommendedValue: ''},
+          {name: 'supervisor.childopts', value: '.jar=host=host2', 
recommendedValue: ''},
+          {name: 'worker.childopts', value: '.jar=host=host2', 
recommendedValue: ''}
         ];
       installerStep7Controller.reopen({installedServiceNames: 
installedServiceNames});
       installerStep7Controller.resolveStormConfigs(configs);
@@ -744,14 +744,14 @@ describe('App.InstallerStep7Controller', function () {
     it('shouldn\'t do nothing if Ganglia is in allSelectedServiceNames', 
function () {
       var allSelectedServiceNames = ['GANGLIA'],
         configs = [
-          {name: 'nimbus.childopts', value: '.jar=host=host2', defaultValue: 
''},
-          {name: 'supervisor.childopts', value: '.jar=host=host2', 
defaultValue: ''},
-          {name: 'worker.childopts', value: '.jar=host=host2', defaultValue: 
''}
+          {name: 'nimbus.childopts', value: '.jar=host=host2', 
recommendedValue: ''},
+          {name: 'supervisor.childopts', value: '.jar=host=host2', 
recommendedValue: ''},
+          {name: 'worker.childopts', value: '.jar=host=host2', 
recommendedValue: ''}
         ],
         expected = [
-          {name: 'nimbus.childopts', value: '.jar=host=host1', defaultValue: 
'.jar=host=host1', forceUpdate: true},
-          {name: 'supervisor.childopts', value: '.jar=host=host1', 
defaultValue: '.jar=host=host1', forceUpdate: true},
-          {name: 'worker.childopts', value: '.jar=host=host1', defaultValue: 
'.jar=host=host1', forceUpdate: true}
+          {name: 'nimbus.childopts', value: '.jar=host=host1', 
recommendedValue: '.jar=host=host1'},
+          {name: 'supervisor.childopts', value: '.jar=host=host1', 
recommendedValue: '.jar=host=host1'},
+          {name: 'worker.childopts', value: '.jar=host=host1', 
recommendedValue: '.jar=host=host1'}
         ];
       installerStep7Controller.reopen({allSelectedServiceNames: 
allSelectedServiceNames});
       installerStep7Controller.resolveStormConfigs(configs);
@@ -763,14 +763,14 @@ describe('App.InstallerStep7Controller', function () {
     it('shouldn\'t do nothing if Ganglia is in installedServiceNames (2)', 
function () {
       var installedServiceNames = ['GANGLIA'],
         configs = [
-          {name: 'nimbus.childopts', value: '.jar=host=host2', defaultValue: 
''},
-          {name: 'supervisor.childopts', value: '.jar=host=host2', 
defaultValue: ''},
-          {name: 'worker.childopts', value: '.jar=host=host2', defaultValue: 
''}
+          {name: 'nimbus.childopts', value: '.jar=host=host2', 
recommendedValue: ''},
+          {name: 'supervisor.childopts', value: '.jar=host=host2', 
recommendedValue: ''},
+          {name: 'worker.childopts', value: '.jar=host=host2', 
recommendedValue: ''}
         ],
         expected = [
-          {name: 'nimbus.childopts', value: '.jar=host=host1', defaultValue: 
'.jar=host=host1', forceUpdate: true},
-          {name: 'supervisor.childopts', value: '.jar=host=host1', 
defaultValue: '.jar=host=host1', forceUpdate: true},
-          {name: 'worker.childopts', value: '.jar=host=host1', defaultValue: 
'.jar=host=host1', forceUpdate: true}
+          {name: 'nimbus.childopts', value: '.jar=host=host1', 
recommendedValue: '.jar=host=host1'},
+          {name: 'supervisor.childopts', value: '.jar=host=host1', 
recommendedValue: '.jar=host=host1'},
+          {name: 'worker.childopts', value: '.jar=host=host1', 
recommendedValue: '.jar=host=host1'}
         ];
       installerStep7Controller.reopen({installedServiceNames: 
installedServiceNames});
       installerStep7Controller.resolveStormConfigs(configs);
@@ -782,14 +782,14 @@ describe('App.InstallerStep7Controller', function () {
     it('should replace host name for *.childopts properties if Ganglia is in 
installedServiceNames for Add Service Wizard', function () {
       var installedServiceNames = ['GANGLIA'],
         configs = [
-          {name: 'nimbus.childopts', value: '.jar=host=host2', defaultValue: 
''},
-          {name: 'supervisor.childopts', value: '.jar=host=host2', 
defaultValue: ''},
-          {name: 'worker.childopts', value: '.jar=host=host2', defaultValue: 
''}
+          {name: 'nimbus.childopts', value: '.jar=host=host2', 
recommendedValue: ''},
+          {name: 'supervisor.childopts', value: '.jar=host=host2', 
recommendedValue: ''},
+          {name: 'worker.childopts', value: '.jar=host=host2', 
recommendedValue: ''}
         ],
         expected = [
-          {name: 'nimbus.childopts', value: '.jar=host=realhost1', 
defaultValue: '.jar=host=realhost1', forceUpdate: true},
-          {name: 'supervisor.childopts', value: '.jar=host=realhost1', 
defaultValue: '.jar=host=realhost1', forceUpdate: true},
-          {name: 'worker.childopts', value: '.jar=host=realhost1', 
defaultValue: '.jar=host=realhost1', forceUpdate: true}
+          {name: 'nimbus.childopts', value: '.jar=host=realhost1', 
recommendedValue: '.jar=host=realhost1'},
+          {name: 'supervisor.childopts', value: '.jar=host=realhost1', 
recommendedValue: '.jar=host=realhost1'},
+          {name: 'worker.childopts', value: '.jar=host=realhost1', 
recommendedValue: '.jar=host=realhost1'}
         ];
       installerStep7Controller.reopen({
         installedServiceNames: installedServiceNames,
@@ -1691,9 +1691,9 @@ describe('App.InstallerStep7Controller', function () {
       var properties = configs.filterProperty('name', 
'hbase.client.scanner.caching');
       expect(properties).to.have.length(2);
       expect(properties.findProperty('filename', 
'hbase-site.xml').value).to.equal('1500');
-      expect(properties.findProperty('filename', 
'hbase-site.xml').defaultValue).to.equal('1500');
+      expect(properties.findProperty('filename', 
'hbase-site.xml').savedValue).to.equal('1500');
       expect(properties.findProperty('filename', 
'ams-hbase-site.xml').value).to.equal('2500');
-      expect(properties.findProperty('filename', 
'ams-hbase-site.xml').defaultValue).to.equal('2500');
+      expect(properties.findProperty('filename', 
'ams-hbase-site.xml').savedValue).to.equal('2500');
     });
 
   });

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/controllers/wizard/step8_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/wizard/step8_test.js 
b/ambari-web/test/controllers/wizard/step8_test.js
index 432f8e0..67631a6 100644
--- a/ambari-web/test/controllers/wizard/step8_test.js
+++ b/ambari-web/test/controllers/wizard/step8_test.js
@@ -413,42 +413,6 @@ describe('App.WizardStep8Controller', function () {
     });
   });
 
-  describe('#getGlobConfigValueWithOverrides', function () {
-    it('should retun empty objects', function () {
-      
expect(installerStep8Controller.getGlobConfigValueWithOverrides('','','')).to.eql({
-        "value": "",
-        "overrides": []
-      });
-    });
-    it('should retun overrides', function () {
-      var expression = '<cod index=[1]></cod index=[2]>';
-      installerStep8Controller.set('configs', Em.A([
-        Em.Object.create({
-          name:'name', overrides: Em.A([
-            Em.Object.create({
-              value: '4',
-              hosts: Em.A(['h1','h2'])
-            })
-          ])
-        })
-      ]));
-      var names = Em.A(['name0', 'name', 'name', 'ad']);
-      var result = {
-        "value": "undefinedundefined",
-        "overrides": [
-          {
-            "value": "44",
-            "hosts": [
-              "h1",
-              "h2"
-            ]
-          }
-        ]
-      };
-      
expect(installerStep8Controller.getGlobConfigValueWithOverrides(names,expression,'')).to.eql(result);
-    });
-  });
-
   describe('#isConfigsChanged', function () {
     it('should return true if config changed', function () {
       var properties = Em.Object.create({
@@ -1692,25 +1656,6 @@ describe('App.WizardStep8Controller', function () {
     });
   });
 
-  describe('#addDynamicProperties', function() {
-    it('shouldn\'t add property', function() {
-      var serviceConfigProperties = [
-          {name: 'templeton.hive.properties'}
-        ],
-        configs = [];
-      installerStep8Controller.reopen({content: {serviceConfigProperties: 
serviceConfigProperties}});
-      installerStep8Controller.addDynamicProperties(configs);
-      expect(configs.length).to.equal(0);
-    });
-    it('should add property', function() {
-      var serviceConfigProperties = [],
-        configs = [];
-      installerStep8Controller.reopen({content: {serviceConfigProperties: 
serviceConfigProperties}});
-      installerStep8Controller.addDynamicProperties(configs);
-      expect(configs.length).to.equal(1);
-    });
-  });
-
   describe('#applyInstalledServicesConfigurationGroup', function() {
     beforeEach(function() {
       sinon.stub($, 'ajax', function () {
@@ -1750,45 +1695,14 @@ describe('App.WizardStep8Controller', function () {
 
   describe('#loadUiSideConfigs', function() {
     beforeEach(function() {
-      sinon.stub(installerStep8Controller, 'addDynamicProperties', Em.K);
-      sinon.stub(installerStep8Controller, 'getGlobConfigValueWithOverrides', 
function(t, v, n) {
-        return {
-          value: v,
-          overrides: []
-        }
-      });
       sinon.stub(App.config, 'setConfigValue', Em.K);
     });
     afterEach(function() {
-      installerStep8Controller.addDynamicProperties.restore();
-      installerStep8Controller.getGlobConfigValueWithOverrides.restore();
       App.config.setConfigValue.restore();
     });
 
-    it('all configs witohut foreignKey', function() {
+    it('configs with foreignKey', function() {
       var configMapping = [
-        {foreignKey: null, templateName: 't1', value: 'v1', name: 'c1', 
filename: 'f1'},
-        {foreignKey: null, templateName: 't2', value: 'v2', name: 'c2', 
filename: 'f2'},
-        {foreignKey: null, templateName: 't3', value: 'v3', name: 'c3', 
filename: 'f2'},
-        {foreignKey: null, templateName: 't4', value: 'v4', name: 'c4', 
filename: 'f1'}
-      ];
-      var uiConfigs = 
installerStep8Controller.loadUiSideConfigs(configMapping);
-      expect(uiConfigs.length).to.equal(configMapping.length);
-      expect(uiConfigs.everyProperty('id', 'site property')).to.be.true;
-      uiConfigs.forEach(function(c, index) {
-        expect(c.overrides).to.be.an.array;
-        expect(c.value).to.equal(configMapping[index].value);
-        expect(c.name).to.equal(configMapping[index].name);
-        expect(c.filename).to.equal(configMapping[index].filename);
-      });
-    });
-
-    it('some configs witohut foreignKey', function() {
-      var configMapping = [
-        {foreignKey: null, templateName: 't1', value: 'v1', name: 'c1', 
filename: 'f1'},
-        {foreignKey: null, templateName: 't2', value: 'v2', name: 'c2', 
filename: 'f2'},
-        {foreignKey: null, templateName: 't3', value: 'v3', name: 'c3', 
filename: 'f2'},
-        {foreignKey: null, templateName: 't4', value: 'v4', name: 'c4', 
filename: 'f1'},
         {foreignKey: 'fk1', templateName: 't5', value: 'v5', name: 'c5', 
filename: 'f1'},
         {foreignKey: 'fk2', templateName: 't6', value: 'v6', name: 'c6', 
filename: 'f1'},
         {foreignKey: 'fk3', templateName: 't7', value: 'v7', name: 'c7', 
filename: 'f2'},
@@ -2187,52 +2101,6 @@ describe('App.WizardStep8Controller', function () {
     });
   });
 
-  describe("#addDynamicProperties", function() {
-
-    var tests = [
-        {
-          content: Em.Object.create({
-            serviceConfigProperties: [
-              Em.Object.create({
-                configs: []
-              })
-            ]
-          }),
-          m: 'add dynamic property',
-          addDynamic: true
-        },
-        {
-          content: Em.Object.create({
-            serviceConfigProperties: [
-              Em.Object.create({
-                name: 'templeton.hive.properties'
-              })
-            ]
-          }),
-          m: 'don\'t add dynamic property (already included)',
-          addDynamic: false
-        }
-      ],
-      dynamicProperty = {
-        name: 'templeton.hive.properties',
-        templateName: ['hive.metastore.uris'],
-        foreignKey: null,
-        value: 
'hive.metastore.local=false,hive.metastore.uris=<templateName[0]>,hive.metastore.sasl.enabled=yes,hive.metastore.execute.setugi=true,hive.metastore.warehouse.dir=/apps/hive/warehouse',
-        filename: 'webhcat-site.xml'
-      };
-
-    tests.forEach(function(t) {
-      it(t.m, function() {
-        installerStep8Controller.set('content', t.content);
-        var configs = [];
-        installerStep8Controller.addDynamicProperties(configs);
-        if (t.addDynamic){
-          expect(configs.findProperty('name', 
'templeton.hive.properties')).to.deep.eql(dynamicProperty);
-        }
-      });
-    });
-  });
-
   describe('#isAllClusterDeleteRequestsCompleted', function () {
     it('should depend on completed cluster delete requests number', function 
() {
       installerStep8Controller.setProperties({

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/controllers/wizard_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/wizard_test.js 
b/ambari-web/test/controllers/wizard_test.js
index 9b9c06f..a94e31a 100644
--- a/ambari-web/test/controllers/wizard_test.js
+++ b/ambari-web/test/controllers/wizard_test.js
@@ -186,7 +186,7 @@ describe('App.WizardController', function () {
             id: 'id',
             name: 'name',
             value: 'value',
-            defaultValue: 'defaultValue',
+            recommendedValue: 'recommendedValue',
             description: 'description',
             serviceName: 'serviceName',
             domain: 'domain',

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/data/HDP2/site_properties_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/data/HDP2/site_properties_test.js 
b/ambari-web/test/data/HDP2/site_properties_test.js
index 0336f92..ced9376 100644
--- a/ambari-web/test/data/HDP2/site_properties_test.js
+++ b/ambari-web/test/data/HDP2/site_properties_test.js
@@ -29,13 +29,13 @@ describe('hdp2SiteProperties', function () {
     });
   });
 
-  // No site properties should have value and defaultValue defined on client 
side.
+  // No site properties should have value and recommendedValue defined on 
client side.
   // These should be always retrieved from server.
 
     siteProperties.forEach(function(siteProperty){
-      it('Check value and defaultValue attribute of "' + siteProperty.name + 
'"' + '. It should not be defined ', function () {
+      it('Check value and recommendedValue attribute of "' + siteProperty.name 
+ '"' + '. It should not be defined ', function () {
         expect(siteProperty.value).to.equal(undefined);
-        expect(siteProperty.defaultValue).to.equal(undefined);
+        expect(siteProperty.recommendedValue).to.equal(undefined);
     });
   });
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/mappers/configs/config_versions_mapper_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mappers/configs/config_versions_mapper_test.js 
b/ambari-web/test/mappers/configs/config_versions_mapper_test.js
index 4e590fe..bf0b145 100644
--- a/ambari-web/test/mappers/configs/config_versions_mapper_test.js
+++ b/ambari-web/test/mappers/configs/config_versions_mapper_test.js
@@ -118,9 +118,9 @@ describe('App.configVersionsMapper', function () {
 
       //CONFIG_PROPERTY
       
expect(App.ConfigProperty.find('dtnode_heapsize_hadoop-env_4').get('value')).to.eql('1026m');
-      
expect(App.ConfigProperty.find('dtnode_heapsize_hadoop-env_4').get('defaultValue')).to.equal('1026m');
+      
expect(App.ConfigProperty.find('dtnode_heapsize_hadoop-env_4').get('recommendedValue')).to.equal('1026m');
       
expect(App.ConfigProperty.find('dtnode_heapsize_hadoop-env_4').get('isFinal')).to.be.false;
-      
expect(App.ConfigProperty.find('dtnode_heapsize_hadoop-env_4').get('defaultIsFinal')).to.be.false;
+      
expect(App.ConfigProperty.find('dtnode_heapsize_hadoop-env_4').get('recommendedIsFinal')).to.be.false;
     });
   });
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/mappers/configs/stack_config_properties_mapper_test.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/test/mappers/configs/stack_config_properties_mapper_test.js 
b/ambari-web/test/mappers/configs/stack_config_properties_mapper_test.js
index 416a14f..8fcb30e 100644
--- a/ambari-web/test/mappers/configs/stack_config_properties_mapper_test.js
+++ b/ambari-web/test/mappers/configs/stack_config_properties_mapper_test.js
@@ -174,8 +174,8 @@ describe('App.stackConfigPropertiesMapper', function () {
       
expect(App.StackConfigProperty.find('p1_site1').get('name')).to.eql('p1');
       
expect(App.StackConfigProperty.find('p1_site1').get('displayName')).to.eql('P1');
       
expect(App.StackConfigProperty.find('p1_site1').get('description')).to.eql('desc1');
-      
expect(App.StackConfigProperty.find('p1_site1').get('defaultValue')).to.eql('v1');
-      
expect(App.StackConfigProperty.find('p1_site1').get('defaultIsFinal')).to.be.false;
+      
expect(App.StackConfigProperty.find('p1_site1').get('recommendedValue')).to.eql('v1');
+      
expect(App.StackConfigProperty.find('p1_site1').get('recommendedIsFinal')).to.be.false;
       
expect(App.StackConfigProperty.find('p1_site1').get('serviceName')).to.eql('s1');
       
expect(App.StackConfigProperty.find('p1_site1').get('stackName')).to.eql('HDP');
       
expect(App.StackConfigProperty.find('p1_site1').get('stackVersion')).to.eql('2.2');

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/mock_data_setup/configs_mock_data.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mock_data_setup/configs_mock_data.js 
b/ambari-web/test/mock_data_setup/configs_mock_data.js
index 0136f9b..6c50628 100644
--- a/ambari-web/test/mock_data_setup/configs_mock_data.js
+++ b/ambari-web/test/mock_data_setup/configs_mock_data.js
@@ -226,7 +226,7 @@ module.exports = {
           "c6401.ambari.apache.org",
           "c6402.ambari.apache.org"
         ],
-        "defaultValue":"['c6401.ambari.apache.org','c6402.ambari.apache.org']",
+        
"recommendedValue":"['c6401.ambari.apache.org','c6402.ambari.apache.org']",
         "filename":"storm-site.xml",
         "isUserProperty":false,
         "isOverridable":false,
@@ -243,7 +243,7 @@ module.exports = {
       {
         "name":"single_line_property",
         "value":"value",
-        "defaultValue":"value",
+        "recommendedValue":"value",
         "filename":"storm-site.xml",
         "isUserProperty":true,
         "isOverridable":true,
@@ -257,7 +257,7 @@ module.exports = {
       {
         "name":"multi_line_property",
         "value":"value \n value",
-        "defaultValue":"value \n value",
+        "recommendedValue":"value \n value",
         "filename":"storm-site.xml",
         "isUserProperty":true,
         "isOverridable":true,
@@ -271,7 +271,7 @@ module.exports = {
       {
         "name":"nonexistent_property",
         "value":"some value",
-        "defaultValue":"some value",
+        "recommendedValue":"some value",
         "filename":"storm-env.xml",
         "isUserProperty":false,
         "isOverridable":true,
@@ -285,7 +285,7 @@ module.exports = {
       {
         "name":"dfs.datanode.data.dir",
         "value":"/a,/b",
-        "defaultValue":"/a,/b",
+        "recommendedValue":"/a,/b",
         "filename":"hdfs-site.xml",
         "isUserProperty":false,
         "isOverridable":true,
@@ -305,7 +305,7 @@ module.exports = {
       {
         "name":"content",
         "value":"custom mock property",
-        "defaultValue":"custom mock property",
+        "recommendedValue":"custom mock property",
         "filename":"hdfs-site.xml",
         "isUserProperty":false,
         "isOverridable":true,
@@ -325,7 +325,7 @@ module.exports = {
       {
         "name":"content",
         "value":"hdfs log4j content",
-        "defaultValue":"hdfs log4j content",
+        "recommendedValue":"hdfs log4j content",
         "filename":"hdfs-log4j.xml",
         "isUserProperty":false,
         "isOverridable":true,
@@ -345,7 +345,7 @@ module.exports = {
       {
         "name":"storm_log_dir",
         "value":"/var/log/storm",
-        "defaultValue":"/var/log/storm",
+        "recommendedValue":"/var/log/storm",
         "filename":"storm-env.xml",
         "isUserProperty":false,
         "isOverridable":true,

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/models/configs/config_property_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/models/configs/config_property_test.js 
b/ambari-web/test/models/configs/config_property_test.js
index 84cae0b..5faad7a 100644
--- a/ambari-web/test/models/configs/config_property_test.js
+++ b/ambari-web/test/models/configs/config_property_test.js
@@ -43,7 +43,7 @@ describe('App.ConfigProperty', function () {
     });
   });
 
-  describe('#isNotDefaultValue', function () {
+  describe.skip('#isNotDefaultValue', function () {
     var tests = [
       { isEditable: false, value: 1, defaultValue: 2, supportsFinal: true, 
isFinal: true, defaultIsFinal: false, isNotDefaultValue: false },
       { isEditable: true, value: 1, defaultValue: 1, supportsFinal: false, 
isFinal: true, defaultIsFinal: true, isNotDefaultValue: false },

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/models/configs/objects/service_config_property_test.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/test/models/configs/objects/service_config_property_test.js 
b/ambari-web/test/models/configs/objects/service_config_property_test.js
index a71e838..a364810 100644
--- a/ambari-web/test/models/configs/objects/service_config_property_test.js
+++ b/ambari-web/test/models/configs/objects/service_config_property_test.js
@@ -185,7 +185,7 @@ var serviceConfigProperty,
       initial: {
         id: 'puppet var',
         value: '',
-        defaultValue: 'default'
+        savedValue: 'default'
       },
       result: {
         value: 'default'
@@ -197,17 +197,17 @@ var serviceConfigProperty,
       isEditable: false
     },
     {
-      defaultValue: null
+      savedValue: null
     },
     {
       value: 'value',
-      defaultValue: 'value'
+      savedValue: 'value'
     }
   ],
   notDefaultTrueData = {
     isEditable: true,
     value: 'value',
-    defaultValue: 'default'
+    savedValue: 'default'
   },
   types = ['masterHost', 'slaveHosts', 'masterHosts', 'slaveHost', 'radio 
button'],
   classCases = [

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/utils/config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/config_test.js 
b/ambari-web/test/utils/config_test.js
index ccc6931..ae85b15 100644
--- a/ambari-web/test/utils/config_test.js
+++ b/ambari-web/test/utils/config_test.js
@@ -66,11 +66,11 @@ describe('App.config', function () {
       config = {
         displayType: 'int',
         value: '1024m',
-        defaultValue: '1024m'
+        savedValue: '1024m'
       };
       App.config.handleSpecialProperties(config);
       expect(config.value).to.equal('1024');
-      expect(config.defaultValue).to.equal('1024');
+      expect(config.savedValue).to.equal('1024');
     });
   });
 
@@ -80,13 +80,13 @@ describe('App.config', function () {
       {
         name: 'config1',
         value: 'value1',
-        defaultValue: 'value1',
+        recommendedValue: 'value1',
         filename: 'capacity-scheduler.xml'
       },
       {
         name: 'config2',
         value: 'value2',
-        defaultValue: 'value2',
+        recommendedValue: 'value2',
         filename: 'capacity-scheduler.xml'
       }
     ];
@@ -94,19 +94,19 @@ describe('App.config', function () {
       var result = App.config.fileConfigsIntoTextarea.call(App.config, 
configs, filename);
       expect(result.length).to.equal(1);
       expect(result[0].value).to.equal('config1=value1\nconfig2=value2\n');
-      
expect(result[0].defaultValue).to.equal('config1=value1\nconfig2=value2\n');
+      
expect(result[0].recommendedValue).to.equal('config1=value1\nconfig2=value2\n');
     });
     it('three config into textarea', function () {
       configs.push({
         name: 'config3',
         value: 'value3',
-        defaultValue: 'value3',
+        recommendedValue: 'value3',
         filename: 'capacity-scheduler.xml'
       });
       var result = App.config.fileConfigsIntoTextarea.call(App.config, 
configs, filename);
       expect(result.length).to.equal(1);
       
expect(result[0].value).to.equal('config1=value1\nconfig2=value2\nconfig3=value3\n');
-      
expect(result[0].defaultValue).to.equal('config1=value1\nconfig2=value2\nconfig3=value3\n');
+      
expect(result[0].recommendedValue).to.equal('config1=value1\nconfig2=value2\nconfig3=value3\n');
     });
     it('one of three configs has different filename', function () {
       configs[1].filename = 'another filename';
@@ -114,7 +114,7 @@ describe('App.config', function () {
       //result contains two configs: one with different filename and one 
textarea config
       expect(result.length).to.equal(2);
       expect(result[1].value).to.equal('config1=value1\nconfig3=value3\n');
-      
expect(result[1].defaultValue).to.equal('config1=value1\nconfig3=value3\n');
+      
expect(result[1].recommendedValue).to.equal('config1=value1\nconfig3=value3\n');
     });
     it('none configs into empty textarea', function () {
       filename = 'capacity-scheduler.xml';
@@ -122,34 +122,34 @@ describe('App.config', function () {
       var result = App.config.fileConfigsIntoTextarea.call(App.config, 
configs, filename);
       expect(result.length).to.equal(1);
       expect(result[0].value).to.equal('');
-      expect(result[0].defaultValue).to.equal('');
+      expect(result[0].recommendedValue).to.equal('');
     });
     it("filename has configs that shouldn't be included in textarea", function 
() {
       var configs = [
         {
           name: 'config1',
           value: 'value1',
-          defaultValue: 'value1',
+          recommendedValue: 'value1',
           filename: filename
         },
         {
           name: 'config2',
           value: 'value2',
-          defaultValue: 'value2',
+          recommendedValue: 'value2',
           filename: filename
         }
       ];
       var cfg = {
         name: 'config3',
         value: 'value3',
-        defaultValue: 'value3',
+        recommendedValue: 'value3',
         filename: filename
       };
       configs.push(cfg);
       var result = App.config.fileConfigsIntoTextarea.call(App.config, 
configs, filename, [cfg]);
       expect(result.length).to.equal(2);
       expect(result[1].value).to.equal('config1=value1\nconfig2=value2\n');
-      
expect(result[1].defaultValue).to.equal('config1=value1\nconfig2=value2\n');
+      
expect(result[1].recommendedValue).to.equal('config1=value1\nconfig2=value2\n');
       expect(configs.findProperty('name', 'config3')).to.eql(cfg);
     });
   });
@@ -409,7 +409,7 @@ describe('App.config', function () {
     });
 
     it('bigtop should use New PostgreSQL Database as its default hive 
metastore database', function () {
-      
expect(App.config.get('preDefinedSiteProperties').findProperty('defaultValue', 
'New PostgreSQL Database')).to.be.ok;
+      
expect(App.config.get('preDefinedSiteProperties').findProperty('recommendedValue',
 'New PostgreSQL Database')).to.be.ok;
     });
 
     after(function() {
@@ -423,7 +423,7 @@ describe('App.config', function () {
     });
 
     it('HDP2 should use New MySQL Database as its default hive metastore 
database', function () {
-      
expect(App.config.get('preDefinedSiteProperties').findProperty('defaultValue', 
'New MySQL Database')).to.be.ok;
+      
expect(App.config.get('preDefinedSiteProperties').findProperty('recommendedValue',
 'New MySQL Database')).to.be.ok;
     });
 
     after(function() {
@@ -901,12 +901,12 @@ describe('App.config', function () {
             name: 'prop_name0',
             serviceName: 's0',
             value: 'v0',
-            defaultValue: 'dv0',
+            savedValue: 'dv0',
             filename: 'fn0.xml',
             overrides: null,
             isVisible: false,
             isFinal: true,
-            defaultIsFinal: false,
+            savedIsFinal: false,
             supportsFinal: true,
             category: 'c0'
           },
@@ -916,7 +916,7 @@ describe('App.config', function () {
             displayName: 'Prop Name0',
             serviceName: 's0',
             value: 'v0',
-            defaultValue: 'dv0',
+            savedValue: 'dv0',
             displayType: 'advanced',
             filename: 'fn0.xml',
             isUserProperty: false,
@@ -926,7 +926,7 @@ describe('App.config', function () {
             isRequired: false,
             isVisible: false,
             isFinal: true,
-            defaultIsFinal: false,
+            savedIsFinal: false,
             supportsFinal: true,
             showLabel: true,
             category: 'c0'
@@ -1129,7 +1129,7 @@ describe('App.config', function () {
             {
               name: 'falcon_user',
               value: '',
-              defaultValue: 'fu'
+              recommendedValue: 'fu'
             }
           ],
           m: 'in all, default value used',

http://git-wip-us.apache.org/repos/asf/ambari/blob/07616603/ambari-web/test/utils/configs/config_property_helper_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/configs/config_property_helper_test.js 
b/ambari-web/test/utils/configs/config_property_helper_test.js
index d66f402..1e48c54 100644
--- a/ambari-web/test/utils/configs/config_property_helper_test.js
+++ b/ambari-web/test/utils/configs/config_property_helper_test.js
@@ -85,11 +85,11 @@ describe('configPropertyHelper', function () {
     serviceConfigProperty = App.ServiceConfigProperty.create();
   });
 
-  describe('#setDefaultValue', function () {
-    it('should change the default value', function () {
-      serviceConfigProperty.set('defaultValue', 'value0');
-      configPropertyHelper.setDefaultValue(serviceConfigProperty, /\d/, '1');
-      expect(serviceConfigProperty.get('defaultValue')).to.equal('value1');
+  describe('#setRecommendedValue', function () {
+    it('should change the recommended value', function () {
+      serviceConfigProperty.set('recommendedValue', 'value0');
+      configPropertyHelper.setRecommendedValue(serviceConfigProperty, /\d/, 
'1');
+      expect(serviceConfigProperty.get('recommendedValue')).to.equal('value1');
     });
   });
 
@@ -194,13 +194,13 @@ describe('configPropertyHelper', function () {
         {
           filename: 'hbase-site.xml',
           value: 'host0,host1',
-          defaultValue: 'host0,host1',
+          recommendedValue: 'host0,host1',
           title: 'should set ZooKeeper Server hostnames'
         },
         {
           filename: 'ams-hbase-site.xml',
           value: 'localhost',
-          defaultValue: '',
+          recommendedValue: null,
           title: 'should ignore ZooKeeper Server hostnames'
         }
       ],
@@ -272,7 +272,7 @@ describe('configPropertyHelper', function () {
         dependencies: {
           'hive.metastore.uris': 'thrift://localhost:9083'
         },
-        defaultValue: 'thrift://localhost:9083',
+        recommendedValue: 'thrift://localhost:9083',
         value: 'thrift://h0:9083,thrift://h1:9083',
         title: 'comma separated list of Metastore hosts with thrift prefix and 
port'
       },
@@ -292,7 +292,7 @@ describe('configPropertyHelper', function () {
         dependencies: {
           'hive.metastore.uris': 'thrift://localhost:9083'
         },
-        defaultValue: 
'hive.metastore.local=false,hive.metastore.uris=thrift://localhost:9933,hive.metastore.sasl.enabled=false',
+        recommendedValue: 
'hive.metastore.local=false,hive.metastore.uris=thrift://localhost:9933,hive.metastore.sasl.enabled=false',
         value: 
'hive.metastore.local=false,hive.metastore.uris=thrift://h0:9083\\,thrift://h1:9083,hive.metastore.sasl.enabled=false,hive.metastore.execute.setugi=true',
         title: 'should add relevant hive.metastore.uris value'
       },
@@ -312,7 +312,7 @@ describe('configPropertyHelper', function () {
         dependencies: {
           clientPort: '2182'
         },
-        defaultValue: 'localhost:2181',
+        recommendedValue: 'localhost:2181',
         value: 'h0:2182',
         title: 'should add ZK host and port dynamically'
       },
@@ -399,7 +399,7 @@ describe('configPropertyHelper', function () {
           }
         });
         expect(serviceConfigProperty.get('value')).to.equal(item.value);
-        
expect(serviceConfigProperty.get('defaultValue')).to.equal(item.defaultValue);
+        
expect(serviceConfigProperty.get('recommendedValue')).to.equal(item.recommendedValue);
       });
     });
 
@@ -435,32 +435,32 @@ describe('configPropertyHelper', function () {
     it(cases['hive.metastore.uris'].title, function () {
       serviceConfigProperty.setProperties({
         name: 'hive.metastore.uris',
-        defaultValue: cases['hive.metastore.uris'].defaultValue
+        recommendedValue: cases['hive.metastore.uris'].recommendedValue
       });
       configPropertyHelper.initialValue(serviceConfigProperty, 
cases['hive.metastore.uris'].localDB, 
cases['hive.metastore.uris'].dependencies);
       
expect(serviceConfigProperty.get('value')).to.equal(cases['hive.metastore.uris'].value);
-      
expect(serviceConfigProperty.get('defaultValue')).to.equal(cases['hive.metastore.uris'].value);
+      
expect(serviceConfigProperty.get('recommendedValue')).to.equal(cases['hive.metastore.uris'].value);
     });
 
     it(cases['templeton.hive.properties'].title, function () {
       serviceConfigProperty.setProperties({
         name: 'templeton.hive.properties',
-        defaultValue: cases['templeton.hive.properties'].defaultValue,
-        value: cases['templeton.hive.properties'].defaultValue
+        recommendedValue: cases['templeton.hive.properties'].recommendedValue,
+        value: cases['templeton.hive.properties'].recommendedValue
       });
       configPropertyHelper.initialValue(serviceConfigProperty, 
cases['templeton.hive.properties'].localDB, 
cases['templeton.hive.properties'].dependencies);
       
expect(serviceConfigProperty.get('value')).to.equal(cases['templeton.hive.properties'].value);
-      
expect(serviceConfigProperty.get('defaultValue')).to.equal(cases['templeton.hive.properties'].value);
+      
expect(serviceConfigProperty.get('recommendedValue')).to.equal(cases['templeton.hive.properties'].value);
     });
 
     it(cases['yarn.resourcemanager.zk-address'].title, function () {
       serviceConfigProperty.setProperties({
         name: 'yarn.resourcemanager.zk-address',
-        defaultValue: cases['yarn.resourcemanager.zk-address'].defaultValue
+        recommendedValue: 
cases['yarn.resourcemanager.zk-address'].recommendedValue
       });
       configPropertyHelper.initialValue(serviceConfigProperty, 
cases['yarn.resourcemanager.zk-address'].localDB, 
cases['yarn.resourcemanager.zk-address'].dependencies);
       
expect(serviceConfigProperty.get('value')).to.equal(cases['yarn.resourcemanager.zk-address'].value);
-      
expect(serviceConfigProperty.get('defaultValue')).to.equal(cases['yarn.resourcemanager.zk-address'].value);
+      
expect(serviceConfigProperty.get('recommendedValue')).to.equal(cases['yarn.resourcemanager.zk-address'].value);
     });
 
     it(cases['oozieserver_host'].title, function () {
@@ -495,7 +495,7 @@ describe('configPropertyHelper', function () {
             component: 'HIVE_METASTORE'
           }
         ],
-        defaultValue: 'thrift://localhost:9083',
+        recommendedValue: 'thrift://localhost:9083',
         expected: 'thrift://h1:9083,thrift://h2:9083',
         title: 'typical case'
       },
@@ -506,7 +506,7 @@ describe('configPropertyHelper', function () {
             component: 'HIVE_SERVER'
           }
         ],
-        defaultValue: 'thrift://localhost:9083',
+        recommendedValue: 'thrift://localhost:9083',
         expected: '',
         title: 'no Metastore hosts in DB'
       },
@@ -525,7 +525,7 @@ describe('configPropertyHelper', function () {
             component: 'HIVE_METASTORE'
           }
         ],
-        defaultValue: '',
+        recommendedValue: '',
         expected: '',
         title: 'default value without port'
       },
@@ -551,7 +551,7 @@ describe('configPropertyHelper', function () {
 
     cases.forEach(function (item) {
       it(item.title, function () {
-        expect(configPropertyHelper.getHiveMetastoreUris(item.hosts, 
item.defaultValue)).to.equal(item.expected);
+        expect(configPropertyHelper.getHiveMetastoreUris(item.hosts, 
item.recommendedValue)).to.equal(item.expected);
       });
     });
 
@@ -862,7 +862,7 @@ describe('configPropertyHelper', function () {
         });
         configPropertyHelper.unionAllMountPoints(serviceConfigProperty, 
item.isOnlyFirstOneNeeded, localDB);
         expect(serviceConfigProperty.get('value')).to.equal(item.value);
-        expect(serviceConfigProperty.get('defaultValue')).to.equal(item.value);
+        
expect(serviceConfigProperty.get('recommendedValue')).to.equal(item.value);
       });
     });
 

Reply via email to