Repository: ambari
Updated Branches:
  refs/heads/trunk 9f2b109e4 -> d70da2c85


AMBARI-6747 Changing CapScheduler only versions all configs in service. (Buzhor 
Denys via ababiichuk)


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

Branch: refs/heads/trunk
Commit: d70da2c852521ff552a3baafc298fed9dcb97985
Parents: 9f2b109
Author: aBabiichuk <ababiic...@cybervisiontech.com>
Authored: Tue Aug 5 19:58:02 2014 +0300
Committer: aBabiichuk <ababiic...@cybervisiontech.com>
Committed: Tue Aug 5 19:58:02 2014 +0300

----------------------------------------------------------------------
 .../app/controllers/main/service/info/configs.js     | 15 ++++++++++++++-
 ambari-web/app/utils/config.js                       |  8 ++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/d70da2c8/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 2270fdf..b24345d 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -1031,7 +1031,20 @@ App.MainServiceInfoConfigsController = 
Em.Controller.extend({
       if (this.get('content.serviceName') === 'YARN' && 
!App.supports.capacitySchedulerUi) {
         configs = App.config.textareaIntoFileConfigs(configs, 
'capacity-scheduler.xml');
       }
-      this.saveSiteConfigs(configs.filterProperty('group', null));
+      var modifiedConfigs = configs
+        // get only modified and created configs
+        .filter(function(config) { return config.get('isNotDefaultValue') || 
config.get('isNotSaved'); })
+        // get file names
+        .mapProperty('filename').uniq()
+        // get configs by filename
+        .map(function(fileName) {
+          return configs.filterProperty('filename', fileName);
+        })
+        // concatenate results
+        .reduce(function(current, prev) { return current.concat(prev); });
+
+      // save modified original configs that have no group
+      this.saveSiteConfigs(modifiedConfigs.filter(function(config) { return 
!config.get('group'); }));
 
       /**
        * First we put cluster configurations, which automatically creates 
/configurations

http://git-wip-us.apache.org/repos/asf/ambari/blob/d70da2c8/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index b017ebc..ba57aae 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -334,6 +334,7 @@ App.config = Em.Object.create({
           isOverridable: true,
           isRequired: true,
           isFinal: finalAttributes[index] === "true",
+          defaultIsFinal: finalAttributes[index] === "true",
           showLabel: true,
           serviceName: serviceName,
           belongsToService: []
@@ -840,6 +841,7 @@ App.config = Em.Object.create({
             description: item.property_description,
             isVisible: item.isVisible,
             isFinal: item.final === "true",
+            defaultIsFinal: item.final === "true",
             filename: item.filename || fileName
           });
         }
@@ -1113,6 +1115,7 @@ App.config = Em.Object.create({
       "isOverridable": true,
       "isRequired": true,
       "isVisible": true,
+      "supportsFinal": true,
       "serviceName": "YARN",
       "filename": "capacity-scheduler.xml",
       "category": "CapacityScheduler"
@@ -1137,8 +1140,11 @@ App.config = Em.Object.create({
         value += _config.name + '=' + _config.value + '\n';
         defaultValue += _config.name + '=' + _config.defaultValue + '\n';
       }, this);
+      var isFinal = fileConfigs.someProperty('isFinal', true);
       complexConfig.value = value;
       complexConfig.defaultValue = defaultValue;
+      complexConfig.isFinal = isFinal;
+      complexConfig.defaultIsFinal = isFinal;
       configs = configs.filter(function (_config) {
         return _config.filename !== filename;
       });
@@ -1173,6 +1179,8 @@ App.config = Em.Object.create({
             defaultValue: value,
             serviceName: configsTextarea.get('serviceName'),
             filename: filename,
+            isFinal: configsTextarea.get('isFinal'),
+            isNotDefaultValue: configsTextarea.get('isNotDefaultValue'),
             group: null
           }));
         }

Reply via email to