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 () {
