|
@@ -20,15 +20,16 @@ package org.apache.hadoop.yarn.server.applicationhistoryservice.webapp;
|
|
|
|
|
|
import static org.apache.hadoop.yarn.webapp.Params.TITLE;
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
-import junit.framework.Assert;
|
|
|
|
|
|
+import org.junit.Assert;
|
|
|
import org.apache.hadoop.conf.Configuration;
|
|
|
+import org.apache.hadoop.yarn.api.ApplicationBaseProtocol;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
|
|
import org.apache.hadoop.yarn.api.records.ContainerId;
|
|
|
import org.apache.hadoop.yarn.api.records.YarnApplicationState;
|
|
|
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
|
|
-import org.apache.hadoop.yarn.server.api.ApplicationContext;
|
|
|
+import org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryClientService;
|
|
|
import org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryManager;
|
|
|
import org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryManagerImpl;
|
|
|
import org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryStore;
|
|
@@ -42,8 +43,6 @@ import org.junit.Test;
|
|
|
|
|
|
import com.google.inject.Injector;
|
|
|
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
-
|
|
|
public class TestAHSWebApp extends ApplicationHistoryStoreTestUtils {
|
|
|
|
|
|
public void setApplicationHistoryStore(ApplicationHistoryStore store) {
|
|
@@ -59,102 +58,119 @@ public class TestAHSWebApp extends ApplicationHistoryStoreTestUtils {
|
|
|
public void testAppControllerIndex() throws Exception {
|
|
|
ApplicationHistoryManager ahManager = mock(ApplicationHistoryManager.class);
|
|
|
Injector injector =
|
|
|
- WebAppTests.createMockInjector(ApplicationHistoryManager.class,
|
|
|
- ahManager);
|
|
|
+ WebAppTests.createMockInjector(ApplicationHistoryManager.class,
|
|
|
+ ahManager);
|
|
|
AHSController controller = injector.getInstance(AHSController.class);
|
|
|
controller.index();
|
|
|
- Assert.assertEquals("Application History", controller.get(TITLE, "unknown"));
|
|
|
+ Assert
|
|
|
+ .assertEquals("Application History", controller.get(TITLE, "unknown"));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testView() throws Exception {
|
|
|
Injector injector =
|
|
|
- WebAppTests.createMockInjector(ApplicationContext.class,
|
|
|
- mockApplicationHistoryManager(5, 1, 1));
|
|
|
+ WebAppTests.createMockInjector(ApplicationBaseProtocol.class,
|
|
|
+ mockApplicationHistoryClientService(5, 1, 1));
|
|
|
AHSView ahsViewInstance = injector.getInstance(AHSView.class);
|
|
|
|
|
|
ahsViewInstance.render();
|
|
|
- //WebAppTests.flushOutput(injector);
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
|
|
|
ahsViewInstance.set(YarnWebParams.APP_STATE,
|
|
|
YarnApplicationState.FAILED.toString());
|
|
|
ahsViewInstance.render();
|
|
|
- //WebAppTests.flushOutput(injector);
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
|
|
|
ahsViewInstance.set(YarnWebParams.APP_STATE, StringHelper.cjoin(
|
|
|
YarnApplicationState.FAILED.toString(), YarnApplicationState.KILLED));
|
|
|
ahsViewInstance.render();
|
|
|
- //WebAppTests.flushOutput(injector);
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testAboutPage() throws Exception {
|
|
|
+ Injector injector =
|
|
|
+ WebAppTests.createMockInjector(ApplicationBaseProtocol.class,
|
|
|
+ mockApplicationHistoryClientService(0, 0, 0));
|
|
|
+ AboutPage aboutPageInstance = injector.getInstance(AboutPage.class);
|
|
|
+
|
|
|
+ aboutPageInstance.render();
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
+
|
|
|
+ aboutPageInstance.render();
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testAppPage() throws Exception {
|
|
|
Injector injector =
|
|
|
- WebAppTests.createMockInjector(ApplicationContext.class,
|
|
|
- mockApplicationHistoryManager(1, 5, 1));
|
|
|
+ WebAppTests.createMockInjector(ApplicationBaseProtocol.class,
|
|
|
+ mockApplicationHistoryClientService(1, 5, 1));
|
|
|
AppPage appPageInstance = injector.getInstance(AppPage.class);
|
|
|
|
|
|
appPageInstance.render();
|
|
|
- //WebAppTests.flushOutput(injector);
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
|
|
|
appPageInstance.set(YarnWebParams.APPLICATION_ID, ApplicationId
|
|
|
.newInstance(0, 1).toString());
|
|
|
appPageInstance.render();
|
|
|
- // WebAppTests.flushOutput(injector);
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testAppAttemptPage() throws Exception {
|
|
|
Injector injector =
|
|
|
- WebAppTests.createMockInjector(ApplicationContext.class,
|
|
|
- mockApplicationHistoryManager(1, 1, 5));
|
|
|
+ WebAppTests.createMockInjector(ApplicationBaseProtocol.class,
|
|
|
+ mockApplicationHistoryClientService(1, 1, 5));
|
|
|
AppAttemptPage appAttemptPageInstance =
|
|
|
- injector.getInstance(AppAttemptPage.class);
|
|
|
+ injector.getInstance(AppAttemptPage.class);
|
|
|
|
|
|
appAttemptPageInstance.render();
|
|
|
- //WebAppTests.flushOutput(injector);
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
|
|
|
appAttemptPageInstance.set(YarnWebParams.APPLICATION_ATTEMPT_ID,
|
|
|
ApplicationAttemptId.newInstance(ApplicationId.newInstance(0, 1), 1)
|
|
|
.toString());
|
|
|
appAttemptPageInstance.render();
|
|
|
- //WebAppTests.flushOutput(injector);
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testContainerPage() throws Exception {
|
|
|
Injector injector =
|
|
|
- WebAppTests.createMockInjector(ApplicationContext.class,
|
|
|
- mockApplicationHistoryManager(1, 1, 1));
|
|
|
+ WebAppTests.createMockInjector(ApplicationBaseProtocol.class,
|
|
|
+ mockApplicationHistoryClientService(1, 1, 1));
|
|
|
ContainerPage containerPageInstance =
|
|
|
- injector.getInstance(ContainerPage.class);
|
|
|
+ injector.getInstance(ContainerPage.class);
|
|
|
|
|
|
containerPageInstance.render();
|
|
|
- //WebAppTests.flushOutput(injector);
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
|
|
|
containerPageInstance.set(
|
|
|
YarnWebParams.CONTAINER_ID,
|
|
|
ContainerId
|
|
|
- .newInstance(
|
|
|
+ .newContainerId(
|
|
|
ApplicationAttemptId.newInstance(ApplicationId.newInstance(0, 1), 1),
|
|
|
1).toString());
|
|
|
containerPageInstance.render();
|
|
|
- //WebAppTests.flushOutput(injector);
|
|
|
+ WebAppTests.flushOutput(injector);
|
|
|
}
|
|
|
|
|
|
- ApplicationHistoryManager mockApplicationHistoryManager(int numApps,
|
|
|
- int numAppAttempts, int numContainers) throws Exception {
|
|
|
+ ApplicationHistoryClientService mockApplicationHistoryClientService(int numApps,
|
|
|
+ int numAppAttempts, int numContainers) throws Exception {
|
|
|
ApplicationHistoryManager ahManager =
|
|
|
- new MockApplicationHistoryManagerImpl(store);
|
|
|
+ new MockApplicationHistoryManagerImpl(store);
|
|
|
+ ApplicationHistoryClientService historyClientService =
|
|
|
+ new ApplicationHistoryClientService(ahManager);
|
|
|
for (int i = 1; i <= numApps; ++i) {
|
|
|
ApplicationId appId = ApplicationId.newInstance(0, i);
|
|
|
writeApplicationStartData(appId);
|
|
|
for (int j = 1; j <= numAppAttempts; ++j) {
|
|
|
ApplicationAttemptId appAttemptId =
|
|
|
- ApplicationAttemptId.newInstance(appId, j);
|
|
|
+ ApplicationAttemptId.newInstance(appId, j);
|
|
|
writeApplicationAttemptStartData(appAttemptId);
|
|
|
for (int k = 1; k <= numContainers; ++k) {
|
|
|
- ContainerId containerId = ContainerId.newInstance(appAttemptId, k);
|
|
|
+ ContainerId containerId = ContainerId.newContainerId(appAttemptId, k);
|
|
|
writeContainerStartData(containerId);
|
|
|
writeContainerFinishData(containerId);
|
|
|
}
|
|
@@ -162,7 +178,7 @@ public class TestAHSWebApp extends ApplicationHistoryStoreTestUtils {
|
|
|
}
|
|
|
writeApplicationFinishData(appId);
|
|
|
}
|
|
|
- return ahManager;
|
|
|
+ return historyClientService;
|
|
|
}
|
|
|
|
|
|
class MockApplicationHistoryManagerImpl extends ApplicationHistoryManagerImpl {
|
|
@@ -175,7 +191,7 @@ public class TestAHSWebApp extends ApplicationHistoryStoreTestUtils {
|
|
|
|
|
|
@Override
|
|
|
protected ApplicationHistoryStore createApplicationHistoryStore(
|
|
|
- Configuration conf) {
|
|
|
+ Configuration conf) {
|
|
|
return store;
|
|
|
}
|
|
|
};
|