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

ambari git commit: AMBARI-10754 Final buttons are not present for Custom core-site properties. (ababiichk)

Repository: ambari
Updated Branches:
  refs/heads/trunk 623929f58 -> 9077a9d30


AMBARI-10754 Final buttons are not present for Custom core-site properties. (ababiichk)


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

Branch: refs/heads/trunk
Commit: 9077a9d3044302860d543907e23542c25603f79f
Parents: 623929f
Author: aBabiichuk <ab...@cybervisiontech.com>
Authored: Mon Apr 27 11:50:08 2015 +0300
Committer: aBabiichuk <ab...@cybervisiontech.com>
Committed: Mon Apr 27 11:50:08 2015 +0300

----------------------------------------------------------------------
 ambari-web/app/utils/config.js                  | 21 ++++++-
 .../configs/service_configs_by_category_view.js | 11 +---
 ambari-web/test/utils/config_test.js            | 59 ++++++++++++++++++++
 3 files changed, 80 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/9077a9d3/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 54a4609..874c7e9 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -332,7 +332,7 @@ App.config = Em.Object.create({
           showLabel: true,
           serviceName: serviceName,
           belongsToService: [],
-          supportsFinal: advancedConfig ? Em.get(advancedConfig, 'supportsFinal') : false
+          supportsFinal: advancedConfig ? Em.get(advancedConfig, 'supportsFinal') : this.shouldSupportFinal(serviceName, _tag.siteName)
 
         });
 
@@ -1552,6 +1552,25 @@ App.config = Em.Object.create({
    */
   saveConfigsToModel: function (data) {
     App.stackConfigPropertiesMapper.map(data);
+  },
+
+  /**
+   * Check if config filename supports final attribute
+   * @param serviceName
+   * @param filename
+   * @returns {boolean}
+   */
+  shouldSupportFinal: function (serviceName, filename) {
+    if (!serviceName || serviceName == 'MISC' || !filename) {
+      return false;
+    } else {
+      var stackService = App.StackService.find().findProperty('serviceName', serviceName);
+      var supportsFinal = this.getConfigTypesInfoFromService(stackService).supportsFinal;
+      var matchingConfigType = supportsFinal.find(function (configType) {
+        return filename.startsWith(configType);
+      });
+      return !!matchingConfigType;
+    }
   }
 
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/9077a9d3/ambari-web/app/views/common/configs/service_configs_by_category_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/service_configs_by_category_view.js b/ambari-web/app/views/common/configs/service_configs_by_category_view.js
index 1187a4d..d9fb8f2 100644
--- a/ambari-web/app/views/common/configs/service_configs_by_category_view.js
+++ b/ambari-web/app/views/common/configs/service_configs_by_category_view.js
@@ -378,16 +378,7 @@ App.ServiceConfigsByCategoryView = Em.View.extend(App.UserPref, App.ConfigOverri
         var configsOfFile = service.get('configs').filterProperty('filename', siteFileName);
         var siteFileProperties = App.config.get('configMapping').all().filterProperty('filename', siteFileName);
 
-        function shouldSupportFinal(filename) {
-          var stackService = App.StackService.find().findProperty('serviceName', serviceName);
-          var supportsFinal = App.config.getConfigTypesInfoFromService(stackService).supportsFinal;
-          var matchingConfigType = supportsFinal.find(function (configType) {
-            return filename.startsWith(configType);
-          });
-          return !!matchingConfigType;
-        }
-
-        var supportsFinal = (serviceName == 'MISC') ? false: (siteFileName ? shouldSupportFinal(siteFileName) : false);
+        var supportsFinal = App.config.shouldSupportFinal(serviceName, siteFileName);
 
         function isDuplicatedConfigKey(name) {
           return siteFileProperties.findProperty('name', name) || configsOfFile.findProperty('name', name);

http://git-wip-us.apache.org/repos/asf/ambari/blob/9077a9d3/ambari-web/test/utils/config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/config_test.js b/ambari-web/test/utils/config_test.js
index bd97b1c..bbfdc6b 100644
--- a/ambari-web/test/utils/config_test.js
+++ b/ambari-web/test/utils/config_test.js
@@ -632,6 +632,9 @@ describe('App.config', function () {
 
     before(function() {
       sinon.stub(App.config, 'parseValue', function(value) {return value});
+      sinon.stub(App.config, 'getConfigTypesInfoFromService').returns({
+        supportsFinal: ['hdfs-site']
+      });
       setups.setupStackVersion(this, 'HDP-2.2');
       loadServiceModelsData(['HDFS', 'STORM']);
       App.config.loadAdvancedConfigSuccess(modelSetup.advancedConfigs, { url: '/serviceName/configurations'}, {
@@ -655,6 +658,7 @@ describe('App.config', function () {
 
     after(function() {
       App.config.parseValue.restore();
+      App.config.getConfigTypesInfoFromService.restore();
       setups.restoreStackVersion(this);
       removeServiceModelData(['HDFS', 'STORM']);
     });
@@ -1216,4 +1220,59 @@ describe('App.config', function () {
 
   });
 
+  describe('#shouldSupportFinal', function () {
+
+    var cases = [
+      {
+        shouldSupportFinal: false,
+        title: 'no service name specified'
+      },
+      {
+        serviceName: 's0',
+        shouldSupportFinal: false,
+        title: 'no filename specified'
+      },
+      {
+        serviceName: 'MISC',
+        shouldSupportFinal: false,
+        title: 'MISC'
+      },
+      {
+        serviceName: 's0',
+        filename: 's0-site',
+        shouldSupportFinal: true,
+        title: 'final attribute supported'
+      },
+      {
+        serviceName: 's0',
+        filename: 's0-env',
+        shouldSupportFinal: false,
+        title: 'final attribute not supported'
+      }
+    ];
+
+    beforeEach(function () {
+      sinon.stub(App.StackService, 'find').returns([
+        {
+          serviceName: 's0'
+        }
+      ]);
+      sinon.stub(App.config, 'getConfigTypesInfoFromService').returns({
+        supportsFinal: ['s0-site']
+      });
+    });
+
+    afterEach(function () {
+      App.StackService.find.restore();
+      App.config.getConfigTypesInfoFromService.restore();
+    });
+
+    cases.forEach(function (item) {
+      it(item.title, function () {
+        expect(App.config.shouldSupportFinal(item.serviceName, item.filename)).to.equal(item.shouldSupportFinal);
+      });
+    });
+
+  });
+
 });