@Override public RemoteOperation remoteCallBuild(final MasterProcedureEnv env, final ServerName serverName) { assert serverName.equals(getRegionState(env).getRegionLocation()); return new RegionOpenOperation(this, getRegionInfo(), env.getAssignmentManager().getFavoredNodes(getRegionInfo()), false); }
@Override protected void serializeStateData(ProcedureStateSerializer serializer) throws IOException { final AssignRegionStateData.Builder state = AssignRegionStateData.newBuilder().setTransitionState(getTransitionState()) .setRegionInfo(ProtobufUtil.toRegionInfo(getRegionInfo())); if (forceNewPlan) { state.setForceNewPlan(true); } if (this.targetServer != null) { state.setTargetServer(ProtobufUtil.toServerName(this.targetServer)); } if (getAttempt() > 0) { state.setAttempt(getAttempt()); } serializer.serialize(state.build()); }
@Test public void testSimpleComparator() { List<AssignProcedure> procedures = new ArrayList<AssignProcedure>(); RegionInfo user1 = RegionInfoBuilder.newBuilder(TableName.valueOf("user_space1")).build(); procedures.add(new AssignProcedure(user1)); RegionInfo user2 = RegionInfoBuilder.newBuilder(TableName.valueOf("user_space2")).build(); procedures.add(new AssignProcedure(RegionInfoBuilder.FIRST_META_REGIONINFO)); procedures.add(new AssignProcedure(user2)); RegionInfo system = RegionInfoBuilder.newBuilder(TableName.NAMESPACE_TABLE_NAME).build(); procedures.add(new AssignProcedure(system)); procedures.sort(AssignProcedure.COMPARATOR); assertTrue(procedures.get(0).isMeta()); assertTrue(procedures.get(1).getRegionInfo().getTable().equals(TableName.NAMESPACE_TABLE_NAME)); }
procedures.sort(AssignProcedure.COMPARATOR); try { assertTrue(procedures.get(0).getRegionInfo().equals(RegionInfoBuilder.FIRST_META_REGIONINFO)); assertTrue(procedures.get(1).getRegionInfo().equals(meta0)); assertTrue(procedures.get(2).getRegionInfo().equals(meta1)); assertTrue(procedures.get(3).getRegionInfo().equals(meta2)); assertTrue(procedures.get(4).getRegionInfo().getTable().equals(TableName.NAMESPACE_TABLE_NAME)); assertTrue(procedures.get(5).getRegionInfo().equals(user1)); assertTrue(procedures.get(6).getRegionInfo().equals(user2)); assertTrue(procedures.get(7).getRegionInfo().equals(user3)); } catch (Throwable t) { for (AssignProcedure proc : procedures) {
() -> executor.getProcedures().stream().filter(p -> p instanceof AssignProcedure) .map(p -> (AssignProcedure) p) .anyMatch(p -> Bytes.equals(hri.getRegionName(), p.getRegionInfo().getRegionName()))); proc.resume(); UTIL.waitFor(30000, () -> executor.isFinished(procId));
() -> executor.getProcedures().stream().filter(p -> p instanceof AssignProcedure) .map(p -> (AssignProcedure) p) .anyMatch(p -> Bytes.equals(hri.getRegionName(), p.getRegionInfo().getRegionName()))); proc.resume(); UTIL.waitFor(30000, () -> executor.isFinished(procId));