From d35020763387053ee458c1367f01e5e3cade5243 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 27 Apr 2018 17:22:24 +0800 Subject: [PATCH] HBASE-20500 [rsgroup] should keep at least one server in default group --- .../java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java index f7e7731..22bf10b 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java @@ -317,11 +317,18 @@ public class RSGroupAdminServer implements RSGroupAdmin { "RSGroup. Expecting only " + srcGrp.getName() + " but contains " + tmpGroup); } } + + if (RSGroupInfo.DEFAULT_GROUP.equals(srcGrp.getName()) && srcGrp.getServers().size() <= + servers.size()) { + throw new ConstraintException(" should keep at least one server in 'default' RSGroup "); + } + if (srcGrp.getServers().size() <= servers.size() && srcGrp.getTables().size() > 0) { throw new ConstraintException("Cannot leave a RSGroup " + srcGrp.getName() + " that contains tables without servers to host them."); } + // MovedServers may be < passed in 'servers'. Set
movedServers = rsGroupInfoManager.moveServers(servers, srcGrp.getName(), targetGroupName); -- 1.8.3.1