From c20586ec432e4e488254a815c2ac6c07ec092583 Mon Sep 17 00:00:00 2001 From: Xiang LI Date: Wed, 27 Mar 2019 23:59:52 +0800 Subject: [PATCH] HBASE-22119 Provide functions in RSGroupInfo to check if a group is the default group --- .../hadoop/hbase/rsgroup/RSGroupInfo.java | 20 +++++++++++++++++++ .../hbase/rsgroup/RSGroupInfoManagerImpl.java | 10 ++++------ .../hbase/rsgroup/TestRSGroupsAdmin1.java | 8 ++++---- .../hbase/rsgroup/TestRSGroupsBase.java | 2 +- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java index 25e827de05..9b20f16aa6 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java @@ -121,6 +121,26 @@ public class RSGroupInfo { return tables.remove(table); } + /** + * Tell if this is the "default" group. + * + * @return true if this is the "default" group. + */ + public boolean isDefaultGroup() { + return isDefaultGroup(this.getName()); + } + + /** + * Tell if the given group name (as a String) is the "default" group. + * + * @param groupName group name as a String + * @return true if the group name matches + * {@link org.apache.hadoop.hbase.rsgroup.RSGroupInfo#DEFAULT_GROUP} + */ + public static boolean isDefaultGroup(String groupName) { + return DEFAULT_GROUP.equals(groupName); + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java index 754962687f..55cfd575b4 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java @@ -169,8 +169,7 @@ final class RSGroupInfoManagerImpl implements RSGroupInfoManager { @Override public synchronized void addRSGroup(RSGroupInfo rsGroupInfo) throws IOException { checkGroupName(rsGroupInfo.getName()); - if (rsGroupMap.get(rsGroupInfo.getName()) != null || - rsGroupInfo.getName().equals(RSGroupInfo.DEFAULT_GROUP)) { + if (rsGroupMap.get(rsGroupInfo.getName()) != null || rsGroupInfo.isDefaultGroup()) { throw new DoNotRetryIOException("Group already exists: " + rsGroupInfo.getName()); } Map newGroupMap = Maps.newHashMap(rsGroupMap); @@ -211,8 +210,7 @@ final class RSGroupInfoManagerImpl implements RSGroupInfoManager { // it. If not 'default' group, add server to 'dst' rsgroup EVEN IF IT IS NOT online (could be a // rsgroup of dead servers that are to come back later). Set
onlineServers = - dst.getName().equals(RSGroupInfo.DEFAULT_GROUP) ? getOnlineServers(this.masterServices) - : null; + dst.isDefaultGroup() ? getOnlineServers(this.masterServices) : null; for (Address el : servers) { src.removeServer(el); if (onlineServers != null) { @@ -287,7 +285,7 @@ final class RSGroupInfoManagerImpl implements RSGroupInfoManager { @Override public synchronized void removeRSGroup(String groupName) throws IOException { - if (!rsGroupMap.containsKey(groupName) || groupName.equals(RSGroupInfo.DEFAULT_GROUP)) { + if (!rsGroupMap.containsKey(groupName) || RSGroupInfo.isDefaultGroup(groupName)) { throw new DoNotRetryIOException( "Group " + groupName + " does not exist or is a reserved " + "group"); } @@ -430,7 +428,7 @@ final class RSGroupInfoManagerImpl implements RSGroupInfoManager { orphanTables.add(TableName.valueOf(entry)); } for (RSGroupInfo group : groupList) { - if (!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) { + if (!group.isDefaultGroup()) { orphanTables.removeAll(group.getTables()); } } diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java index 27511e3079..1d8494b1e7 100644 --- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java +++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java @@ -284,10 +284,10 @@ public class TestRSGroupsAdmin1 extends TestRSGroupsBase { }); RSGroupInfo tableGrpA = rsGroupAdmin.getRSGroupInfoOfTable(tableNameA); - assertTrue(tableGrpA.getName().equals(RSGroupInfo.DEFAULT_GROUP)); + assertTrue(tableGrpA.isDefaultGroup()); RSGroupInfo tableGrpB = rsGroupAdmin.getRSGroupInfoOfTable(tableNameB); - assertTrue(tableGrpB.getName().equals(RSGroupInfo.DEFAULT_GROUP)); + assertTrue(tableGrpB.isDefaultGroup()); // change table's group LOG.info("Moving table [" + tableNameA + "," + tableNameB + "] to " + newGroup.getName()); rsGroupAdmin.moveTables(Sets.newHashSet(tableNameA, tableNameB), newGroup.getName()); @@ -331,7 +331,7 @@ public class TestRSGroupsAdmin1 extends TestRSGroupsBase { }); RSGroupInfo tableGrp = rsGroupAdmin.getRSGroupInfoOfTable(tableName); - assertTrue(tableGrp.getName().equals(RSGroupInfo.DEFAULT_GROUP)); + assertTrue(tableGrp.isDefaultGroup()); // change table's group LOG.info("Moving table " + tableName + " to " + newGroup.getName()); @@ -391,7 +391,7 @@ public class TestRSGroupsAdmin1 extends TestRSGroupsBase { }); RSGroupInfo tableGrp = rsGroupAdmin.getRSGroupInfoOfTable(tableName); - assertTrue(tableGrp.getName().equals(RSGroupInfo.DEFAULT_GROUP)); + assertTrue(tableGrp.isDefaultGroup()); // test disable table admin.disableTable(tableName); diff --git a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java index 08d0638328..ff2055f153 100644 --- a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java +++ b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java @@ -224,7 +224,7 @@ public abstract class TestRSGroupsBase { public void deleteGroups() throws IOException { RSGroupAdmin groupAdmin = new RSGroupAdminClient(TEST_UTIL.getConnection()); for(RSGroupInfo group: groupAdmin.listRSGroups()) { - if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) { + if(!group.isDefaultGroup()) { groupAdmin.moveTables(group.getTables(), RSGroupInfo.DEFAULT_GROUP); groupAdmin.moveServers(group.getServers(), RSGroupInfo.DEFAULT_GROUP); groupAdmin.removeRSGroup(group.getName()); -- 2.20.1