Przeglądaj źródła

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

aBabiichuk 10 lat temu
rodzic
commit
f69b524093

+ 5 - 5
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>

+ 1 - 2
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'),

+ 2 - 0
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();

+ 11 - 10
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')) {

+ 1 - 1
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"));
   },
 

+ 2 - 2
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) {

+ 1 - 1
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'})
       });