/** This tests entityGroup assignment */ @Test(timeout = 120000) public void testAssignEntityGroup() throws Exception { String table = "testAssignEntityGroup"; try { FTable desc = FMetaTestUtil.makeTable(table); admin.createTable(desc); EntityGroupInfo egInfo = new EntityGroupInfo( Bytes.toBytes(desc.getTableName()), Bytes.toBytes("A"), Bytes.toBytes("Z")); FMetaEditor.addEntityGroupToMeta(conf, egInfo); FMaster master = TEST_UTIL.getWaspCluster().getMaster(); master.assignEntityGroup(egInfo); master.getAssignmentManager().waitForAssignment(egInfo); ServerName serverName = master.getAssignmentManager().getEntityGroupStates().getFServerOfEntityGroup(egInfo); TEST_UTIL.assertEntityGroupOnServer(egInfo, serverName, 200); } finally { TEST_UTIL.deleteTable(Bytes.toBytes(table)); } }
@Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { FMaster master = (FMaster) getServletContext().getAttribute(FMaster.MASTER); assert master != null : "No Master in context!"; Configuration conf = master.getConfiguration(); WaspAdmin admin = new WaspAdmin(conf); List<ServerName> servers = master.getFServerManager().getOnlineServersList(); Set<ServerName> deadServers = master.getFServerManager().getDeadServers(); response.setContentType("text/html"); MasterStatusTmpl tmpl = new MasterStatusTmpl() .setShowAppendWarning(shouldShowAppendWarning(conf)) .setServers(servers) .setDeadServers(deadServers); if (request.getParameter("filter") != null) tmpl.setFilter(request.getParameter("filter")); if (request.getParameter("format") != null) tmpl.setFormat(request.getParameter("format")); tmpl.render(response.getWriter(), master, admin); }
EntityGroupInfo createTableAndGetOneEntityGroup(final String tableName) throws IOException, InterruptedException { FTable desc = FMetaTestUtil.makeTable(tableName); admin.createTable(desc, Bytes.toBytes("A"), Bytes.toBytes("Z"), 5); // wait till the table is assigned FMaster master = TEST_UTIL.getWaspCluster().getMaster(); long timeoutTime = System.currentTimeMillis() + 100; while (true) { List<EntityGroupInfo> entityGroups = master .getAssignmentManager() .getEntityGroupStates() .getEntityGroupsOfTable(Bytes.toBytes(tableName)); if (entityGroups.size() > 3) { return entityGroups.get(2); } long now = System.currentTimeMillis(); if (now > timeoutTime) { fail("Could not find an online entityGroup"); } Thread.sleep(10); } }