You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2015/04/27 14:35:29 UTC

ambari git commit: AMBARI-10761. Validation isn't executed after override is created (onechiporenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk ebea5413f -> 57ba7014a


AMBARI-10761. Validation isn't executed after override is created (onechiporenko)


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

Branch: refs/heads/trunk
Commit: 57ba7014abcecca9c766253545104640ce77202e
Parents: ebea541
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Mon Apr 27 15:33:11 2015 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Mon Apr 27 15:33:11 2015 +0300

----------------------------------------------------------------------
 .../app/controllers/main/service/info/configs.js   |  2 ++
 .../app/controllers/wizard/step7_controller.js     |  1 +
 ambari-web/app/messages.js                         |  2 ++
 ambari-web/app/models/service_config.js            |  6 +++---
 .../widgets/overrides/config_widget_override.hbs   |  5 -----
 .../configs/widgets/list_config_widget_view.js     |  1 +
 .../widgets/list_config_widget_view_test.js        | 17 +++++++++++++++++
 7 files changed, 26 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/57ba7014/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 5f22112..e39b1a2 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -1037,6 +1037,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
     if (defaultGroupSelected) {
       newSCP.set('isEditable', false);
     }
+    newSCP.validate();
     return newSCP;
   },
 
@@ -1352,6 +1353,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
         isNotSaved: isNotSaved
       });
       console.debug("createOverrideProperty(): Added:", newSCP, " to main-property:", serviceConfigProperty);
+      newSCP.validate();
       overrides.pushObject(newSCP);
     }
   },

http://git-wip-us.apache.org/repos/asf/ambari/blob/57ba7014/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 ede0579..86a3a39 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -1097,6 +1097,7 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
     newSCP.set('isEditable', true);
     group.get('properties').pushObject(newSCP);
     overrides.pushObject(newSCP);
+    newSCP.validate();
     return newSCP;
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/57ba7014/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 6404f5e..0a0ed35 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -384,6 +384,8 @@ Em.I18n.translations = {
   'users.userName.validationFail': 'Only lowercase letters and numbers are recommended; must start with a letter',
   'host.spacesValidation': 'Cannot contain whitespace',
   'host.trimspacesValidation': 'Cannot contain leading or trailing whitespace',
+  'config.override.valueEqualToParentConfig': 'Configuration overrides must have different value',
+  'config.override.valueEqualToAnotherOverrideConfig': 'Multiple configuration overrides cannot have same value',
 
   'services.hdfs.rebalance.title' : 'HDFS Rebalance',
   'services.ganglia.description':'Ganglia Metrics Collection system',

http://git-wip-us.apache.org/repos/asf/ambari/blob/57ba7014/ambari-web/app/models/service_config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/service_config.js b/ambari-web/app/models/service_config.js
index c47812c..b45cb0d 100644
--- a/ambari-web/app/models/service_config.js
+++ b/ambari-web/app/models/service_config.js
@@ -1071,16 +1071,16 @@ App.ServiceConfigProperty = Em.Object.extend({
       var isOriginalSCP = this.get('isOriginalSCP');
       var parentSCP = this.get('parentSCP');
       if (!isOriginalSCP) {
-        if (!isError && parentSCP != null) {
+        if (!Em.isNone(parentSCP)) {
           if (value === parentSCP.get('value') && supportsFinal && isFinal === parentSCP.get('isFinal')) {
-            this.set('errorMessage', 'Configuration overrides must have different value');
+            this.set('errorMessage', Em.I18n.t('config.override.valueEqualToParentConfig'));
             isError = true;
           } else {
             var overrides = parentSCP.get('overrides');
             if (overrides) {
               overrides.forEach(function (override) {
                 if (self != override && value === override.get('value')  && supportsFinal && isFinal === parentSCP.get('isFinal')) {
-                  self.set('errorMessage', 'Multiple configuration overrides cannot have same value');
+                  self.set('errorMessage', Em.I18n.t('config.override.valueEqualToAnotherOverrideConfig'));
                   isError = true;
                 }
               });

http://git-wip-us.apache.org/repos/asf/ambari/blob/57ba7014/ambari-web/app/templates/common/configs/widgets/overrides/config_widget_override.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/common/configs/widgets/overrides/config_widget_override.hbs b/ambari-web/app/templates/common/configs/widgets/overrides/config_widget_override.hbs
index b91952b..95cb7be 100644
--- a/ambari-web/app/templates/common/configs/widgets/overrides/config_widget_override.hbs
+++ b/ambari-web/app/templates/common/configs/widgets/overrides/config_widget_override.hbs
@@ -19,11 +19,6 @@
 {{! Here serviceConfigBinding should ideally be serviceConfigPropertyBinding }}
   <div {{bindAttr class="overriddenSCP.errorMessage:error: :control-group :overrideField"}}>
     {{view view.serviceConfigProperty.widget configBinding="overriddenSCP" isPopoverEnabled="false"}}
-    {{#if overriddenSCP.isEditable}}
-      {{#if overriddenSCP.errorMessage}}
-        <p class="text-error">{{overriddenSCP.errorMessage}}</p>
-      {{/if}}
-    {{/if}}
   </div>
   <div class="clearfix"></div>
 {{/each}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/57ba7014/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 5e3db48..157ef99 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
@@ -198,6 +198,7 @@ App.ListConfigWidgetView = App.ConfigWidgetView.extend({
       selectionDisabled = allowedToSelect <= currentlySelected;
     this.get('options').filterProperty('isSelected', false).setEach('isDisabled', selectionDisabled);
     this.set('config.errorMessage', currentlySelected < neededToSelect ? 'You should select at least ' + neededToSelect + ' item(s)' : '');
+    this.get('config').validate();
   },
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/57ba7014/ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js b/ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js
index d7ba96e..8fa6991 100644
--- a/ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js
+++ b/ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js
@@ -26,10 +26,13 @@ describe('App.ListConfigWidgetView', function () {
     view = App.ListConfigWidgetView.create({
       initPopover: Em.K,
       config: Em.Object.create({
+        validate: App.ServiceConfigProperty.prototype.validate,
         name: 'a.b.c',
         defaultValue: '2,1',
         value: '2,1',
         filename: 'f1',
+        isFinal: false,
+        supportsFinal: true,
         stackConfigProperty: Em.Object.create({
           valueAttributes: {
             entries: [
@@ -190,6 +193,20 @@ describe('App.ListConfigWidgetView', function () {
       expect(view.get('config.errorMessage')).to.equal('');
     });
 
+    it('check override', function () {
+
+      view.get('config').setProperties({
+        isOriginalSCP: false,
+        parentSCP: Em.Object.create({
+          value: '2,1',
+          isFinal: false
+        })
+      });
+      view.checkSelectedItemsCount();
+      expect(view.get('config.errorMessage')).to.equal(Em.I18n.t('config.override.valueEqualToParentConfig'));
+
+    });
+
   });
 
 });