Преглед изворни кода

AMBARI-12533 Property '% of Region Servers allocated to Write Buffers' become empty. (ababiichuk)

aBabiichuk пре 10 година
родитељ
комит
768bcdaf47

+ 9 - 3
ambari-web/app/models/configs/objects/service_config_property.js

@@ -356,7 +356,9 @@ App.ServiceConfigProperty = Em.Object.extend({
     if (!isError) {
       switch (this.get('displayType')) {
         case 'int':
-          if (!validator.isValidInt(value)) {
+          if (validator.isConfigValueLink(value)) {
+            isError = false;
+          } else if (!validator.isValidInt(value)) {
             this.set('errorMessage', 'Must contain digits only');
             isError = true;
           } else {
@@ -369,7 +371,9 @@ App.ServiceConfigProperty = Em.Object.extend({
           }
           break;
         case 'float':
-          if (!validator.isValidFloat(value)) {
+          if (validator.isConfigValueLink(value)) {
+            isError = false;
+          } else if (!validator.isValidFloat(value)) {
             this.set('errorMessage', 'Must be a valid number');
             isError = true;
           }
@@ -441,7 +445,9 @@ App.ServiceConfigProperty = Em.Object.extend({
           break;
         case 'advanced':
           if(this.get('name')=='javax.jdo.option.ConnectionURL' || this.get('name')=='oozie.service.JPAService.jdbc.url') {
-            if (validator.isNotTrimmed(value)) {
+            if (validator.isConfigValueLink(value)) {
+              isError = false;
+            } else if (validator.isNotTrimmed(value)) {
               this.set('errorMessage', Em.I18n.t('host.trimspacesValidation'));
               isError = true;
             }

+ 9 - 0
ambari-web/app/utils/validator.js

@@ -58,6 +58,15 @@ module.exports = {
     return true;
   },
 
+  /**
+   * defines if config value looks like link to other config
+   * @param value
+   * @returns {boolean}
+   */
+  isConfigValueLink: function(value) {
+    return /^\${.+}$/.test(value);
+  },
+
   /**
    * validate directory with slash at the start
    * @param value

+ 15 - 0
ambari-web/test/utils/validator_test.js

@@ -296,6 +296,21 @@ describe('validator', function () {
       })
     });
   });
+
+  describe('#isConfigValueLink', function() {
+    var tests = [
+      {m:'link valid',i:'${asd}',e:true},
+      {m:'empty link ${} -invalid',i:'${}',e:false},
+      {m:'${ just wrong',i:'${',e:false},
+      {m:'anything  just wrong',i:'anything',e:false}
+    ];
+    tests.forEach(function(test) {
+      it(test.m + ' ', function () {
+        expect(validator.isConfigValueLink(test.i)).to.equal(test.e);
+      })
+    });
+  });
+
   describe('#isValidDataNodeDir(value)', function() {
     var tests = [
       {m:'"dir" - invalid',i:'dir',e:false},