Repository: ambari
Updated Branches:
  refs/heads/trunk 6db03934b -> a0dc96edc


AMBARI-19287. Adding custom property should trim white spaces in the prefix and 
suffix of the key names (onechiporenko)


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

Branch: refs/heads/trunk
Commit: a0dc96edc6d21bcdda0720257216647581e5dc80
Parents: 6db0393
Author: Oleg Nechiporenko <[email protected]>
Authored: Thu Dec 29 14:13:23 2016 +0200
Committer: Oleg Nechiporenko <[email protected]>
Committed: Thu Dec 29 14:13:23 2016 +0200

----------------------------------------------------------------------
 ambari-web/app/utils/validator.js               |  4 +-
 .../configs/service_configs_by_category_view.js |  7 ++--
 .../test/controllers/main/host/details_test.js  | 40 ++++++++------------
 ambari-web/test/utils/validator_test.js         |  5 ++-
 4 files changed, 26 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/a0dc96ed/ambari-web/app/utils/validator.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/validator.js 
b/ambari-web/app/utils/validator.js
index c7248bb..5173702 100644
--- a/ambari-web/app/utils/validator.js
+++ b/ambari-web/app/utils/validator.js
@@ -180,11 +180,13 @@ module.exports = {
 
   /**
    * validate key of configurations
+   * allow spaces as prefix and suffix
+   *
    * @param value
    * @return {Boolean}
    */
   isValidConfigKey: function(value) {
-    var configKeyRegex = /^[0-9a-z_\-\.\*]+$/i;
+    var configKeyRegex = /^\s*[0-9a-z_\-\.\*]+\s*$/i;
     return configKeyRegex.test(value);
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/a0dc96ed/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 3ebc2cf..4148197 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
@@ -509,8 +509,8 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
       showFilterLink: false,
       errorMessage: '',
       observeAddPropertyValue: function () {
-        var name = this.get('name');
-        if (name.trim() != '') {
+        var name = this.get('name').trim();
+        if (name !== '') {
           if (validator.isValidConfigKey(name)) {
             if (!self.isDuplicatedConfigKey(name)) { //no duplication within 
the same confType
               var files = self.isDuplicatedConfigKeyinConfigs(name);
@@ -582,7 +582,7 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
            * For the first entrance use this if (serviceConfigObj.name.trim() 
!= '')
            */
           if (!serviceConfigObj.isKeyError) {
-            propertyObj.name = serviceConfigObj.get('name');
+            propertyObj.name = serviceConfigObj.get('name').trim();
             propertyObj.value = serviceConfigObj.get('value');
             propertyObj.propertyType = serviceConfigObj.get('propertyType');
             self.createProperty(propertyObj);
@@ -751,7 +751,6 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
    */
   doRestoreDefaultValue: function (event) {
     var serviceConfigProperty = event.contexts[0];
-    var value = serviceConfigProperty.get('value');
     var savedValue = serviceConfigProperty.get('savedValue');
     var supportsFinal = serviceConfigProperty.get('supportsFinal');
     var savedIsFinal = serviceConfigProperty.get('savedIsFinal');

http://git-wip-us.apache.org/repos/asf/ambari/blob/a0dc96ed/ambari-web/test/controllers/main/host/details_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/host/details_test.js 
b/ambari-web/test/controllers/main/host/details_test.js
index 859320e..cb48ae1 100644
--- a/ambari-web/test/controllers/main/host/details_test.js
+++ b/ambari-web/test/controllers/main/host/details_test.js
@@ -3828,8 +3828,7 @@ describe('App.MainHostDetailsController', function () {
 
   describe('#setConfigsChangesForDisplayObserver', function () {
 
-    var configsObject,
-      propertiesToChange = [
+    var propertiesToChange = [
         {
           propertyName: 'n0',
           propertyFileName: 'f0'
@@ -3879,28 +3878,21 @@ describe('App.MainHostDetailsController', function () {
         requiredPropertiesToChange: []
       });
       sinon.stub(App.configsCollection, 'getConfigByName', function 
(propertyName) {
-        var stackProperty;
-        switch (propertyName) {
-          case 'n0':
-            stackProperty = {
-              isEditable: true,
-              isReconfigurable: true
-            };
-            break;
-          case 'n1':
-            stackProperty = {
-              isEditable: true,
-              isReconfigurable: false
-            };
-            break;
-          case 'n2':
-            stackProperty = {
-              isEditable: false,
-              isReconfigurable: false
-            };
-            break;
-        }
-        return stackProperty;
+        var map = {
+          n0: {
+            isEditable: true,
+            isReconfigurable: true
+          },
+          n1: {
+            isEditable: true,
+            isReconfigurable: false
+          },
+          n2: {
+            isEditable: false,
+            isReconfigurable: false
+          }
+        };
+        return map[propertyName];
       });
       sinon.stub(App, 
'get').withArgs('router.clusterController.isConfigsPropertiesLoaded').returns(true);
       controller.set('isConfigsLoadingInProgress', true);

http://git-wip-us.apache.org/repos/asf/ambari/blob/a0dc96ed/ambari-web/test/utils/validator_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/validator_test.js 
b/ambari-web/test/utils/validator_test.js
index 4f069e0..8565b3d 100644
--- a/ambari-web/test/utils/validator_test.js
+++ b/ambari-web/test/utils/validator_test.js
@@ -371,7 +371,10 @@ describe('validator', function () {
       {m:'"-abc-" - valid',i:'-abc-',e:true},
       {m:'"abc 123" - invalid',i:'abc 123',e:false},
       {m:'"a"b" - invalid',i:'a"b',e:false},
-      {m:'"a\'b" - invalid',i:'a\'b',e:false}
+      {m:'"a\'b" - invalid',i:'a\'b',e:false},
+      {m:'" a " - valid', i: ' a ', e: true},
+      {m:'" a" - valid', i: ' a', e: true},
+      {m:'"a " - valid', i: 'a ', e: true}
     ];
     tests.forEach(function(test) {
       it(test.m + ' ', function () {

Reply via email to