List of usage examples for org.apache.hadoop.yarn.api.records ApplicationId newInstance
@Public @Unstable public static ApplicationId newInstance(long clusterTimestamp, int id)
From source file:org.apache.tez.dag.app.rm.TestTaskSchedulerManager.java
License:Apache License
@Test(timeout = 5000) public void testTaskSchedulerRouting() throws Exception { Configuration conf = new Configuration(false); UserPayload defaultPayload = TezUtils.createUserPayloadFromConf(conf); String customSchedulerName = "fakeScheduler"; List<NamedEntityDescriptor> taskSchedulers = new LinkedList<>(); ByteBuffer bb = ByteBuffer.allocate(4); bb.putInt(0, 3);//from w w w . ja v a2 s . com UserPayload userPayload = UserPayload.create(bb); taskSchedulers.add(new NamedEntityDescriptor(customSchedulerName, FakeTaskScheduler.class.getName()) .setUserPayload(userPayload)); taskSchedulers.add(new NamedEntityDescriptor(TezConstants.getTezYarnServicePluginName(), null) .setUserPayload(defaultPayload)); TSEHForMultipleSchedulersTest tseh = new TSEHForMultipleSchedulersTest(mockAppContext, mockClientService, mockEventHandler, mockSigMatcher, mockWebUIService, taskSchedulers, false); tseh.init(conf); tseh.start(); // Verify that the YARN task scheduler is installed by default assertTrue(tseh.getYarnSchedulerCreated()); assertFalse(tseh.getUberSchedulerCreated()); assertEquals(2, tseh.getNumCreateInvocations()); // Verify the order of the schedulers assertEquals(customSchedulerName, tseh.getTaskSchedulerName(0)); assertEquals(TezConstants.getTezYarnServicePluginName(), tseh.getTaskSchedulerName(1)); verify(tseh.getTestTaskScheduler(0)).initialize(); verify(tseh.getTestTaskScheduler(0)).start(); ApplicationId appId = ApplicationId.newInstance(1000, 1); TezDAGID dagId = TezDAGID.getInstance(appId, 1); TezVertexID vertexID = TezVertexID.getInstance(dagId, 1); TezTaskID taskId1 = TezTaskID.getInstance(vertexID, 1); TezTaskAttemptID attemptId11 = TezTaskAttemptID.getInstance(taskId1, 1); TezTaskID taskId2 = TezTaskID.getInstance(vertexID, 2); TezTaskAttemptID attemptId21 = TezTaskAttemptID.getInstance(taskId2, 1); Resource resource = Resource.newInstance(1024, 1); TaskAttempt mockTaskAttempt1 = mock(TaskAttempt.class); TaskAttempt mockTaskAttempt2 = mock(TaskAttempt.class); AMSchedulerEventTALaunchRequest launchRequest1 = new AMSchedulerEventTALaunchRequest(attemptId11, resource, mock(TaskSpec.class), mockTaskAttempt1, mock(TaskLocationHint.class), 1, mock(ContainerContext.class), 0, 0, 0); tseh.handle(launchRequest1); verify(tseh.getTestTaskScheduler(0)).allocateTask(eq(mockTaskAttempt1), eq(resource), any(String[].class), any(String[].class), any(Priority.class), any(Object.class), eq(launchRequest1)); AMSchedulerEventTALaunchRequest launchRequest2 = new AMSchedulerEventTALaunchRequest(attemptId21, resource, mock(TaskSpec.class), mockTaskAttempt2, mock(TaskLocationHint.class), 1, mock(ContainerContext.class), 1, 0, 0); tseh.handle(launchRequest2); verify(tseh.getTestTaskScheduler(1)).allocateTask(eq(mockTaskAttempt2), eq(resource), any(String[].class), any(String[].class), any(Priority.class), any(Object.class), eq(launchRequest2)); }
From source file:org.apache.tez.dag.app.rm.TestTaskSchedulerManager.java
License:Apache License
@SuppressWarnings("unchecked") @Test(timeout = 5000)// w ww. j a v a2s . c o m public void testReportFailureFromTaskScheduler() { String dagName = DAG_NAME; Configuration conf = new TezConfiguration(); String taskSchedulerName = "testTaskScheduler"; String expIdentifier = "[0:" + taskSchedulerName + "]"; EventHandler eventHandler = mock(EventHandler.class); AppContext appContext = mock(AppContext.class, RETURNS_DEEP_STUBS); doReturn(taskSchedulerName).when(appContext).getTaskSchedulerName(0); doReturn(eventHandler).when(appContext).getEventHandler(); doReturn(conf).when(appContext).getAMConf(); InetSocketAddress address = new InetSocketAddress("host", 55000); DAGClientServer dagClientServer = mock(DAGClientServer.class); doReturn(address).when(dagClientServer).getBindAddress(); DAG dag = mock(DAG.class); TezDAGID dagId = TezDAGID.getInstance(ApplicationId.newInstance(1, 0), DAG_INDEX); doReturn(dagName).when(dag).getName(); doReturn(dagId).when(dag).getID(); doReturn(dag).when(appContext).getCurrentDAG(); NamedEntityDescriptor<TaskSchedulerDescriptor> namedEntityDescriptor = new NamedEntityDescriptor<>( taskSchedulerName, TaskSchedulerForFailureTest.class.getName()); List<NamedEntityDescriptor> list = new LinkedList<>(); list.add(namedEntityDescriptor); TaskSchedulerManager taskSchedulerManager = new TaskSchedulerManager(appContext, dagClientServer, eventHandler, mock(ContainerSignatureMatcher.class), mock(WebUIService.class), list, false) { @Override TaskSchedulerContext wrapTaskSchedulerContext(TaskSchedulerContext rawContext) { // Avoid wrapping in threads return rawContext; } }; try { taskSchedulerManager.init(new TezConfiguration()); taskSchedulerManager.start(); taskSchedulerManager.getTotalResources(0); ArgumentCaptor<Event> argumentCaptor = ArgumentCaptor.forClass(Event.class); verify(eventHandler, times(1)).handle(argumentCaptor.capture()); Event rawEvent = argumentCaptor.getValue(); assertTrue(rawEvent instanceof DAGEventTerminateDag); DAGEventTerminateDag killEvent = (DAGEventTerminateDag) rawEvent; assertTrue(killEvent.getDiagnosticInfo().contains("ReportError")); assertTrue( killEvent.getDiagnosticInfo().contains(ServicePluginErrorDefaults.SERVICE_UNAVAILABLE.name())); assertTrue(killEvent.getDiagnosticInfo().contains(expIdentifier)); reset(eventHandler); taskSchedulerManager.getAvailableResources(0); argumentCaptor = ArgumentCaptor.forClass(Event.class); verify(eventHandler, times(1)).handle(argumentCaptor.capture()); rawEvent = argumentCaptor.getValue(); assertTrue(rawEvent instanceof DAGAppMasterEventUserServiceFatalError); DAGAppMasterEventUserServiceFatalError event = (DAGAppMasterEventUserServiceFatalError) rawEvent; assertEquals(DAGAppMasterEventType.TASK_SCHEDULER_SERVICE_FATAL_ERROR, event.getType()); assertTrue(event.getDiagnosticInfo().contains("ReportedFatalError")); assertTrue(event.getDiagnosticInfo().contains(ServicePluginErrorDefaults.INCONSISTENT_STATE.name())); assertTrue(event.getDiagnosticInfo().contains(expIdentifier)); } finally { taskSchedulerManager.stop(); } }
From source file:org.apache.tez.dag.app.TestDAGAppMaster.java
License:Apache License
@SuppressWarnings("deprecation") private void testDagCredentials(boolean doMerge) throws IOException { TezConfiguration conf = new TezConfiguration(); conf.setBoolean(TezConfiguration.TEZ_AM_CREDENTIALS_MERGE, doMerge); conf.setBoolean(TezConfiguration.TEZ_LOCAL_MODE, true); conf.set(TezConfiguration.TEZ_AM_STAGING_DIR, TEST_DIR.toString()); ApplicationId appId = ApplicationId.newInstance(1, 1); ApplicationAttemptId attemptId = ApplicationAttemptId.newInstance(appId, 1); // create some sample AM credentials Credentials amCreds = new Credentials(); JobTokenSecretManager jtsm = new JobTokenSecretManager(); JobTokenIdentifier identifier = new JobTokenIdentifier(new Text(appId.toString())); Token<JobTokenIdentifier> sessionToken = new Token<JobTokenIdentifier>(identifier, jtsm); sessionToken.setService(identifier.getJobId()); TokenCache.setSessionToken(sessionToken, amCreds); TestTokenSecretManager ttsm = new TestTokenSecretManager(); Text tokenAlias1 = new Text("alias1"); Token<TestTokenIdentifier> amToken1 = new Token<TestTokenIdentifier>( new TestTokenIdentifier(new Text("amtoken1")), ttsm); amCreds.addToken(tokenAlias1, amToken1); Text tokenAlias2 = new Text("alias2"); Token<TestTokenIdentifier> amToken2 = new Token<TestTokenIdentifier>( new TestTokenIdentifier(new Text("amtoken2")), ttsm); amCreds.addToken(tokenAlias2, amToken2); FileSystem fs = FileSystem.getLocal(conf); FSDataOutputStream sessionJarsPBOutStream = TezCommonUtils.createFileForAM(fs, new Path(TEST_DIR.toString(), TezConstants.TEZ_AM_LOCAL_RESOURCES_PB_FILE_NAME)); DAGProtos.PlanLocalResourcesProto.getDefaultInstance().writeDelimitedTo(sessionJarsPBOutStream); sessionJarsPBOutStream.close();//from w w w. j av a2 s .co m DAGAppMaster am = new DAGAppMaster(attemptId, ContainerId.newInstance(attemptId, 1), "127.0.0.1", 0, 0, new SystemClock(), 1, true, TEST_DIR.toString(), new String[] { TEST_DIR.toString() }, new String[] { TEST_DIR.toString() }, new TezApiVersionInfo().getVersion(), 1, amCreds, "someuser", null); am.init(conf); am.start(); // create some sample DAG credentials Credentials dagCreds = new Credentials(); Token<TestTokenIdentifier> dagToken1 = new Token<TestTokenIdentifier>( new TestTokenIdentifier(new Text("dagtoken1")), ttsm); dagCreds.addToken(tokenAlias2, dagToken1); Text tokenAlias3 = new Text("alias3"); Token<TestTokenIdentifier> dagToken2 = new Token<TestTokenIdentifier>( new TestTokenIdentifier(new Text("dagtoken2")), ttsm); dagCreds.addToken(tokenAlias3, dagToken2); TezDAGID dagId = TezDAGID.getInstance(appId, 1); DAGPlan dagPlan = DAGPlan.newBuilder().setName("somedag") .setCredentialsBinary(DagTypeConverters.convertCredentialsToProto(dagCreds)).build(); DAGImpl dag = am.createDAG(dagPlan, dagId); Credentials fetchedDagCreds = dag.getCredentials(); am.stop(); Token<? extends TokenIdentifier> fetchedToken1 = fetchedDagCreds.getToken(tokenAlias1); if (doMerge) { assertNotNull("AM creds missing from DAG creds", fetchedToken1); compareTestTokens(amToken1, fetchedDagCreds.getToken(tokenAlias1)); } else { assertNull("AM creds leaked to DAG creds", fetchedToken1); } compareTestTokens(dagToken1, fetchedDagCreds.getToken(tokenAlias2)); compareTestTokens(dagToken2, fetchedDagCreds.getToken(tokenAlias3)); }
From source file:org.apache.tez.dag.app.TestRecoveryParser.java
License:Apache License
@Test(timeout = 5000) public void testGetLastCompletedDAG() { Map<TezDAGID, DAGSummaryData> summaryDataMap = new HashMap<TezDAGID, DAGSummaryData>(); int lastCompletedDAGId = new Random().nextInt(20) + 1; for (int i = 1; i <= lastCompletedDAGId; ++i) { ApplicationId appId = ApplicationId.newInstance(1, 1); TezDAGID dagId = TezDAGID.getInstance(appId, i); summaryDataMap.put(dagId, createDAGSummaryData(dagId, true)); }/*from w ww.j a va 2 s.c o m*/ DAGSummaryData lastCompletedDAG = parser.getLastCompletedOrInProgressDAG(summaryDataMap); assertEquals(lastCompletedDAGId, lastCompletedDAG.dagId.getId()); }
From source file:org.apache.tez.dag.app.TestRecoveryParser.java
License:Apache License
@Test(timeout = 5000) public void testGetLastInProgressDAG() { Map<TezDAGID, DAGSummaryData> summaryDataMap = new HashMap<TezDAGID, DAGSummaryData>(); int dagNum = 20; int lastInProgressDAGId = new Random().nextInt(dagNum) + 1; for (int i = 1; i <= dagNum; ++i) { ApplicationId appId = ApplicationId.newInstance(1, 1); TezDAGID dagId = TezDAGID.getInstance(appId, i); if (i == lastInProgressDAGId) { summaryDataMap.put(dagId, createDAGSummaryData(dagId, false)); } else {//from w ww .ja v a2 s. co m summaryDataMap.put(dagId, createDAGSummaryData(dagId, true)); } } DAGSummaryData lastInProgressDAG = parser.getLastCompletedOrInProgressDAG(summaryDataMap); assertEquals(lastInProgressDAGId, lastInProgressDAG.dagId.getId()); }
From source file:org.apache.tez.dag.app.TestTaskAttemptListenerImplTezDag.java
License:Apache License
@Test(timeout = 5000) public void testGetTask() throws IOException { ApplicationId appId = ApplicationId.newInstance(1000, 1); AppContext appContext = mock(AppContext.class); EventHandler eventHandler = mock(EventHandler.class); DAG dag = mock(DAG.class); AMContainerMap amContainerMap = mock(AMContainerMap.class); Map<ApplicationAccessType, String> appAcls = new HashMap<ApplicationAccessType, String>(); doReturn(eventHandler).when(appContext).getEventHandler(); doReturn(dag).when(appContext).getCurrentDAG(); doReturn(appAcls).when(appContext).getApplicationACLs(); doReturn(amContainerMap).when(appContext).getAllContainers(); TaskAttemptListenerImpTezDag taskAttemptListener = new TaskAttemptListenerImplForTest(appContext, mock(TaskHeartbeatHandler.class), mock(ContainerHeartbeatHandler.class), null); TaskSpec taskSpec = mock(TaskSpec.class); TezTaskAttemptID taskAttemptId = mock(TezTaskAttemptID.class); doReturn(taskAttemptId).when(taskSpec).getTaskAttemptID(); AMContainerTask amContainerTask = new AMContainerTask(taskSpec, null, null, false); ContainerTask containerTask = null;/* ww w. j ava 2 s . c o m*/ ContainerId containerId1 = createContainerId(appId, 1); doReturn(mock(AMContainer.class)).when(amContainerMap).get(containerId1); ContainerContext containerContext1 = new ContainerContext(containerId1.toString()); containerTask = taskAttemptListener.getTask(containerContext1); assertTrue(containerTask.shouldDie()); ContainerId containerId2 = createContainerId(appId, 2); doReturn(mock(AMContainer.class)).when(amContainerMap).get(containerId2); ContainerContext containerContext2 = new ContainerContext(containerId2.toString()); taskAttemptListener.registerRunningContainer(containerId2); containerTask = taskAttemptListener.getTask(containerContext2); assertNull(containerTask); // Valid task registered taskAttemptListener.registerTaskAttempt(amContainerTask, containerId2); containerTask = taskAttemptListener.getTask(containerContext2); assertFalse(containerTask.shouldDie()); assertEquals(taskSpec, containerTask.getTaskSpec()); // Task unregistered. Should respond to heartbeats taskAttemptListener.unregisterTaskAttempt(taskAttemptId); containerTask = taskAttemptListener.getTask(containerContext2); assertNull(containerTask); // Container unregistered. Should send a shouldDie = true taskAttemptListener.unregisterRunningContainer(containerId2); containerTask = taskAttemptListener.getTask(containerContext2); assertTrue(containerTask.shouldDie()); ContainerId containerId3 = createContainerId(appId, 3); ContainerContext containerContext3 = new ContainerContext(containerId3.toString()); taskAttemptListener.registerRunningContainer(containerId3); // Register task to container3, followed by unregistering container 3 all together TaskSpec taskSpec2 = mock(TaskSpec.class); TezTaskAttemptID taskAttemptId2 = mock(TezTaskAttemptID.class); doReturn(taskAttemptId2).when(taskSpec2).getTaskAttemptID(); AMContainerTask amContainerTask2 = new AMContainerTask(taskSpec, null, null, false); taskAttemptListener.registerTaskAttempt(amContainerTask2, containerId3); taskAttemptListener.unregisterRunningContainer(containerId3); containerTask = taskAttemptListener.getTask(containerContext3); assertTrue(containerTask.shouldDie()); }
From source file:org.apache.tez.dag.app.TestTaskAttemptListenerImplTezDag.java
License:Apache License
@Test(timeout = 5000) public void testGetTaskMultiplePulls() throws IOException { ApplicationId appId = ApplicationId.newInstance(1000, 1); AppContext appContext = mock(AppContext.class); EventHandler eventHandler = mock(EventHandler.class); DAG dag = mock(DAG.class); AMContainerMap amContainerMap = mock(AMContainerMap.class); Map<ApplicationAccessType, String> appAcls = new HashMap<ApplicationAccessType, String>(); doReturn(eventHandler).when(appContext).getEventHandler(); doReturn(dag).when(appContext).getCurrentDAG(); doReturn(appAcls).when(appContext).getApplicationACLs(); doReturn(amContainerMap).when(appContext).getAllContainers(); TaskAttemptListenerImpTezDag taskAttemptListener = new TaskAttemptListenerImplForTest(appContext, mock(TaskHeartbeatHandler.class), mock(ContainerHeartbeatHandler.class), null); TaskSpec taskSpec = mock(TaskSpec.class); TezTaskAttemptID taskAttemptId = mock(TezTaskAttemptID.class); doReturn(taskAttemptId).when(taskSpec).getTaskAttemptID(); AMContainerTask amContainerTask = new AMContainerTask(taskSpec, null, null, false); ContainerTask containerTask = null;/*from w ww . j av a 2 s . co m*/ ContainerId containerId1 = createContainerId(appId, 1); doReturn(mock(AMContainer.class)).when(amContainerMap).get(containerId1); ContainerContext containerContext1 = new ContainerContext(containerId1.toString()); taskAttemptListener.registerRunningContainer(containerId1); containerTask = taskAttemptListener.getTask(containerContext1); assertNull(containerTask); // Register task taskAttemptListener.registerTaskAttempt(amContainerTask, containerId1); containerTask = taskAttemptListener.getTask(containerContext1); assertFalse(containerTask.shouldDie()); assertEquals(taskSpec, containerTask.getTaskSpec()); // Try pulling again - simulates re-use pull containerTask = taskAttemptListener.getTask(containerContext1); assertNull(containerTask); }
From source file:org.apache.tez.dag.app.TestTaskCommunicatorManager.java
License:Apache License
@SuppressWarnings("unchecked") @Test(timeout = 5000)/* w w w. j a v a2 s . c om*/ public void testReportFailureFromTaskCommunicator() throws TezException { String dagName = DAG_NAME; EventHandler eventHandler = mock(EventHandler.class); AppContext appContext = mock(AppContext.class, RETURNS_DEEP_STUBS); doReturn("testTaskCommunicator").when(appContext).getTaskCommunicatorName(0); doReturn(eventHandler).when(appContext).getEventHandler(); DAG dag = mock(DAG.class); TezDAGID dagId = TezDAGID.getInstance(ApplicationId.newInstance(1, 0), DAG_INDEX); doReturn(dagName).when(dag).getName(); doReturn(dagId).when(dag).getID(); doReturn(dag).when(appContext).getCurrentDAG(); NamedEntityDescriptor<TaskCommunicatorDescriptor> namedEntityDescriptor = new NamedEntityDescriptor<>( "testTaskCommunicator", TaskCommForFailureTest.class.getName()); List<NamedEntityDescriptor> list = new LinkedList<>(); list.add(namedEntityDescriptor); TaskCommunicatorManager taskCommManager = new TaskCommunicatorManager(appContext, mock(TaskHeartbeatHandler.class), mock(ContainerHeartbeatHandler.class), list); try { taskCommManager.init(new Configuration()); taskCommManager.start(); taskCommManager.registerRunningContainer(mock(ContainerId.class), 0); ArgumentCaptor<Event> argumentCaptor = ArgumentCaptor.forClass(Event.class); verify(eventHandler, times(1)).handle(argumentCaptor.capture()); Event rawEvent = argumentCaptor.getValue(); assertTrue(rawEvent instanceof DAGEventTerminateDag); DAGEventTerminateDag killEvent = (DAGEventTerminateDag) rawEvent; assertTrue(killEvent.getDiagnosticInfo().contains("ReportError")); assertTrue( killEvent.getDiagnosticInfo().contains(ServicePluginErrorDefaults.SERVICE_UNAVAILABLE.name())); assertTrue(killEvent.getDiagnosticInfo().contains("[0:testTaskCommunicator]")); reset(eventHandler); taskCommManager.dagComplete(dag); argumentCaptor = ArgumentCaptor.forClass(Event.class); verify(eventHandler, times(1)).handle(argumentCaptor.capture()); rawEvent = argumentCaptor.getValue(); assertTrue(rawEvent instanceof DAGAppMasterEventUserServiceFatalError); DAGAppMasterEventUserServiceFatalError event = (DAGAppMasterEventUserServiceFatalError) rawEvent; assertEquals(DAGAppMasterEventType.TASK_COMMUNICATOR_SERVICE_FATAL_ERROR, event.getType()); assertTrue(event.getDiagnosticInfo().contains("ReportedFatalError")); assertTrue(event.getDiagnosticInfo().contains(ServicePluginErrorDefaults.INCONSISTENT_STATE.name())); assertTrue(event.getDiagnosticInfo().contains("[0:testTaskCommunicator]")); } finally { taskCommManager.stop(); } }
From source file:org.apache.tez.dag.app.TestTaskCommunicatorManager1.java
License:Apache License
@Before public void setUp() throws TezException { appId = ApplicationId.newInstance(1000, 1); appAttemptId = ApplicationAttemptId.newInstance(appId, 1); dag = mock(DAG.class); TezDAGID dagID = TezDAGID.getInstance(appId, 1); vertexID = TezVertexID.getInstance(dagID, 1); taskID = TezTaskID.getInstance(vertexID, 1); taskAttemptID = TezTaskAttemptID.getInstance(taskID, 1); credentials = new Credentials(); amContainerMap = mock(AMContainerMap.class); Map<ApplicationAccessType, String> appAcls = new HashMap<ApplicationAccessType, String>(); eventHandler = mock(EventHandler.class); MockClock clock = new MockClock(); appContext = mock(AppContext.class); doReturn(eventHandler).when(appContext).getEventHandler(); doReturn(dag).when(appContext).getCurrentDAG(); doReturn(appAcls).when(appContext).getApplicationACLs(); doReturn(amContainerMap).when(appContext).getAllContainers(); doReturn(clock).when(appContext).getClock(); doReturn(appAttemptId).when(appContext).getApplicationAttemptId(); doReturn(credentials).when(appContext).getAppCredentials(); NodeId nodeId = NodeId.newInstance("localhost", 0); AMContainer amContainer = mock(AMContainer.class); Container container = mock(Container.class); doReturn(nodeId).when(container).getNodeId(); doReturn(amContainer).when(amContainerMap).get(any(ContainerId.class)); doReturn(container).when(amContainer).getContainer(); Configuration conf = new TezConfiguration(); UserPayload defaultPayload;//from www .j av a2 s . com try { defaultPayload = TezUtils.createUserPayloadFromConf(conf); } catch (IOException e) { throw new TezUncheckedException(e); } taskAttemptListener = new TaskCommunicatorManagerInterfaceImplForTest(appContext, mock(TaskHeartbeatHandler.class), mock(ContainerHeartbeatHandler.class), Lists.newArrayList(new NamedEntityDescriptor(TezConstants.getTezYarnServicePluginName(), null) .setUserPayload(defaultPayload))); taskSpec = mock(TaskSpec.class); doReturn(taskAttemptID).when(taskSpec).getTaskAttemptID(); amContainerTask = new AMContainerTask(taskSpec, null, null, false, 0); containerTask = null; }
From source file:org.apache.tez.dag.history.ats.acls.TestATSHistoryV15.java
License:Apache License
@Test public void testGetGroupId() { ApplicationId appId = ApplicationId.newInstance(1000l, 1); TezDAGID dagid = TezDAGID.getInstance(appId, 1); for (final HistoryEventType eventType : HistoryEventType.values()) { HistoryEvent historyEvent = new HistoryEvent() { @Override// w ww.ja va 2s . co m public HistoryEventType getEventType() { return eventType; } @Override public boolean isRecoveryEvent() { return false; } @Override public boolean isHistoryEvent() { return false; } @Override public void toProtoStream(OutputStream outputStream) throws IOException { } @Override public void fromProtoStream(InputStream inputStream) throws IOException { } }; DAGHistoryEvent event = new DAGHistoryEvent(dagid, historyEvent); ATSV15HistoryLoggingService service = new ATSV15HistoryLoggingService(); AppContext appContext = mock(AppContext.class); when(appContext.getApplicationID()).thenReturn(appId); service.setAppContext(appContext); TimelineEntityGroupId grpId = service.getGroupId(event); Assert.assertNotNull(grpId); Assert.assertEquals(appId, grpId.getApplicationId()); switch (eventType) { case AM_LAUNCHED: case APP_LAUNCHED: case AM_STARTED: case CONTAINER_LAUNCHED: case CONTAINER_STOPPED: Assert.assertEquals(appId.toString(), grpId.getTimelineEntityGroupId()); break; default: Assert.assertEquals(dagid.toString(), grpId.getTimelineEntityGroupId()); } } }