Repository: ambari Updated Branches: refs/heads/trunk 0254474a0 -> d90a101c2
AMBARI-12184. Unable to save configs if there is two config groups with the same property value (akovalenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d90a101c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d90a101c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d90a101c Branch: refs/heads/trunk Commit: d90a101c2db06d14336a39254e94fc7cf444cb07 Parents: 0254474 Author: Aleksandr Kovalenko <akovale...@hortonworks.com> Authored: Sat Jun 27 18:36:38 2015 +0300 Committer: Aleksandr Kovalenko <akovale...@hortonworks.com> Committed: Sat Jun 27 21:07:48 2015 +0300 ---------------------------------------------------------------------- ambari-web/app/messages.js | 1 - .../configs/objects/service_config_property.js | 45 +++++++++----------- .../objects/service_config_property_test.js | 19 --------- 3 files changed, 20 insertions(+), 45 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/d90a101c/ambari-web/app/messages.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js index d5c2eec..88dbcaf 100644 --- a/ambari-web/app/messages.js +++ b/ambari-web/app/messages.js @@ -409,7 +409,6 @@ Em.I18n.translations = { '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/d90a101c/ambari-web/app/models/configs/objects/service_config_property.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/configs/objects/service_config_property.js b/ambari-web/app/models/configs/objects/service_config_property.js index 089b249..e4c7e1d 100644 --- a/ambari-web/app/models/configs/objects/service_config_property.js +++ b/ambari-web/app/models/configs/objects/service_config_property.js @@ -481,46 +481,41 @@ App.ServiceConfigProperty = Em.Object.extend({ * @method _validateOverrides */ _validateOverrides: function () { - var self = this; var isError = false; var value = this._getValueForCheck(this.get('value')); var isOriginalSCP = this.get('isOriginalSCP'); var supportsFinal = this.get('supportsFinal'); var isFinal = this.get('isFinal'); var parentSCP = this.get('parentSCP'); - if (!isOriginalSCP) { - if (!Em.isNone(parentSCP)) { - if (value === this._getValueForCheck(parentSCP.get('value'))) { - if (supportsFinal) { - if (isFinal === parentSCP.get('isFinal')) { + var overrides = this.get('overrides'); + if (isOriginalSCP) { + if (overrides) { + overrides.forEach(function (override) { + if (value === this._getValueForCheck(override.get('value'))) { + if (supportsFinal) { + if (isFinal === override.get('isFinal')) { + this.set('errorMessage', Em.I18n.t('config.override.valueEqualToParentConfig')); + isError = true; + } + } + else { this.set('errorMessage', Em.I18n.t('config.override.valueEqualToParentConfig')); isError = true; } } - else { + }, this); + } + } else { + if (!Em.isNone(parentSCP) && value === this._getValueForCheck(parentSCP.get('value'))) { + if (supportsFinal) { + if (isFinal === parentSCP.get('isFinal')) { 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) return; - if (value === self._getValueForCheck(override.get('value'))) { - if (supportsFinal) { - if (isFinal === parentSCP.get('isFinal')) { - self.set('errorMessage', Em.I18n.t('config.override.valueEqualToAnotherOverrideConfig')); - isError = true; - } - } - else { - self.set('errorMessage', Em.I18n.t('config.override.valueEqualToAnotherOverrideConfig')); - isError = true; - } - } - }); - } + this.set('errorMessage', Em.I18n.t('config.override.valueEqualToParentConfig')); + isError = true; } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/d90a101c/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 8541668..00cf620 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 @@ -531,25 +531,6 @@ describe('App.ServiceConfigProperty', function () { } }, { - m: 'not original config, parent override has same value', - e: true, - c: { - value: 'on', - isOriginalSCP: false, - supportsFinal: true, - isFinal: false, - parentSCP: App.ServiceConfigProperty.create({ - value: 'off', - overrides: [ - App.ServiceConfigProperty.create({ - value: 'on', - isOriginalSCP: false - }) - ] - }) - } - }, - { m: 'not original config, parent override doesn\'t have same value', e: false, c: {