use of org.apache.tez.dag.app.dag.DAG in project tez by apache.
the class TestAMWebController method getAttemptsTestHelper.
Map<String, Object> getAttemptsTestHelper(List<TaskAttempt> attempts, List<List<Integer>> attemptMinIds, List<Integer> vertexMinIds, List<Integer> taskMinIds, Integer limit) {
// Creating mock DAG
DAG mockDAG = mock(DAG.class);
doReturn(TezDAGID.fromString("dag_1441301219877_0109_1")).when(mockDAG).getID();
// Creating mock vertex and attaching to mock DAG
TezVertexID vertexID = TezVertexID.fromString("vertex_1441301219877_0109_1_00");
Vertex mockVertex = mock(Vertex.class);
doReturn(vertexID).when(mockVertex).getVertexId();
doReturn(mockVertex).when(mockDAG).getVertex(vertexID);
doReturn(ImmutableMap.of(vertexID, mockVertex)).when(mockDAG).getVertices();
// Creating mock task and attaching to mock Vertex
TezTaskID taskID = TezTaskID.fromString("task_1441301219877_0109_1_00_000000");
Task mockTask = mock(Task.class);
doReturn(taskID).when(mockTask).getTaskId();
int taskIndex = taskID.getId();
doReturn(mockTask).when(mockVertex).getTask(taskIndex);
doReturn(ImmutableMap.of(taskID, mockTask)).when(mockVertex).getTasks();
// Creating mock tasks and attaching to mock vertex
Map<TezTaskAttemptID, TaskAttempt> attemptsMap = Maps.newHashMap();
for (TaskAttempt attempt : attempts) {
TezTaskAttemptID attemptId = attempt.getID();
doReturn(attempt).when(mockTask).getAttempt(attemptId);
attemptsMap.put(attemptId, attempt);
}
doReturn(attemptsMap).when(mockTask).getAttempts();
// Creates & setup controller spy
AMWebController amWebController = new AMWebController(mockRequestContext, mockAppContext, "TEST_HISTORY_URL");
AMWebController spy = spy(amWebController);
doReturn(true).when(spy).setupResponse();
doNothing().when(spy).renderJSON(any());
// Set mock query params
doReturn(limit).when(spy).getQueryParamInt(WebUIService.LIMIT);
doReturn(vertexMinIds).when(spy).getIntegersFromRequest(WebUIService.VERTEX_ID, limit);
doReturn(taskMinIds).when(spy).getIDsFromRequest(WebUIService.TASK_ID, limit, 2);
doReturn(attemptMinIds).when(spy).getIDsFromRequest(WebUIService.ATTEMPT_ID, limit, 3);
// Set function mocks
doReturn(mockDAG).when(spy).checkAndGetDAGFromRequest();
Map<String, Set<String>> counterList = new TreeMap<String, Set<String>>();
doReturn(counterList).when(spy).getCounterListFromRequest();
spy.getAttemptsInfo();
verify(spy).renderJSON(returnResultCaptor.capture());
return returnResultCaptor.getValue();
}
use of org.apache.tez.dag.app.dag.DAG in project tez by apache.
the class TestAMWebController method testGetDagInfo.
@SuppressWarnings("unchecked")
@Test(timeout = 5000)
public void testGetDagInfo() {
AMWebController amWebController = new AMWebController(mockRequestContext, mockAppContext, "TEST_HISTORY_URL");
AMWebController spy = spy(amWebController);
DAG mockDAG = mock(DAG.class);
doReturn(TezDAGID.fromString("dag_1422960590892_0007_42")).when(mockDAG).getID();
doReturn(66.0f).when(mockDAG).getCompletedTaskProgress();
doReturn(DAGState.RUNNING).when(mockDAG).getState();
TezCounters counters = new TezCounters();
counters.addGroup("g1", "g1");
counters.addGroup("g2", "g2");
counters.addGroup("g3", "g3");
counters.addGroup("g4", "g4");
counters.findCounter("g1", "g1_c1").setValue(100);
counters.findCounter("g1", "g1_c2").setValue(100);
counters.findCounter("g2", "g2_c3").setValue(100);
counters.findCounter("g2", "g2_c4").setValue(100);
counters.findCounter("g3", "g3_c5").setValue(100);
counters.findCounter("g3", "g3_c6").setValue(100);
doReturn(counters).when(mockDAG).getAllCounters();
doReturn(counters).when(mockDAG).getCachedCounters();
doReturn(true).when(spy).setupResponse();
doReturn(mockDAG).when(spy).checkAndGetDAGFromRequest();
doNothing().when(spy).renderJSON(any());
Map<String, Set<String>> counterNames = new HashMap<String, Set<String>>();
counterNames.put("*", null);
doReturn(counterNames).when(spy).getCounterListFromRequest();
spy.getDagInfo();
verify(spy).renderJSON(returnResultCaptor.capture());
final Map<String, Object> result = returnResultCaptor.getValue();
Assert.assertEquals(1, result.size());
Assert.assertTrue(result.containsKey("dag"));
Map<String, String> dagInfo = (Map<String, String>) result.get("dag");
Assert.assertEquals(4, dagInfo.size());
Assert.assertTrue("dag_1422960590892_0007_42".equals(dagInfo.get("id")));
Assert.assertEquals("66.0", dagInfo.get("progress"));
Assert.assertEquals("RUNNING", dagInfo.get("status"));
Assert.assertNotNull(dagInfo.get("counters"));
}
use of org.apache.tez.dag.app.dag.DAG in project tez by apache.
the class TestAMWebController method getTasksTestHelper.
Map<String, Object> getTasksTestHelper(List<Task> tasks, List<List<Integer>> taskMinIds, List<Integer> vertexMinIds, Integer limit) {
// Creating mock DAG
DAG mockDAG = mock(DAG.class);
doReturn(TezDAGID.fromString("dag_1441301219877_0109_1")).when(mockDAG).getID();
// Creating mock vertex and attaching to mock DAG
TezVertexID vertexID = TezVertexID.fromString("vertex_1441301219877_0109_1_00");
Vertex mockVertex = mock(Vertex.class);
doReturn(vertexID).when(mockVertex).getVertexId();
doReturn(mockVertex).when(mockDAG).getVertex(vertexID);
doReturn(ImmutableMap.of(vertexID, mockVertex)).when(mockDAG).getVertices();
// Creating mock tasks and attaching to mock vertex
Map<TezTaskID, Task> taskMap = Maps.newHashMap();
for (Task task : tasks) {
TezTaskID taskId = task.getTaskId();
int taskIndex = taskId.getId();
doReturn(task).when(mockVertex).getTask(taskIndex);
taskMap.put(taskId, task);
}
doReturn(taskMap).when(mockVertex).getTasks();
// Creates & setup controller spy
AMWebController amWebController = new AMWebController(mockRequestContext, mockAppContext, "TEST_HISTORY_URL");
AMWebController spy = spy(amWebController);
doReturn(true).when(spy).setupResponse();
doNothing().when(spy).renderJSON(any());
// Set mock query params
doReturn(limit).when(spy).getQueryParamInt(WebUIService.LIMIT);
doReturn(vertexMinIds).when(spy).getIntegersFromRequest(WebUIService.VERTEX_ID, limit);
doReturn(taskMinIds).when(spy).getIDsFromRequest(WebUIService.TASK_ID, limit, 2);
// Set function mocks
doReturn(mockDAG).when(spy).checkAndGetDAGFromRequest();
Map<String, Set<String>> counterList = new TreeMap<String, Set<String>>();
doReturn(counterList).when(spy).getCounterListFromRequest();
spy.getTasksInfo();
verify(spy).renderJSON(returnResultCaptor.capture());
return returnResultCaptor.getValue();
}
use of org.apache.tez.dag.app.dag.DAG in project tez by apache.
the class TestAMWebController method getVerticesTestHelper.
Map<String, Object> getVerticesTestHelper(int numVerticesRequested, Vertex mockVertex1, Vertex mockVertex2) {
DAG mockDAG = mock(DAG.class);
doReturn(TezDAGID.fromString("dag_1422960590892_0007_42")).when(mockDAG).getID();
TezVertexID vertexId1 = mockVertex1.getVertexId();
doReturn(mockVertex1).when(mockDAG).getVertex(vertexId1);
TezVertexID vertexId2 = mockVertex2.getVertexId();
doReturn(mockVertex2).when(mockDAG).getVertex(vertexId2);
AMWebController amWebController = new AMWebController(mockRequestContext, mockAppContext, "TEST_HISTORY_URL");
AMWebController spy = spy(amWebController);
doReturn(ImmutableMap.of(mockVertex1.getVertexId(), mockVertex1, mockVertex2.getVertexId(), mockVertex2)).when(mockDAG).getVertices();
doReturn(true).when(spy).setupResponse();
doReturn(mockDAG).when(spy).checkAndGetDAGFromRequest();
Map<String, Set<String>> counterList = new TreeMap<String, Set<String>>();
doReturn(counterList).when(spy).getCounterListFromRequest();
List<Integer> requested;
if (numVerticesRequested == 0) {
requested = ImmutableList.of();
} else {
requested = ImmutableList.of(mockVertex1.getVertexId().getId());
}
doReturn(requested).when(spy).getVertexIDsFromRequest();
doNothing().when(spy).renderJSON(any());
spy.getVerticesInfo();
verify(spy).renderJSON(returnResultCaptor.capture());
return returnResultCaptor.getValue();
}
use of org.apache.tez.dag.app.dag.DAG in project tez by apache.
the class TestAMWebController method testVertexProgressResponse.
@Test(timeout = 5000)
public void testVertexProgressResponse() {
AMWebController amWebController = new AMWebController(mockRequestContext, mockAppContext, "TEST_HISTORY_URL");
AMWebController spy = spy(amWebController);
DAG mockDAG = mock(DAG.class);
Vertex mockVertex = mock(Vertex.class);
doReturn(true).when(spy).hasAccess();
doReturn("42").when(spy).$(WebUIService.DAG_ID);
doReturn("43").when(spy).$(WebUIService.VERTEX_ID);
doReturn(mockResponse).when(spy).response();
doReturn(TezDAGID.fromString("dag_1422960590892_0007_42")).when(mockDAG).getID();
doReturn(mockDAG).when(mockAppContext).getCurrentDAG();
doReturn(mockVertex).when(mockDAG).getVertex(any(TezVertexID.class));
doReturn(66.0f).when(mockVertex).getCompletedTaskProgress();
doNothing().when(spy).renderJSON(any());
doNothing().when(spy).setCorsHeaders();
spy.getVertexProgress();
verify(spy).renderJSON(singleResultCaptor.capture());
final Map<String, AMWebController.ProgressInfo> result = singleResultCaptor.getValue();
Assert.assertEquals(1, result.size());
Assert.assertTrue(result.containsKey("vertexProgress"));
AMWebController.ProgressInfo progressInfo = result.get("vertexProgress");
Assert.assertTrue("vertex_1422960590892_0007_42_43".equals(progressInfo.getId()));
Assert.assertEquals(66.0f, progressInfo.getProgress(), 0.1);
}
Aggregations