diff --git a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java index 02c6d2f..5728a8d 100644 --- a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java +++ b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java @@ -321,7 +321,7 @@ public class RMAppManager implements EventHandler, // Create RMApp RMAppImpl application = new RMAppImpl(applicationId, rmContext, this.conf, - submissionContext.getApplicationName(), user, + submissionContext.getApplicationName(),submissionContext.getApplicationDescription(), user, submissionContext.getQueue(), submissionContext, this.scheduler, this.masterService, submitTime, submissionContext.getApplicationType(), diff --git a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ahs/RMApplicationHistoryWriter.java b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ahs/RMApplicationHistoryWriter.java index bd328ab..27e537c 100644 --- a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ahs/RMApplicationHistoryWriter.java +++ b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ahs/RMApplicationHistoryWriter.java @@ -226,7 +226,7 @@ public class RMApplicationHistoryWriter extends CompositeService { if (historyServiceEnabled) { dispatcher.getEventHandler().handle( new WritingApplicationStartEvent(app.getApplicationId(), - ApplicationStartData.newInstance(app.getApplicationId(), app.getName(), + ApplicationStartData.newInstance(app.getApplicationId(), app.getName(),app.getDescription(), app.getApplicationType(), app.getQueue(), app.getUser(), app.getSubmitTime(), app.getStartTime()))); } diff --git a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMApp.java b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMApp.java index 624aa18..998d691 100644 --- a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMApp.java +++ b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMApp.java @@ -102,7 +102,12 @@ public interface RMApp extends EventHandler { * @return the name of the application. */ String getName(); - + /** + * The description of the application as set in {@link + * ApplicationSubmissionContext#setApplicationName(String)}. + * @return the description of the application. + */ + String getDescription(); /** * {@link RMApp} can have multiple application attempts {@link RMAppAttempt}. * This method returns the current {@link RMAppAttempt}. diff --git a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java index aeb2cda..c44801c 100644 --- a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java +++ b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java @@ -109,6 +109,7 @@ public class RMAppImpl implements RMApp, Recoverable { private final Configuration conf; private final String user; private final String name; + private final String description; private final ApplicationSubmissionContext submissionContext; private final Dispatcher dispatcher; private final YarnScheduler scheduler; @@ -355,7 +356,7 @@ public class RMAppImpl implements RMApp, Recoverable { private static final int DUMMY_APPLICATION_ATTEMPT_NUMBER = -1; public RMAppImpl(ApplicationId applicationId, RMContext rmContext, - Configuration config, String name, String user, String queue, + Configuration config, String name,String description, String user, String queue, ApplicationSubmissionContext submissionContext, YarnScheduler scheduler, ApplicationMasterService masterService, long submitTime, String applicationType, Set applicationTags, @@ -365,6 +366,7 @@ public class RMAppImpl implements RMApp, Recoverable { this.applicationId = applicationId; this.name = name; + this.description = description; this.rmContext = rmContext; this.dispatcher = rmContext.getDispatcher(); this.handler = dispatcher.getEventHandler(); @@ -611,7 +613,7 @@ public class RMAppImpl implements RMApp, Recoverable { return BuilderUtils.newApplicationReport(this.applicationId, currentApplicationAttemptId, this.user, this.queue, - this.name, host, rpcPort, clientToAMToken, + this.name,this.description, host, rpcPort, clientToAMToken, createApplicationState(), diags, trackingUrl, this.startTime, this.finishTime, finishState, appUsageReport, origTrackingUrl, progress, this.applicationType, @@ -1346,4 +1348,11 @@ public class RMAppImpl implements RMApp, Recoverable { } return credentials; } + + +@Override +public String getDescription() { + // TODO Auto-generated method stub + return this.description; +} } diff --git a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java index c427ccf..52e50f2 100644 --- a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java +++ b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java @@ -129,7 +129,9 @@ public class AppBlock extends HtmlBlock { ._("Tracking URL:", !app.isTrackingUrlReady() ? "#" : app.getTrackingUrlPretty(), app.getTrackingUI()) - ._("Diagnostics:", app.getNote()); + ._("Diagnostics:", app.getNote()) + ._("Description:", + app.getDescription() == null ? "" : app.getDescription());; DIV pdiv = html. _(InfoBlock.class). diff --git a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java index cf0a83a..766d448 100644 --- a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java +++ b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java @@ -1135,7 +1135,7 @@ public class RMWebServices { } ApplicationSubmissionContext appContext = ApplicationSubmissionContext.newInstance(appid, - newApp.getApplicationName(), newApp.getQueue(), + newApp.getApplicationName(),newApp.getApplicationDescription(), newApp.getQueue(), Priority.newInstance(newApp.getPriority()), createContainerLaunchContext(newApp), newApp.getUnmanagedAM(), newApp.getCancelTokensWhenComplete(), newApp.getMaxAppAttempts(), diff --git a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java index 2b0dedc..10938b4 100644 --- a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java +++ b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java @@ -59,6 +59,7 @@ public class AppInfo { protected String id; protected String user; protected String name; + protected String description; protected String queue; protected YarnApplicationState state; protected FinalApplicationStatus finalStatus; @@ -117,6 +118,7 @@ public class AppInfo { this.id = app.getApplicationId().toString(); this.user = app.getUser().toString(); this.name = app.getName().toString(); + this.description = app.getDescription(); this.queue = app.getQueue().toString(); this.progress = app.getProgress() * 100; this.diagnostics = app.getDiagnostics().toString(); @@ -299,4 +301,9 @@ public class AppInfo { public long getVcoreSeconds() { return vcoreSeconds; } + + public String getDescription() { + return description; + } + } diff --git a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ApplicationSubmissionContextInfo.java b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ApplicationSubmissionContextInfo.java index 5278b3e..ffe43cf 100644 --- a/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ApplicationSubmissionContextInfo.java +++ b/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ApplicationSubmissionContextInfo.java @@ -44,6 +44,8 @@ public class ApplicationSubmissionContextInfo { @XmlElement(name = "application-name") String applicationName; + @XmlElement(name = "application-description") + String applicationDescription; String queue; int priority; @@ -81,6 +83,7 @@ public class ApplicationSubmissionContextInfo { public ApplicationSubmissionContextInfo() { applicationId = ""; applicationName = ""; + applicationDescription = ""; containerInfo = new ContainerLaunchContextInfo(); resource = new ResourceInfo(); priority = Priority.UNDEFINED.getPriority(); @@ -206,4 +209,13 @@ public class ApplicationSubmissionContextInfo { public void setAMContainerNodeLabelExpression(String nodeLabelExpression) { this.amContainerNodeLabelExpression = nodeLabelExpression; } + + public String getApplicationDescription() { + return applicationDescription; + } + + public void setApplicationDescription(String applicationDescription) { + this.applicationDescription = applicationDescription; + } + }