You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ak...@apache.org on 2017/09/26 15:48:52 UTC

ambari git commit: AMBARI-21862. Unable to remove override from config group (akovalenko)

Repository: ambari
Updated Branches:
  refs/heads/branch-2.5 4f1dbbba7 -> 4fc5312c8


AMBARI-21862. Unable to remove override from config group (akovalenko)


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

Branch: refs/heads/branch-2.5
Commit: 4fc5312c82288a4047abcd47bdb0c10bce83c1ef
Parents: 4f1dbbb
Author: Aleksandr Kovalenko <ak...@hortonworks.com>
Authored: Thu Aug 31 16:42:55 2017 +0300
Committer: Aleksandr Kovalenko <ak...@hortonworks.com>
Committed: Tue Sep 26 18:14:18 2017 +0300

----------------------------------------------------------------------
 .../app/mixins/common/configs/configs_saver.js  | 12 +++--
 .../mixins/common/configs/configs_saver_test.js | 55 ++++++++++++++++++--
 2 files changed, 58 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/4fc5312c/ambari-web/app/mixins/common/configs/configs_saver.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/configs/configs_saver.js b/ambari-web/app/mixins/common/configs/configs_saver.js
index 12b6e15..64a4099 100644
--- a/ambari-web/app/mixins/common/configs/configs_saver.js
+++ b/ambari-web/app/mixins/common/configs/configs_saver.js
@@ -149,7 +149,7 @@ App.ConfigsSaverMixin = Em.Mixin.create({
 
           var overriddenConfigs = this.getConfigsForGroup(configs, configGroup.get('name'));
 
-          if (Em.isArray(overriddenConfigs) && this.isOverriddenConfigsModified(overriddenConfigs)) {
+          if (Em.isArray(overriddenConfigs) && this.isOverriddenConfigsModified(overriddenConfigs, configGroup)) {
             var successCallback = this.get('content.serviceName') === serviceName ? 'putConfigGroupChangesSuccess' : null;
             this.saveGroup(overriddenConfigs, configGroup, this.get('serviceConfigVersionNote'), successCallback);
           }
@@ -162,10 +162,14 @@ App.ConfigsSaverMixin = Em.Mixin.create({
    * @param {Array} overriddenConfigs
    * @returns {boolean}
    */
-  isOverriddenConfigsModified: function(overriddenConfigs) {
-    return overriddenConfigs.some(function(config) {
-      return config.get('savedValue') !== config.get('value');
+  isOverriddenConfigsModified: function(overriddenConfigs, group) {
+    var hasChangedConfigs = overriddenConfigs.some(function(config) {
+      return config.get('savedValue') !== config.get('value') || config.get('savedIsFinal') !== config.get('isFinal');
     });
+    var overriddenConfigsNames = overriddenConfigs.mapProperty('name');
+    return hasChangedConfigs || group.get('properties').some(function (property) {
+        return !overriddenConfigsNames.contains(Em.get(property, 'name'));
+      });
   },
 
   /*********************************** 0. HELPERS ********************************************/

http://git-wip-us.apache.org/repos/asf/ambari/blob/4fc5312c/ambari-web/test/mixins/common/configs/configs_saver_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mixins/common/configs/configs_saver_test.js b/ambari-web/test/mixins/common/configs/configs_saver_test.js
index b0258a3..d57617a 100644
--- a/ambari-web/test/mixins/common/configs/configs_saver_test.js
+++ b/ambari-web/test/mixins/common/configs/configs_saver_test.js
@@ -289,18 +289,63 @@ describe('App.ConfigsSaverMixin', function() {
     it('no configs modified', function() {
       expect(instanceObject.isOverriddenConfigsModified([
         Em.Object.create({
+          name: '1',
           savedValue: '1',
-          value: '1'
+          value: '1',
+          isFinal: false,
+          savedIsFinal: false
         })
-      ])).to.be.false;
+      ], Em.Object.create({
+        properties: [
+          {name: '1'}
+        ]
+      }))).to.be.false;
     });
-    it('one config modified', function() {
+    it('config value modified', function() {
       expect(instanceObject.isOverriddenConfigsModified([
         Em.Object.create({
+          name: '2',
           savedValue: '1',
-          value: '2'
+          value: '2',
+          isFinal: false,
+          savedIsFinal: false
         })
-      ])).to.be.true;
+      ], Em.Object.create({
+        properties: [
+          {name: '2'}
+        ]
+      }))).to.be.true;
+    });
+    it('config isFinal modified', function() {
+      expect(instanceObject.isOverriddenConfigsModified([
+        Em.Object.create({
+          name: '2',
+          savedValue: '2',
+          value: '2',
+          isFinal: true,
+          savedIsFinal: false
+        })
+      ], Em.Object.create({
+        properties: [
+          {name: '2'}
+        ]
+      }))).to.be.true;
+    });
+    it('one config removed', function() {
+      expect(instanceObject.isOverriddenConfigsModified([
+        Em.Object.create({
+          name: '3',
+          savedValue: '3',
+          value: '3',
+          isFinal: false,
+          savedIsFinal: false
+        })
+      ], Em.Object.create({
+        properties: [
+          {name: '2'},
+          {name: '3'}
+        ]
+      }))).to.be.true;
     });
   });
 });