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