Revert "YARN-2900. Application (Attempt and Container) Not Found in AHS results"
This reverts commit 06f8e9caba
.
This commit is contained in:
parent
06f8e9caba
commit
da05361c3b
|
@ -606,9 +606,6 @@ Release 2.7.1 - UNRELEASED
|
||||||
YARN-3686. CapacityScheduler should trim default_node_label_expression.
|
YARN-3686. CapacityScheduler should trim default_node_label_expression.
|
||||||
(Sunil G via wangda)
|
(Sunil G via wangda)
|
||||||
|
|
||||||
YARN-2900. Application (Attempt and Container) Not Found in AHS results
|
|
||||||
in InternalServer Error (500). (Zhijie Shen and Mit Desai via xgong)
|
|
||||||
|
|
||||||
Release 2.7.0 - 2015-04-20
|
Release 2.7.0 - 2015-04-20
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -47,6 +47,7 @@ import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.hadoop.security.UserGroupInformation;
|
import org.apache.hadoop.security.UserGroupInformation;
|
||||||
import org.apache.hadoop.util.StringUtils;
|
import org.apache.hadoop.util.StringUtils;
|
||||||
|
import org.apache.hadoop.util.VersionInfo;
|
||||||
import org.apache.hadoop.yarn.api.records.timeline.TimelineDomain;
|
import org.apache.hadoop.yarn.api.records.timeline.TimelineDomain;
|
||||||
import org.apache.hadoop.yarn.api.records.timeline.TimelineDomains;
|
import org.apache.hadoop.yarn.api.records.timeline.TimelineDomains;
|
||||||
import org.apache.hadoop.yarn.api.records.timeline.TimelineEntities;
|
import org.apache.hadoop.yarn.api.records.timeline.TimelineEntities;
|
||||||
|
@ -60,6 +61,7 @@ import org.apache.hadoop.yarn.server.timeline.NameValuePair;
|
||||||
import org.apache.hadoop.yarn.server.timeline.TimelineDataManager;
|
import org.apache.hadoop.yarn.server.timeline.TimelineDataManager;
|
||||||
import org.apache.hadoop.yarn.server.timeline.TimelineReader.Field;
|
import org.apache.hadoop.yarn.server.timeline.TimelineReader.Field;
|
||||||
import org.apache.hadoop.yarn.api.records.timeline.TimelineAbout;
|
import org.apache.hadoop.yarn.api.records.timeline.TimelineAbout;
|
||||||
|
import org.apache.hadoop.yarn.util.YarnVersionInfo;
|
||||||
import org.apache.hadoop.yarn.util.timeline.TimelineUtils;
|
import org.apache.hadoop.yarn.util.timeline.TimelineUtils;
|
||||||
import org.apache.hadoop.yarn.webapp.BadRequestException;
|
import org.apache.hadoop.yarn.webapp.BadRequestException;
|
||||||
import org.apache.hadoop.yarn.webapp.ForbiddenException;
|
import org.apache.hadoop.yarn.webapp.ForbiddenException;
|
||||||
|
|
|
@ -41,9 +41,6 @@ import org.apache.hadoop.yarn.api.records.ApplicationReport;
|
||||||
import org.apache.hadoop.yarn.api.records.ContainerId;
|
import org.apache.hadoop.yarn.api.records.ContainerId;
|
||||||
import org.apache.hadoop.yarn.api.records.ContainerReport;
|
import org.apache.hadoop.yarn.api.records.ContainerReport;
|
||||||
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
||||||
import org.apache.hadoop.yarn.exceptions.ApplicationAttemptNotFoundException;
|
|
||||||
import org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException;
|
|
||||||
import org.apache.hadoop.yarn.exceptions.ContainerNotFoundException;
|
|
||||||
import org.apache.hadoop.yarn.exceptions.YarnException;
|
import org.apache.hadoop.yarn.exceptions.YarnException;
|
||||||
import org.apache.hadoop.yarn.server.security.ApplicationACLsManager;
|
import org.apache.hadoop.yarn.server.security.ApplicationACLsManager;
|
||||||
import org.apache.hadoop.yarn.server.timeline.TimelineDataManager;
|
import org.apache.hadoop.yarn.server.timeline.TimelineDataManager;
|
||||||
|
@ -57,13 +54,12 @@ public class TestApplicationHistoryClientService {
|
||||||
|
|
||||||
private static ApplicationHistoryClientService clientService;
|
private static ApplicationHistoryClientService clientService;
|
||||||
private static TimelineDataManager dataManager;
|
private static TimelineDataManager dataManager;
|
||||||
private final static int MAX_APPS = 2;
|
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void setup() throws Exception {
|
public static void setup() throws Exception {
|
||||||
Configuration conf = new YarnConfiguration();
|
Configuration conf = new YarnConfiguration();
|
||||||
TimelineStore store =
|
TimelineStore store =
|
||||||
TestApplicationHistoryManagerOnTimelineStore.createStore(MAX_APPS);
|
TestApplicationHistoryManagerOnTimelineStore.createStore(2);
|
||||||
TimelineACLsManager aclsManager = new TimelineACLsManager(conf);
|
TimelineACLsManager aclsManager = new TimelineACLsManager(conf);
|
||||||
dataManager =
|
dataManager =
|
||||||
new TimelineDataManager(store, aclsManager);
|
new TimelineDataManager(store, aclsManager);
|
||||||
|
@ -75,70 +71,6 @@ public class TestApplicationHistoryClientService {
|
||||||
clientService = new ApplicationHistoryClientService(historyManager);
|
clientService = new ApplicationHistoryClientService(historyManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testApplicationNotFound() throws IOException, YarnException {
|
|
||||||
ApplicationId appId = null;
|
|
||||||
appId = ApplicationId.newInstance(0, MAX_APPS + 1);
|
|
||||||
GetApplicationReportRequest request =
|
|
||||||
GetApplicationReportRequest.newInstance(appId);
|
|
||||||
try {
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
GetApplicationReportResponse response =
|
|
||||||
clientService.getApplicationReport(request);
|
|
||||||
Assert.fail("Exception should have been thrown before we reach here.");
|
|
||||||
} catch (ApplicationNotFoundException e) {
|
|
||||||
//This exception is expected.
|
|
||||||
Assert.assertTrue(e.getMessage().contains(
|
|
||||||
"doesn't exist in the timeline store"));
|
|
||||||
} catch (Exception e) {
|
|
||||||
Assert.fail("Undesired exception caught");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testApplicationAttemptNotFound() throws IOException, YarnException {
|
|
||||||
ApplicationId appId = ApplicationId.newInstance(0, 1);
|
|
||||||
ApplicationAttemptId appAttemptId =
|
|
||||||
ApplicationAttemptId.newInstance(appId, MAX_APPS + 1);
|
|
||||||
GetApplicationAttemptReportRequest request =
|
|
||||||
GetApplicationAttemptReportRequest.newInstance(appAttemptId);
|
|
||||||
try {
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
GetApplicationAttemptReportResponse response =
|
|
||||||
clientService.getApplicationAttemptReport(request);
|
|
||||||
Assert.fail("Exception should have been thrown before we reach here.");
|
|
||||||
} catch (ApplicationAttemptNotFoundException e) {
|
|
||||||
//This Exception is expected
|
|
||||||
System.out.println(e.getMessage());
|
|
||||||
Assert.assertTrue(e.getMessage().contains(
|
|
||||||
"doesn't exist in the timeline store"));
|
|
||||||
} catch (Exception e) {
|
|
||||||
Assert.fail("Undesired exception caught");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testContainerNotFound() throws IOException, YarnException {
|
|
||||||
ApplicationId appId = ApplicationId.newInstance(0, 1);
|
|
||||||
ApplicationAttemptId appAttemptId =
|
|
||||||
ApplicationAttemptId.newInstance(appId, 1);
|
|
||||||
ContainerId containerId = ContainerId.newContainerId(appAttemptId,
|
|
||||||
MAX_APPS + 1);
|
|
||||||
GetContainerReportRequest request =
|
|
||||||
GetContainerReportRequest.newInstance(containerId);
|
|
||||||
try {
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
GetContainerReportResponse response =
|
|
||||||
clientService.getContainerReport(request);
|
|
||||||
} catch (ContainerNotFoundException e) {
|
|
||||||
//This exception is expected
|
|
||||||
Assert.assertTrue(e.getMessage().contains(
|
|
||||||
"doesn't exist in the timeline store"));
|
|
||||||
} catch (Exception e) {
|
|
||||||
Assert.fail("Undesired exception caught");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testApplicationReport() throws IOException, YarnException {
|
public void testApplicationReport() throws IOException, YarnException {
|
||||||
ApplicationId appId = null;
|
ApplicationId appId = null;
|
||||||
|
|
|
@ -47,9 +47,6 @@ import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportRequest;
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsRequest;
|
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsRequest;
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.GetContainerReportRequest;
|
import org.apache.hadoop.yarn.api.protocolrecords.GetContainerReportRequest;
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.GetContainersRequest;
|
import org.apache.hadoop.yarn.api.protocolrecords.GetContainersRequest;
|
||||||
import org.apache.hadoop.yarn.exceptions.ApplicationAttemptNotFoundException;
|
|
||||||
import org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException;
|
|
||||||
import org.apache.hadoop.yarn.exceptions.ContainerNotFoundException;
|
|
||||||
import org.apache.hadoop.yarn.server.webapp.dao.AppAttemptInfo;
|
import org.apache.hadoop.yarn.server.webapp.dao.AppAttemptInfo;
|
||||||
import org.apache.hadoop.yarn.server.webapp.dao.AppAttemptsInfo;
|
import org.apache.hadoop.yarn.server.webapp.dao.AppAttemptsInfo;
|
||||||
import org.apache.hadoop.yarn.server.webapp.dao.AppInfo;
|
import org.apache.hadoop.yarn.server.webapp.dao.AppInfo;
|
||||||
|
@ -480,21 +477,17 @@ public class WebServices {
|
||||||
|
|
||||||
private static void rewrapAndThrowException(Exception e) {
|
private static void rewrapAndThrowException(Exception e) {
|
||||||
if (e instanceof UndeclaredThrowableException) {
|
if (e instanceof UndeclaredThrowableException) {
|
||||||
rewrapAndThrowThrowable(e.getCause());
|
if (e.getCause() instanceof AuthorizationException) {
|
||||||
|
throw new ForbiddenException(e.getCause());
|
||||||
|
} else {
|
||||||
|
throw new WebApplicationException(e.getCause());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
rewrapAndThrowThrowable(e);
|
if (e instanceof AuthorizationException) {
|
||||||
}
|
throw new ForbiddenException(e);
|
||||||
}
|
} else {
|
||||||
|
throw new WebApplicationException(e);
|
||||||
private static void rewrapAndThrowThrowable(Throwable t) {
|
}
|
||||||
if (t instanceof AuthorizationException) {
|
|
||||||
throw new ForbiddenException(t);
|
|
||||||
} if (t instanceof ApplicationNotFoundException ||
|
|
||||||
t instanceof ApplicationAttemptNotFoundException ||
|
|
||||||
t instanceof ContainerNotFoundException) {
|
|
||||||
throw new NotFoundException(t);
|
|
||||||
} else {
|
|
||||||
throw new WebApplicationException(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue