YARN-236. RM should point tracking URL to RM web page when app fails to start (Jason Lowe via jeagles)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1448406 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jonathan Turner Eagles 2013-02-20 20:57:22 +00:00
parent de73a65f32
commit 320f7bdcb8
2 changed files with 9 additions and 18 deletions

View File

@ -316,6 +316,9 @@ Release 0.23.7 - UNRELEASED
YARN-249. Capacity Scheduler web page should show list of active users per YARN-249. Capacity Scheduler web page should show list of active users per
queue like it used to (in 1.x) (Ravi Prakash via tgraves) queue like it used to (in 1.x) (Ravi Prakash via tgraves)
YARN-236. RM should point tracking URL to RM web page when app fails to
start (Jason Lowe via jeagles)
OPTIMIZATIONS OPTIMIZATIONS
YARN-357. App submission should not be synchronized (daryn) YARN-357. App submission should not be synchronized (daryn)

View File

@ -66,6 +66,7 @@ public class WebAppProxyServlet extends HttpServlet {
public static final String PROXY_USER_COOKIE_NAME = "proxy-user"; public static final String PROXY_USER_COOKIE_NAME = "proxy-user";
private final List<TrackingUriPlugin> trackingUriPlugins; private final List<TrackingUriPlugin> trackingUriPlugins;
private final String rmAppPageUrlBase;
private static class _ implements Hamlet._ { private static class _ implements Hamlet._ {
//Empty //Empty
@ -91,6 +92,8 @@ public WebAppProxyServlet()
this.trackingUriPlugins = this.trackingUriPlugins =
conf.getInstances(YarnConfiguration.YARN_TRACKING_URL_GENERATOR, conf.getInstances(YarnConfiguration.YARN_TRACKING_URL_GENERATOR,
TrackingUriPlugin.class); TrackingUriPlugin.class);
this.rmAppPageUrlBase = StringHelper.pjoin(
YarnConfiguration.getRMWebAppURL(conf), "cluster", "app");
} }
/** /**
@ -291,25 +294,10 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
if (original != null) { if (original != null) {
trackingUri = ProxyUriUtils.getUriFromAMUrl(original); trackingUri = ProxyUriUtils.getUriFromAMUrl(original);
} }
// fallback to ResourceManager's app page if no tracking URI provided
if(original == null || original.equals("N/A")) { if(original == null || original.equals("N/A")) {
String message; resp.sendRedirect(resp.encodeRedirectURL(
switch(applicationReport.getFinalApplicationStatus()) { StringHelper.pjoin(rmAppPageUrlBase, id.toString())));
case FAILED:
case KILLED:
case SUCCEEDED:
message =
"The requested application exited before setting a tracking URL.";
break;
case UNDEFINED:
message = "The requested application does not appear to be running "
+"yet, and has not set a tracking URL.";
break;
default:
//This should never happen, but just to be safe
message = "The requested application has not set a tracking URL.";
break;
}
notFound(resp, message);
return; return;
} }