From aae0c496b9b52135eb76ab91be8df3d601711d9e Mon Sep 17 00:00:00 2001 From: Reid Chan Date: Sat, 19 Aug 2017 03:17:29 +0800 Subject: [PATCH] HBASE-18621 Refactor ClusterOptions before applying to code base --- .../org/apache/hadoop/hbase/ClusterStatus.java | 274 +++++++++------------ .../hadoop/hbase/client/AsyncHBaseAdmin.java | 2 +- .../org/apache/hadoop/hbase/client/HBaseAdmin.java | 2 +- .../hadoop/hbase/client/RawAsyncHBaseAdmin.java | 2 +- .../hadoop/hbase/shaded/protobuf/ProtobufUtil.java | 39 ++- .../org/apache/hadoop/hbase/master/HMaster.java | 21 +- .../hbase/client/TestClientClusterStatus.java | 56 ++--- 7 files changed, 169 insertions(+), 227 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ClusterStatus.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ClusterStatus.java index 0dc4984cde..380a2e010e 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ClusterStatus.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ClusterStatus.java @@ -47,15 +47,16 @@ import org.apache.hadoop.io.VersionedWritable; *
  • Regions in transition at master
  • *
  • The unique cluster ID
  • * - * {@link Options} provides a way to filter out infos which unwanted. - * The following codes will retrieve all the cluster information. + * {@link Options} and {@link Status} + * provides a way to get desired ClusterStatus information. + * The following codes will get all the cluster information. *
      * {@code
      * // Original version still works
      * Admin admin = connection.getAdmin();
      * ClusterStatus status = admin.getClusterStatus();
      * // or below, a new version which has the same effects
    - * ClusterStatus status = admin.getClusterStatus(Options.defaultOptions());
    + * ClusterStatus status = admin.getClusterStatus(Options.createOptionsIncludeAllStatus());
      * }
      * 
    * If information about dead servers and master coprocessors are unwanted, @@ -64,9 +65,19 @@ import org.apache.hadoop.io.VersionedWritable; * {@code * Admin admin = connection.getAdmin(); * ClusterStatus status = admin.getClusterStatus( - * Options.defaultOptions() - * .excludeDeadServers() - * .excludeMasterCoprocessors()); + * Options.createOptionsIncludeAllStatus() + * .exclude(Status.DEAD_SERVERS) + * .exclude(Status.MASTER_COPROCESSORS); + * } + * + * If information about live servers is the only wanted. + * then codes in the following way: + *
    + * {@code
    + * Admin admin = connection.getAdmin();
    + * ClusterStatus status = admin.getClusterStatus(
    + *                                Options.createOptionsExcludeAllStatus()
    + *                                       .include(Status.LIVE_SERVERS);
      * }
      * 
    */ @@ -436,193 +447,142 @@ public class ClusterStatus extends VersionedWritable { } /** - * Options provides a way to filter out unwanted information. - * For compatibility, default options includes all the information about a ClusterStatus. - * To filter out unwanted information, use the specific excludeXXX() method. + * kinds of ClusterStatus */ - public static class Options { - private boolean includeHBaseVersion = true; - private boolean includeLiveServers = true; - private boolean includeDeadServers = true; - private boolean includeMaster = true; - private boolean includeBackupMasters = true; - private boolean includeRegionState = true; - private boolean includeClusterId = true; - private boolean includeMasterCoprocessors = true; - private boolean includeBalancerOn = true; - - private Options() {} - - /** - * Include all information about a ClusterStatus. - */ - public static Options getDefaultOptions() { - return new Options(); - } - - /** - * Filter out hbase verision. - */ - public Options excludeHBaseVersion() { - includeHBaseVersion = false; - return this; - } - - /** - * Filter out live servers. - */ - public Options excludeLiveServers() { - includeLiveServers = false; - return this; - } - - /** - * Filter out dead servers info. - */ - public Options excludeDeadServers() { - includeDeadServers = false; - return this; - } - - /** - * Filter out master info. - */ - public Options excludeMaster() { - includeMaster = false; - return this; - } + public enum Status { + HBASE_VERSION, CLUSTER_ID, BALANCER_ON, + LIVE_SERVERS, DEAD_SERVERS, + MASTER, BACKUP_MASTERS, MASTER_COPROCESSORS, + REGION_IN_TRANSISTION; + } - /** - * Filter out backup masters info. - */ - public Options excludeBackupMasters() { - includeBackupMasters = false; - return this; + /** + * Options provides a way to get desired information. + * According to the actual use cases, user can create an option either include all + * status or exclude all status, then use exclude(Status) or include(Status) method + * to get desired status. + */ + public static class Options { + private boolean includeHBaseVersion; + private boolean includeLiveServers; + private boolean includeDeadServers; + private boolean includeMaster; + private boolean includeBackupMasters; + private boolean includeRegionState; + private boolean includeClusterId; + private boolean includeMasterCoprocessors; + private boolean includeBalancerOn; + + private Options(boolean includeOrNot) { + includeHBaseVersion = includeOrNot; + includeLiveServers = includeOrNot; + includeDeadServers = includeOrNot; + includeMaster = includeOrNot; + includeBackupMasters = includeOrNot; + includeRegionState = includeOrNot; + includeClusterId = includeOrNot; + includeMasterCoprocessors = includeOrNot; + includeBalancerOn = includeOrNot; } /** - * Filter out region state. + * Include all information about a ClusterStatus. */ - public Options excludeRegionState() { - includeRegionState = false; - return this; + public static Options createOptionsIncludeAllStatus() { + return new Options(true); } /** - * Filter out cluster id. + * Exclude all information about a ClusterStatus. */ - public Options excludeClusterId() { - includeClusterId = false; - return this; + public static Options createOptionsExcludeAllStatus() { + return new Options(false); } /** - * Filter out master's coprocessors info. + * Include information of a status. + * @param statu wanted status + * @return options itself */ - public Options excludeMasterCoprocessors() { - includeMasterCoprocessors = false; + public Options include(Status status) { + setStatus(status, true); return this; } /** - * Filter out balancer on info. + * Exclude information of a status. + * @param statu unwanted status + * @return options itself */ - public Options excludeBalancerOn() { - includeBalancerOn = false; + public Options exclude(Status status) { + setStatus(status, false); return this; } /** - * Include hbase version info. + * If status is included. + * @param status one of the ClusterStatus + * @return true if status is included, false otherwise */ - public boolean includeHBaseVersion() { - return includeHBaseVersion; - } - - /** - * Include live servers info. - */ - public boolean includeLiveServers() { - return includeLiveServers; - } - - /** - * Include dead servers info. - */ - public boolean includeDeadServers() { - return includeDeadServers; - } - - /** - * Include master info. - */ - public boolean includeMaster() { - return includeMaster; - } - - /** - * Include backup masters info. - */ - public boolean includeBackupMasters() { - return includeBackupMasters; - } - - /** - * Include region states info. - */ - public boolean includeRegionState() { - return includeRegionState; - } - - /** - * Include cluster id info. - */ - public boolean includeClusterId() { - return includeClusterId; - } - - /** - * Include master's coprocessors. - */ - public boolean includeMasterCoprocessors() { - return includeMasterCoprocessors; + public boolean grep(Status status) { + switch (status) { + case HBASE_VERSION: return includeHBaseVersion; + case CLUSTER_ID: return includeClusterId; + case LIVE_SERVERS: return includeLiveServers; + case DEAD_SERVERS: return includeDeadServers; + case BACKUP_MASTERS: return includeBackupMasters; + case MASTER: return includeMaster; + case MASTER_COPROCESSORS: return includeMasterCoprocessors; + case BALANCER_ON: return includeBalancerOn; + case REGION_IN_TRANSISTION: return includeRegionState; + // shouldn't reach here. + default: return true; + } } - /** - * Include balancer on info. - */ - public boolean includeBalancerOn() { - return includeBalancerOn; + private void setStatus(Status status, boolean includeOrNot) { + switch (status) { + case HBASE_VERSION: includeHBaseVersion = includeOrNot; break; + case CLUSTER_ID: includeClusterId = includeOrNot; break; + case LIVE_SERVERS: includeLiveServers = includeOrNot; break; + case DEAD_SERVERS: includeDeadServers = includeOrNot; break; + case BACKUP_MASTERS: includeBackupMasters = includeOrNot; break; + case MASTER: includeMaster = includeOrNot; break; + case MASTER_COPROCESSORS: includeMasterCoprocessors = includeOrNot; break; + case BALANCER_ON: includeBalancerOn = includeOrNot; break; + case REGION_IN_TRANSISTION: includeRegionState = includeOrNot; break; + } } /** - * For an options reusable convenience, reset options to default. + * For an options reusable convenience, + * reset all options either include all or exclude all. */ - public Options reset() { - includeHBaseVersion = true; - includeLiveServers = true; - includeDeadServers = true; - includeMaster = true; - includeBackupMasters = true; - includeRegionState = true; - includeClusterId = true; - includeMasterCoprocessors = true; - includeBalancerOn = true; + public Options resetAllOptions(boolean includeOrNot) { + includeHBaseVersion = includeOrNot; + includeLiveServers = includeOrNot; + includeDeadServers = includeOrNot; + includeMaster = includeOrNot; + includeBackupMasters = includeOrNot; + includeRegionState = includeOrNot; + includeClusterId = includeOrNot; + includeMasterCoprocessors = includeOrNot; + includeBalancerOn = includeOrNot; return this; } @Override public String toString() { StringBuilder builder = new StringBuilder("ClusterStatus info: ["); - builder.append("include hbase version: " + includeHBaseVersion + ", "); - builder.append("include cluster id: " + includeClusterId + ", "); - builder.append("include master info: " + includeMaster + ", "); - builder.append("include backup masters info: " + includeBackupMasters + ", "); - builder.append("include live servers info: " + includeLiveServers + ", "); - builder.append("include dead servers info: " + includeDeadServers + ", "); - builder.append("include masters coprocessors: " + includeMasterCoprocessors + ", "); - builder.append("include region state: " + includeRegionState + ", "); - builder.append("include balancer on: " + includeBalancerOn + "]"); + builder.append("include hbase version: " + includeHBaseVersion + ", ") + .append("include cluster id: " + includeClusterId + ", ") + .append("include master info: " + includeMaster + ", ") + .append("include backup masters info: " + includeBackupMasters + ", ") + .append("include live servers info: " + includeLiveServers + ", ") + .append("include dead servers info: " + includeDeadServers + ", ") + .append("include masters coprocessors: " + includeMasterCoprocessors + ", ") + .append("include region state: " + includeRegionState + ", ") + .append("include balancer on: " + includeBalancerOn + "]"); return builder.toString(); } } diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.java index 097f22a1d2..12d2341faf 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.java @@ -494,7 +494,7 @@ public class AsyncHBaseAdmin implements AsyncAdmin { @Override public CompletableFuture getClusterStatus() { - return getClusterStatus(Options.getDefaultOptions()); + return getClusterStatus(Options.createOptionsIncludeAllStatus()); } @Override diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java index 11f3273c0b..a316dbfb1d 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java @@ -2075,7 +2075,7 @@ public class HBaseAdmin implements Admin { @Override public ClusterStatus getClusterStatus() throws IOException { - return getClusterStatus(Options.getDefaultOptions()); + return getClusterStatus(Options.createOptionsIncludeAllStatus()); } @Override diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java index ba68a969c9..4161a2eeba 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java @@ -2421,7 +2421,7 @@ public class RawAsyncHBaseAdmin implements AsyncAdmin { @Override public CompletableFuture getClusterStatus() { - return getClusterStatus(Options.getDefaultOptions()); + return getClusterStatus(Options.createOptionsIncludeAllStatus()); } @Override diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java index a5278833e2..f178a116db 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java @@ -17,7 +17,6 @@ */ package org.apache.hadoop.hbase.shaded.protobuf; -import java.awt.image.BandCombineOp; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; @@ -3142,16 +3141,16 @@ public final class ProtobufUtil { * @return proto ClusterStatus.Options */ public static ClusterStatus.Options toOptions (ClusterStatusProtos.Options opt) { - ClusterStatus.Options option = ClusterStatus.Options.getDefaultOptions(); - if (!opt.getIncludeHbaseVersion()) option.excludeHBaseVersion(); - if (!opt.getIncludeLiveServers()) option.excludeLiveServers(); - if (!opt.getIncludeDeadServers()) option.excludeDeadServers(); - if (!opt.getIncludeRegionsState()) option.excludeRegionState(); - if (!opt.getIncludeClusterId()) option.excludeClusterId(); - if (!opt.getIncludeMasterCoprocessors()) option.excludeMasterCoprocessors(); - if (!opt.getIncludeMaster()) option.excludeMaster(); - if (!opt.getIncludeBackupMasters()) option.excludeBackupMasters(); - if (!opt.getIncludeBalancerOn()) option.excludeBalancerOn(); + ClusterStatus.Options option = ClusterStatus.Options.createOptionsExcludeAllStatus(); + if (opt.getIncludeHbaseVersion()) option.include(ClusterStatus.Status.HBASE_VERSION); + if (opt.getIncludeLiveServers()) option.include(ClusterStatus.Status.LIVE_SERVERS); + if (opt.getIncludeDeadServers()) option.include(ClusterStatus.Status.DEAD_SERVERS); + if (opt.getIncludeRegionsState()) option.include(ClusterStatus.Status.REGION_IN_TRANSISTION); + if (opt.getIncludeClusterId()) option.include(ClusterStatus.Status.CLUSTER_ID); + if (opt.getIncludeMasterCoprocessors()) option.include(ClusterStatus.Status.MASTER_COPROCESSORS); + if (opt.getIncludeMaster()) option.include(ClusterStatus.Status.MASTER); + if (opt.getIncludeBackupMasters()) option.include(ClusterStatus.Status.BACKUP_MASTERS); + if (opt.getIncludeBalancerOn()) option.include(ClusterStatus.Status.BALANCER_ON); return option; } @@ -3163,15 +3162,15 @@ public final class ProtobufUtil { public static ClusterStatusProtos.Options toOptions(ClusterStatus.Options opt) { ClusterStatusProtos.Options.Builder option = ClusterStatusProtos.Options.newBuilder(); - option.setIncludeHbaseVersion(opt.includeHBaseVersion()) - .setIncludeLiveServers(opt.includeLiveServers()) - .setIncludeDeadServers(opt.includeDeadServers()) - .setIncludeRegionsState(opt.includeRegionState()) - .setIncludeClusterId(opt.includeClusterId()) - .setIncludeMasterCoprocessors(opt.includeMasterCoprocessors()) - .setIncludeMaster(opt.includeMaster()) - .setIncludeBackupMasters(opt.includeBackupMasters()) - .setIncludeBalancerOn(opt.includeBalancerOn()); + option.setIncludeHbaseVersion(opt.grep(ClusterStatus.Status.HBASE_VERSION)) + .setIncludeLiveServers(opt.grep(ClusterStatus.Status.LIVE_SERVERS)) + .setIncludeDeadServers(opt.grep(ClusterStatus.Status.DEAD_SERVERS)) + .setIncludeRegionsState(opt.grep(ClusterStatus.Status.REGION_IN_TRANSISTION)) + .setIncludeClusterId(opt.grep(ClusterStatus.Status.CLUSTER_ID)) + .setIncludeMasterCoprocessors(opt.grep(ClusterStatus.Status.MASTER_COPROCESSORS)) + .setIncludeMaster(opt.grep(ClusterStatus.Status.MASTER)) + .setIncludeBackupMasters(opt.grep(ClusterStatus.Status.BACKUP_MASTERS)) + .setIncludeBalancerOn(opt.grep(ClusterStatus.Status.BALANCER_ON)); return option.build(); } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 6b4d4e935d..d6d2127a2a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -55,6 +55,7 @@ import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.ClusterStatus; import org.apache.hadoop.hbase.ClusterStatus.Options; +import org.apache.hadoop.hbase.ClusterStatus.Status; import org.apache.hadoop.hbase.CoordinatedStateException; import org.apache.hadoop.hbase.CoordinatedStateManager; import org.apache.hadoop.hbase.DoNotRetryIOException; @@ -2444,7 +2445,7 @@ public class HMaster extends HRegionServer implements MasterServices { * @return cluster status */ public ClusterStatus getClusterStatus() throws InterruptedIOException { - return getClusterStatus(Options.getDefaultOptions()); + return getClusterStatus(Options.createOptionsIncludeAllStatus()); } /** @@ -2455,31 +2456,31 @@ public class HMaster extends HRegionServer implements MasterServices { LOG.debug("Retrieving cluster status info. " + options); } ClusterStatus.Builder builder = ClusterStatus.newBuilder(); - if (options.includeHBaseVersion()) { + if (options.grep(Status.HBASE_VERSION)) { builder.setHBaseVersion(VersionInfo.getVersion()); } - if (options.includeClusterId()) { + if (options.grep(Status.CLUSTER_ID)) { builder.setClusterId(getClusterId()); } - if (options.includeLiveServers() && serverManager != null) { + if (options.grep(Status.LIVE_SERVERS) && serverManager != null) { builder.setLiveServers(serverManager.getOnlineServers()); } - if (options.includeDeadServers() && serverManager != null) { + if (options.grep(Status.DEAD_SERVERS) && serverManager != null) { builder.setDeadServers(serverManager.getDeadServers().copyServerNames()); } - if (options.includeMaster()) { + if (options.grep(Status.MASTER)) { builder.setMaster(getServerName()); } - if (options.includeBackupMasters()) { + if (options.grep(Status.BACKUP_MASTERS)) { builder.setBackupMasters(getBackupMasters()); } - if (options.includeRegionState() && assignmentManager != null) { + if (options.grep(Status.REGION_IN_TRANSISTION) && assignmentManager != null) { builder.setRegionState(assignmentManager.getRegionStates().getRegionsStateInTransition()); } - if (options.includeMasterCoprocessors() && cpHost != null) { + if (options.grep(Status.MASTER_COPROCESSORS) && cpHost != null) { builder.setMasterCoprocessors(getMasterCoprocessors()); } - if (options.includeBalancerOn() && loadBalancerTracker != null) { + if (options.grep(Status.BALANCER_ON) && loadBalancerTracker != null) { builder.setBalancerOn(loadBalancerTracker.isBalancerOn()); } return builder.build(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestClientClusterStatus.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestClientClusterStatus.java index 49b4ff2e4d..6511863fd0 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestClientClusterStatus.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestClientClusterStatus.java @@ -24,11 +24,11 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.ClusterStatus; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.ClusterStatus.Options; +import org.apache.hadoop.hbase.ClusterStatus.Status; import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.MiniHBaseCluster; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.master.HMaster; -import org.apache.hadoop.hbase.master.LoadBalancer; import org.apache.hadoop.hbase.regionserver.HRegionServer; import org.apache.hadoop.hbase.security.User; import org.apache.hadoop.hbase.testclassification.SmallTests; @@ -73,7 +73,7 @@ public class TestClientClusterStatus { @Test public void testDefaults() throws Exception { ClusterStatus origin = ADMIN.getClusterStatus(); - ClusterStatus defaults = ADMIN.getClusterStatus(Options.getDefaultOptions()); + ClusterStatus defaults = ADMIN.getClusterStatus(Options.createOptionsIncludeAllStatus()); Assert.assertEquals(origin.getHBaseVersion(), defaults.getHBaseVersion()); Assert.assertEquals(origin.getClusterId(), defaults.getClusterId()); Assert.assertTrue(origin.getAverageLoad() == defaults.getAverageLoad()); @@ -85,16 +85,9 @@ public class TestClientClusterStatus { @Test public void testExclude() throws Exception { - ClusterStatus.Options options = Options.getDefaultOptions(); + ClusterStatus.Options options = Options.createOptionsExcludeAllStatus(); // Only retrieve master's coprocessors which are null in this test env. - options.excludeHBaseVersion() - .excludeBackupMasters() - .excludeBalancerOn() - .excludeClusterId() - .excludeLiveServers() - .excludeDeadServers() - .excludeMaster() - .excludeRegionState(); + options.include(Status.MASTER_COPROCESSORS); ClusterStatus status = ADMIN.getClusterStatus(options); // Other cluster status info should be either null or empty. Assert.assertTrue(status.getMasterCoprocessors().length == 0); @@ -117,7 +110,7 @@ public class TestClientClusterStatus { CompletableFuture originFuture = asyncAdmin.getClusterStatus(); CompletableFuture defaultsFuture = - asyncAdmin.getClusterStatus(Options.getDefaultOptions()); + asyncAdmin.getClusterStatus(Options.createOptionsIncludeAllStatus()); ClusterStatus origin = originFuture.get(); ClusterStatus defaults = defaultsFuture.get(); Assert.assertEquals(origin.getHBaseVersion(), defaults.getHBaseVersion()); @@ -143,21 +136,16 @@ public class TestClientClusterStatus { } } // Retrieve live servers and dead servers info. - ClusterStatus.Options options = Options.getDefaultOptions(); - options.excludeHBaseVersion() - .excludeBackupMasters() - .excludeBalancerOn() - .excludeClusterId() - .excludeMaster() - .excludeMasterCoprocessors() - .excludeRegionState(); + ClusterStatus.Options options = Options.createOptionsExcludeAllStatus(); + options.include(Status.LIVE_SERVERS) + .include(Status.DEAD_SERVERS); ClusterStatus status = ADMIN.getClusterStatus(options); Assert.assertNotNull(status); Assert.assertNotNull(status.getServers()); // exclude a dead region server - Assert.assertEquals(SLAVES, numRs); - // live servers = primary master + nums of regionservers - Assert.assertEquals(status.getServers().size() + 1 /*Master*/, numRs); + Assert.assertEquals(SLAVES - 1, numRs); + // live servers = nums of regionservers + Assert.assertEquals(status.getServers().size(), numRs); Assert.assertTrue(status.getRegionsCount() > 0); Assert.assertNotNull(status.getDeadServerNames()); Assert.assertEquals(1, status.getDeadServersSize()); @@ -185,14 +173,9 @@ public class TestClientClusterStatus { Assert.assertEquals(1, numActive); Assert.assertEquals(MASTERS, masterThreads.size()); // Retrieve master and backup masters infos only. - ClusterStatus.Options options = Options.getDefaultOptions(); - options.excludeHBaseVersion() - .excludeBalancerOn() - .excludeClusterId() - .excludeLiveServers() - .excludeDeadServers() - .excludeMasterCoprocessors() - .excludeRegionState(); + ClusterStatus.Options options = Options.createOptionsExcludeAllStatus(); + options.include(Status.MASTER) + .include(Status.BACKUP_MASTERS); ClusterStatus status = ADMIN.getClusterStatus(options); Assert.assertTrue(status.getMaster().equals(activeName)); Assert.assertEquals(MASTERS - 1, status.getBackupMastersSize()); @@ -200,12 +183,11 @@ public class TestClientClusterStatus { @Test public void testOtherStatusInfos() throws Exception { - ClusterStatus.Options options = Options.getDefaultOptions(); - options.excludeMaster() - .excludeBackupMasters() - .excludeRegionState() - .excludeLiveServers() - .excludeBackupMasters(); + ClusterStatus.Options options = Options.createOptionsExcludeAllStatus(); + options.include(Status.MASTER_COPROCESSORS) + .include(Status.HBASE_VERSION) + .include(Status.CLUSTER_ID) + .include(Status.BALANCER_ON); ClusterStatus status = ADMIN.getClusterStatus(options); Assert.assertTrue(status.getMasterCoprocessors().length == 0); Assert.assertNotNull(status.getHBaseVersion()); -- 2.11.0 (Apple Git-81)