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 {