You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by kn...@apache.org on 2015/11/23 22:08:13 UTC

[34/37] storm git commit: Adding config validation for pacemaker auth.

Adding config validation for pacemaker auth.


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

Branch: refs/heads/master
Commit: 9bfb26c840b0b56bb12cd857645625b96e9102e7
Parents: c2f1da0
Author: Kyle Nusbaum <Ky...@gmail.com>
Authored: Mon Nov 23 13:52:10 2015 -0600
Committer: Kyle Nusbaum <Ky...@gmail.com>
Committed: Mon Nov 23 13:52:10 2015 -0600

----------------------------------------------------------------------
 storm-core/src/jvm/backtype/storm/Config.java   |  2 +-
 .../storm/validation/ConfigValidation.java      | 20 +++++++++++++++++++-
 .../jvm/backtype/storm/TestConfigValidate.java  | 18 ++++++++++++++++++
 3 files changed, 38 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/9bfb26c8/storm-core/src/jvm/backtype/storm/Config.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/Config.java b/storm-core/src/jvm/backtype/storm/Config.java
index ee7533b..13102b9 100644
--- a/storm-core/src/jvm/backtype/storm/Config.java
+++ b/storm-core/src/jvm/backtype/storm/Config.java
@@ -829,7 +829,7 @@ public class Config extends HashMap<String, Object> {
      * DIGEST or KERBEROS, the client can only write to the server (no reads).
      * This is intended to provide a primitive form of access-control.
      */
-    @isString
+    @CustomValidator(validatorClass=PacemakerAuthTypeValidator.class)
     public static final String PACEMAKER_AUTH_METHOD = "pacemaker.auth.method";
     
     /**

http://git-wip-us.apache.org/repos/asf/storm/blob/9bfb26c8/storm-core/src/jvm/backtype/storm/validation/ConfigValidation.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/validation/ConfigValidation.java b/storm-core/src/jvm/backtype/storm/validation/ConfigValidation.java
index 4e4a4f4..44ec967 100644
--- a/storm-core/src/jvm/backtype/storm/validation/ConfigValidation.java
+++ b/storm-core/src/jvm/backtype/storm/validation/ConfigValidation.java
@@ -477,6 +477,24 @@ public class ConfigValidation {
         }
     }
 
+    public static class PacemakerAuthTypeValidator extends Validator {
+
+        @Override
+        public void validateField(String name, Object o) {
+            if(o == null) {
+                throw new IllegalArgumentException( "Field " + name + " must be set.");
+            }
+
+            if(o instanceof String &&
+               (((String)o).equals("NONE") ||
+                ((String)o).equals("DIGEST") ||
+                ((String)o).equals("KERBEROS"))) {
+                return;
+            }
+            throw new IllegalArgumentException( "Field " + name + " must be one of \"NONE\", \"DIGEST\", or \"KERBEROS\"");
+        }
+    }
+
     /**
      * Methods for validating confs
      */
@@ -625,4 +643,4 @@ public class ConfigValidation {
         }
         return true;
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/storm/blob/9bfb26c8/storm-core/test/jvm/backtype/storm/TestConfigValidate.java
----------------------------------------------------------------------
diff --git a/storm-core/test/jvm/backtype/storm/TestConfigValidate.java b/storm-core/test/jvm/backtype/storm/TestConfigValidate.java
index 0f53634..7f193cc 100644
--- a/storm-core/test/jvm/backtype/storm/TestConfigValidate.java
+++ b/storm-core/test/jvm/backtype/storm/TestConfigValidate.java
@@ -41,6 +41,24 @@ public class TestConfigValidate {
     private static final Logger LOG = LoggerFactory.getLogger(TestConfigValidate.class);
 
     @Test
+    public void validPacemakerAuthTest() throws InstantiationException, IllegalAccessException, NoSuchFieldException, NoSuchMethodException, InvocationTargetException {
+        Map<String, Object> conf = new HashMap<String, Object>();
+        conf.put(Config.PACEMAKER_AUTH_METHOD, "NONE");
+        ConfigValidation.validateFields(conf);
+        conf.put(Config.PACEMAKER_AUTH_METHOD, "DIGEST");
+        ConfigValidation.validateFields(conf);
+        conf.put(Config.PACEMAKER_AUTH_METHOD, "KERBEROS");
+        ConfigValidation.validateFields(conf);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void invalidPacemakerAuthTest() throws InstantiationException, IllegalAccessException, NoSuchFieldException, NoSuchMethodException, InvocationTargetException {
+        Map<String, Object> conf = new HashMap<String, Object>();
+        conf.put(Config.PACEMAKER_AUTH_METHOD, "invalid");
+        ConfigValidation.validateFields(conf);
+    }
+    
+    @Test
     public void validConfigTest() throws InstantiationException, IllegalAccessException, NoSuchFieldException, NoSuchMethodException, InvocationTargetException {