@Override protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName) throws IOException { CloseRegionResponse.Builder resp = CloseRegionResponse.newBuilder(); boolean closed = rand.nextBoolean(); if (closed) { RegionInfo hri = am.getRegionInfo(regionName); sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED, -1); } resp.setClosed(closed); return resp.build(); } }
/** * Get RegionInfo from Master using content of RegionSpecifier as key. * @return RegionInfo found by decoding <code>rs</code> or null if none found */ private RegionInfo getRegionInfo(HBaseProtos.RegionSpecifier rs) throws UnknownRegionException { RegionInfo ri = null; switch(rs.getType()) { case REGION_NAME: final byte[] regionName = rs.getValue().toByteArray(); ri = this.master.getAssignmentManager().getRegionInfo(regionName); break; case ENCODED_REGION_NAME: String encodedRegionName = Bytes.toString(rs.getValue().toByteArray()); RegionState regionState = this.master.getAssignmentManager().getRegionStates(). getRegionState(encodedRegionName); ri = regionState == null? null: regionState.getRegion(); break; default: break; } return ri; }
@Override protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName) throws IOException { RegionInfo hri = am.getRegionInfo(regionName); sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED, -1); return CloseRegionResponse.newBuilder().setClosed(true).build(); } }
@Override public AssignRegionResponse assignRegion(RpcController controller, AssignRegionRequest req) throws ServiceException { try { master.checkInitialized(); final RegionSpecifierType type = req.getRegion().getType(); if (type != RegionSpecifierType.REGION_NAME) { LOG.warn("assignRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME + " actual: " + type); } final byte[] regionName = req.getRegion().getValue().toByteArray(); final RegionInfo regionInfo = master.getAssignmentManager().getRegionInfo(regionName); if (regionInfo == null) throw new UnknownRegionException(Bytes.toStringBinary(regionName)); final AssignRegionResponse arr = AssignRegionResponse.newBuilder().build(); if (master.cpHost != null) { master.cpHost.preAssign(regionInfo); } LOG.info(master.getClientIdAuditPrefix() + " assign " + regionInfo.getRegionNameAsString()); master.getAssignmentManager().assign(regionInfo); if (master.cpHost != null) { master.cpHost.postAssign(regionInfo); } return arr; } catch (IOException ioe) { throw new ServiceException(ioe); } }
final RegionInfo hri = master.getAssignmentManager().getRegionInfo(regionName); if (hri == null) throw new UnknownRegionException(Bytes.toStringBinary(regionName));
@Override protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName) throws IOException { CloseRegionResponse.Builder resp = CloseRegionResponse.newBuilder(); boolean closed = rand.nextBoolean(); if (closed) { RegionInfo hri = am.getRegionInfo(regionName); sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED); } resp.setClosed(closed); return resp.build(); } }
@Override protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName) throws IOException { RegionInfo hri = am.getRegionInfo(regionName); sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED); return CloseRegionResponse.newBuilder().setClosed(true).build(); } }