public static String describe(Procedure<?> proc) { Map<String, Object> description = new LinkedHashMap<>(); description.put("ID", proc.getProcId()); description.put("PARENT_ID", proc.getParentProcId()); description.put("STATE", proc.getState()); description.put("OWNER", proc.getOwner()); description.put("TYPE", proc.getProcName()); description.put("START_TIME", new Date(proc.getSubmittedTime())); description.put("LAST_UPDATE", new Date(proc.getLastUpdate())); if (proc.isFailed()) { description.put("ERRORS", MasterProcedureUtil.unwrapRemoteIOException(proc).getMessage()); } description.put("PARAMETERS", parametersToObject(proc)); return JRubyFormat.print(description); }
@Test public void testFailCreateTable() throws Exception { conf.set(MASTER_COPROCESSOR_CONF_KEY, CreateFailObserver.class.getName()); TEST_UTIL.startMiniCluster(3); try { TEST_UTIL.createTable(TABLE, FAMILY); } catch (AccessDeniedException e) { LOG.debug("Ignoring exception: ", e); Thread.sleep(evictionDelay * 3); } List<Procedure<MasterProcedureEnv>> procedureInfos = TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterProcedureExecutor().getProcedures(); for (Procedure procedureInfo : procedureInfos) { if (procedureInfo.getProcName().equals("CreateTableProcedure") && procedureInfo.getState() == ProcedureProtos.ProcedureState.ROLLEDBACK) { fail("Found procedure " + procedureInfo + " that hasn't been cleaned up"); } } }
@Test public void testFailCreateTableAction() throws Exception { conf.set(MASTER_COPROCESSOR_CONF_KEY, CreateFailObserverHandler.class.getName()); TEST_UTIL.startMiniCluster(3); try { TEST_UTIL.createTable(TABLE, FAMILY); fail("Table shouldn't be created"); } catch (AccessDeniedException e) { LOG.debug("Ignoring exception: ", e); Thread.sleep(evictionDelay * 3); } List<Procedure<MasterProcedureEnv>> procedureInfos = TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterProcedureExecutor().getProcedures(); for (Procedure procedureInfo : procedureInfos) { if (procedureInfo.getProcName().equals("CreateTableProcedure") && procedureInfo.getState() == ProcedureProtos.ProcedureState.ROLLEDBACK) { fail("Found procedure " + procedureInfo + " that hasn't been cleaned up"); } } }
out.print( proc.hasOwner() ? escapeXml(proc.getOwner()) : "" ); out.write("</td>\n <td>"); out.print( escapeXml(proc.getProcName()) ); out.write("</td>\n <td>"); out.print( new Date(proc.getSubmittedTime()) );
@Test public void testFailCreateTable() throws Exception { conf.set(MASTER_COPROCESSOR_CONF_KEY, CreateFailObserver.class.getName()); TEST_UTIL.startMiniCluster(3); try { TEST_UTIL.createTable(TABLE, FAMILY); } catch (AccessDeniedException e) { LOG.debug("Ignoring exception: ", e); Thread.sleep(evictionDelay * 3); } List<Procedure<MasterProcedureEnv>> procedureInfos = TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterProcedureExecutor().getProcedures(); for (Procedure procedureInfo : procedureInfos) { if (procedureInfo.getProcName().equals("CreateTableProcedure") && procedureInfo.getState() == ProcedureProtos.ProcedureState.ROLLEDBACK) { fail("Found procedure " + procedureInfo + " that hasn't been cleaned up"); } } }
@Test public void testFailCreateTableAction() throws Exception { conf.set(MASTER_COPROCESSOR_CONF_KEY, CreateFailObserverHandler.class.getName()); TEST_UTIL.startMiniCluster(3); try { TEST_UTIL.createTable(TABLE, FAMILY); fail("Table shouldn't be created"); } catch (AccessDeniedException e) { LOG.debug("Ignoring exception: ", e); Thread.sleep(evictionDelay * 3); } List<Procedure<MasterProcedureEnv>> procedureInfos = TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterProcedureExecutor().getProcedures(); for (Procedure procedureInfo : procedureInfos) { if (procedureInfo.getProcName().equals("CreateTableProcedure") && procedureInfo.getState() == ProcedureProtos.ProcedureState.ROLLEDBACK) { fail("Found procedure " + procedureInfo + " that hasn't been cleaned up"); } } }