Repository: helix Updated Branches: refs/heads/helix-0.6.x 9ddd0af34 -> b2794e744
[HELIX-555] Fix deficiency in ClusterStateVerifier api Project: http://git-wip-us.apache.org/repos/asf/helix/repo Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/b2794e74 Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/b2794e74 Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/b2794e74 Branch: refs/heads/helix-0.6.x Commit: b2794e744e945da966c7ac6ae6408636951281d3 Parents: 9ddd0af Author: Antony T Curtis <[email protected]> Authored: Thu Nov 20 20:36:01 2014 -0800 Committer: Antony T Curtis <[email protected]> Committed: Thu Nov 20 20:36:01 2014 -0800 ---------------------------------------------------------------------- .../helix/tools/ClusterStateVerifier.java | 34 +++++++++++++------- 1 file changed, 23 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/helix/blob/b2794e74/helix-core/src/main/java/org/apache/helix/tools/ClusterStateVerifier.java ---------------------------------------------------------------------- diff --git a/helix-core/src/main/java/org/apache/helix/tools/ClusterStateVerifier.java b/helix-core/src/main/java/org/apache/helix/tools/ClusterStateVerifier.java index bd749c3..1428896 100644 --- a/helix-core/src/main/java/org/apache/helix/tools/ClusterStateVerifier.java +++ b/helix-core/src/main/java/org/apache/helix/tools/ClusterStateVerifier.java @@ -126,11 +126,17 @@ public class ClusterStateVerifier { } + private static ZkClient validateAndGetClient(String zkAddr, String clusterName) { + if (zkAddr == null || clusterName == null) { + throw new IllegalArgumentException("requires zkAddr|clusterName"); + } + return ZKClientPool.getZkClient(zkAddr); + } + /** * verifier that verifies best possible state and external view */ public static class BestPossAndExtViewZkVerifier implements ZkVerifier { - private final String zkAddr; private final String clusterName; private final Map<String, Map<String, String>> errStates; private final ZkClient zkClient; @@ -147,13 +153,17 @@ public class ClusterStateVerifier { public BestPossAndExtViewZkVerifier(String zkAddr, String clusterName, Map<String, Map<String, String>> errStates, Set<String> resources) { - if (zkAddr == null || clusterName == null) { - throw new IllegalArgumentException("requires zkAddr|clusterName"); + this(validateAndGetClient(zkAddr, clusterName), clusterName, errStates, resources); + } + + public BestPossAndExtViewZkVerifier(ZkClient zkClient, String clusterName, + Map<String, Map<String, String>> errStates, Set<String> resources) { + if (zkClient == null || clusterName == null) { + throw new IllegalArgumentException("requires zkClient|clusterName"); } - this.zkAddr = zkAddr; this.clusterName = clusterName; this.errStates = errStates; - this.zkClient = ZKClientPool.getZkClient(zkAddr); // null; + this.zkClient = zkClient; this.resources = resources; } @@ -186,22 +196,24 @@ public class ClusterStateVerifier { String verifierName = getClass().getName(); verifierName = verifierName.substring(verifierName.lastIndexOf('.') + 1, verifierName.length()); - return verifierName + "(" + clusterName + "@" + zkAddr + ")"; + return verifierName + "(" + clusterName + "@" + zkClient.getServers() + ")"; } } public static class MasterNbInExtViewVerifier implements ZkVerifier { - private final String zkAddr; private final String clusterName; private final ZkClient zkClient; public MasterNbInExtViewVerifier(String zkAddr, String clusterName) { - if (zkAddr == null || clusterName == null) { - throw new IllegalArgumentException("requires zkAddr|clusterName"); + this(validateAndGetClient(zkAddr, clusterName), clusterName); + } + + public MasterNbInExtViewVerifier(ZkClient zkClient, String clusterName) { + if (zkClient == null || clusterName == null) { + throw new IllegalArgumentException("requires zkClient|clusterName"); } - this.zkAddr = zkAddr; this.clusterName = clusterName; - this.zkClient = ZKClientPool.getZkClient(zkAddr); + this.zkClient = zkClient; } @Override
