Repository: ambari
Updated Branches:
  refs/heads/trunk c8030852a -> f69b52409


AMBARI-10999 No validation errors happening on configs that are dynamically 
removed and added. (ababiichuk)


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

Branch: refs/heads/trunk
Commit: f69b5240939f61aa336bccf304636f2f5889b216
Parents: c803085
Author: aBabiichuk <[email protected]>
Authored: Thu May 7 19:49:08 2015 +0300
Committer: aBabiichuk <[email protected]>
Committed: Thu May 7 19:49:08 2015 +0300

----------------------------------------------------------------------
 .../services/HIVE/configuration/hive-site.xml   | 10 +++++-----
 .../controllers/main/service/info/configs.js    |  3 +--
 .../app/controllers/wizard/step7_controller.js  |  2 ++
 .../mixins/common/configs/enhanced_configs.js   | 21 ++++++++++----------
 ambari-web/app/mixins/common/serverValidator.js |  2 +-
 ambari-web/app/views/common/controls_view.js    |  4 ++--
 .../configs/widgets/config_widget_view_test.js  |  2 +-
 7 files changed, 23 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/f69b5240/ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/configuration/hive-site.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/configuration/hive-site.xml
 
b/ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/configuration/hive-site.xml
index f77977d..2783e1b 100644
--- 
a/ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/configuration/hive-site.xml
+++ 
b/ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/configuration/hive-site.xml
@@ -1639,7 +1639,7 @@ limitations under the License.
   </property>
   <property>
     <name>hive.server2.authentication.ldap.baseDN</name>
-    <value> </value>
+    <value></value>
     <depends-on>
       <property>
         <type>hive-site</type>
@@ -1649,7 +1649,7 @@ limitations under the License.
   </property>
   <property>
     <name>hive.server2.authentication.kerberos.keytab</name>
-    <value> </value>
+    <value></value>
     <depends-on>
       <property>
         <type>hive-site</type>
@@ -1659,7 +1659,7 @@ limitations under the License.
   </property>
   <property>
     <name>hive.server2.authentication.kerberos.principal</name>
-    <value> </value>
+    <value></value>
     <depends-on>
       <property>
         <type>hive-site</type>
@@ -1669,7 +1669,7 @@ limitations under the License.
   </property>
   <property>
     <name>hive.server2.authentication.pam.services</name>
-    <value> </value>
+    <value></value>
     <depends-on>
       <property>
         <type>hive-site</type>
@@ -1679,7 +1679,7 @@ limitations under the License.
   </property>
   <property>
     <name>hive.server2.custom.authentication.class</name>
-    <value> </value>
+    <value></value>
     <depends-on>
       <property>
         <type>hive-site</type>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f69b5240/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 293bba7..318a26c 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -442,8 +442,7 @@ App.MainServiceInfoConfigsController = 
Em.Controller.extend(App.ServerValidatorM
         if (!c.get('recommendedValue')) {
           c.set('recommendedValue', advanced.get('value'));
         }
-      }
-      else {
+      } else if (advanced.get('widget')) {
         configs.pushObject(App.ServiceConfigProperty.create({
           name: advanced.get('name'),
           displayName: advanced.get('displayName'),

http://git-wip-us.apache.org/repos/asf/ambari/blob/f69b5240/ambari-web/app/controllers/wizard/step7_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step7_controller.js 
b/ambari-web/app/controllers/wizard/step7_controller.js
index e019e1d..f2efe68 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -640,6 +640,8 @@ App.WizardStep7Controller = 
Em.Controller.extend(App.ServerValidatorMixin, App.E
         self.addKerberosDescriptorConfigs(configs, 
self.get('wizardController.kerberosDescriptorConfigs') || []);
       }
       self.setStepConfigs(configs, storedConfigs);
+      self.updateDependentConfigs();
+      self.clearDependentConfigs();
       self.checkHostOverrideInstaller();
       self.activateSpecialConfigs();
       self.selectProperService();

http://git-wip-us.apache.org/repos/asf/ambari/blob/f69b5240/ambari-web/app/mixins/common/configs/enhanced_configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/configs/enhanced_configs.js 
b/ambari-web/app/mixins/common/configs/enhanced_configs.js
index c638439..7ed9a14 100644
--- a/ambari-web/app/mixins/common/configs/enhanced_configs.js
+++ b/ambari-web/app/mixins/common/configs/enhanced_configs.js
@@ -281,7 +281,7 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
   dependenciesSuccess: function (data, opt, params) {
     this._saveRecommendedValues(data, params.initial, 
params.dataToSend.changed_configurations);
     if (!params.initial) {
-      this._updateDependentConfigs();
+      this.updateDependentConfigs();
     }
   },
 
@@ -293,7 +293,7 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
     var self = this;
     if (this.get('_dependentConfigValues.length') > 0) {
       App.showDependentConfigsPopup(this.get('_dependentConfigValues'), 
function() {
-        self._updateDependentConfigs();
+        self.updateDependentConfigs();
         if (callback) {
           callback();
         }
@@ -348,8 +348,8 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
   /**
    * saves values from response for dependent config properties to 
<code>_dependentConfigValues<code>
    * @param data
-   * @param updateOnlyBoundaries
-   * @param changedConfigs
+   * @param [updateOnlyBoundaries=false]
+   * @param [changedConfigs=null]
    * @method saveRecommendedValues
    * @private
    */
@@ -528,9 +528,8 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
   /**
    * save values that are stored in <code>_dependentConfigValues<code>
    * to step configs
-   * @private
    */
-  _updateDependentConfigs: function() {
+  updateDependentConfigs: function() {
     var self = this;
     this.get('stepConfigs').forEach(function(serviceConfigs) {
       var selectedGroup = 
self.getGroupForService(serviceConfigs.get('serviceName'));
@@ -559,17 +558,19 @@ App.EnhancedConfigsMixin = Em.Mixin.create({
           if (Em.get(propertyToAdd, 'isDeleted')) {
             this.get('_dependentConfigValues').removeObject(propertyToAdd);
           }
-          
stepConfigs.get('configs').pushObject(App.ServiceConfigProperty.create({
+          var addedProperty = App.ServiceConfigProperty.create({
             name: Em.get(propertyToAdd, 'propertyName'),
             displayName: Em.get(propertyToAdd, 'propertyName'),
             value: Em.get(propertyToAdd, 'recommendedValue'),
             defaultValue: Em.get(propertyToAdd, 'recommendedValue'),
-            category: 'Custom ' + Em.get(propertyToAdd, 'fileName'),
+            category: 'Advanced ' + Em.get(propertyToAdd, 'fileName'),
             serviceName: stepConfigs.get('serviceName'),
             filename: App.config.getOriginalFileName(Em.get(propertyToAdd, 
'fileName')),
             isNotSaved: !Em.get(propertyToAdd, 'isDeleted'),
-            isRequired: false
-          }));
+            isRequired: true
+          });
+          stepConfigs.get('configs').pushObject(addedProperty);
+          addedProperty.validate();
         } else {
           var cp = stepConfigs.get('configs').filterProperty('name', 
Em.get(propertyToAdd, 'propertyName')).findProperty('filename', 
App.config.getOriginalFileName(Em.get(propertyToAdd, 'fileName')));
           if (Em.get(propertyToAdd, 'isDeleted')) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/f69b5240/ambari-web/app/mixins/common/serverValidator.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/serverValidator.js 
b/ambari-web/app/mixins/common/serverValidator.js
index 76c338b..ce8a426 100644
--- a/ambari-web/app/mixins/common/serverValidator.js
+++ b/ambari-web/app/mixins/common/serverValidator.js
@@ -144,7 +144,7 @@ App.ServerValidatorMixin = Em.Mixin.create({
     if (!data) {
       console.warn('error while loading default config values');
     }
-    this._saveRecommendedValues(data, true);
+    this._saveRecommendedValues(data);
     this.set("recommendationsConfigs", Em.get(data.resources[0] , 
"recommendations.blueprint.configurations"));
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/f69b5240/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 3e6c12e..2b29ebc 100644
--- a/ambari-web/app/views/common/controls_view.js
+++ b/ambari-web/app/views/common/controls_view.js
@@ -117,8 +117,8 @@ App.SupportsDependentConfigs = Ember.Mixin.create({
   restoreDependentConfigs: function(parentConfig) {
     var controller = this.get('controller');
     var dependentConfigs = controller.get('_dependentConfigValues');
-    if (controller._updateDependentConfigs) {
-      controller._updateDependentConfigs();
+    if (controller.updateDependentConfigs) {
+      controller.updateDependentConfigs();
       controller.set('_dependentConfigValues', 
dependentConfigs.reject(function(item) {
         if (item.parentConfigs.contains(parentConfig.get('name'))) {
           if (item.parentConfigs.length > 1) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/f69b5240/ambari-web/test/views/common/configs/widgets/config_widget_view_test.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/test/views/common/configs/widgets/config_widget_view_test.js 
b/ambari-web/test/views/common/configs/widgets/config_widget_view_test.js
index ea4f72f..031e4f2 100644
--- a/ambari-web/test/views/common/configs/widgets/config_widget_view_test.js
+++ b/ambari-web/test/views/common/configs/widgets/config_widget_view_test.js
@@ -170,7 +170,7 @@ describe('App.ConfigWidgetView', function () {
     beforeEach(function() {
       view = App.ConfigWidgetView.create({
         controller: Em.Object.create({
-          _updateDependentConfigs: function() {}
+          updateDependentConfigs: function() {}
         }),
         config: Em.Object.create({ name: 'config1'})
       });

Reply via email to