You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by ac...@apache.org on 2011/04/12 23:15:42 UTC
svn commit: r1091574 [1/2] - in /hadoop/mapreduce/branches/MR-279: ./
mr-client/hadoop-mapreduce-client-common/src/main/java/org/apache/hadoop/mapreduce/
mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/
mr-client/hadoop...
Author: acmurthy
Date: Tue Apr 12 21:15:37 2011
New Revision: 1091574
URL: http://svn.apache.org/viewvc?rev=1091574&view=rev
Log:
Implement 'bin/mapred job -list' and 'bin/mapred job -list-active-trackers'.
Added:
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetAllApplicationsRequest.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetAllApplicationsResponse.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetClusterNodesRequest.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetClusterNodesResponse.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetAllApplicationsRequestPBImpl.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetAllApplicationsResponsePBImpl.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesRequestPBImpl.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesResponsePBImpl.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Application.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/NodeManagerInfo.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationPBImpl.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/NodeManagerInfoPBImpl.java
Removed:
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/Application.java
Modified:
hadoop/mapreduce/branches/MR-279/CHANGES.txt
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-common/src/main/java/org/apache/hadoop/mapreduce/TypeConverter.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/YARNRunner.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientRedirect.java
hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/ClientRMProtocol.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/client_RM_protocol.proto
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/yarn_protos.proto
hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/yarn_service_protos.proto
hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/client/ClientRMProtocolPBClientImpl.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/service/ClientRMProtocolPBServiceImpl.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/test/java/org/apache/hadoop/yarn/MockApps.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/ApplicationsManager.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/ApplicationsManagerImpl.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppsBlock.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppsList.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RmController.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebApp.java
hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerTokenSecretManager.java
Modified: hadoop/mapreduce/branches/MR-279/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/CHANGES.txt?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/CHANGES.txt (original)
+++ hadoop/mapreduce/branches/MR-279/CHANGES.txt Tue Apr 12 21:15:37 2011
@@ -2,6 +2,11 @@ Hadoop MapReduce Change Log
Trunk (unreleased changes)
+ MAPREDUCE-279
+
+ Implement 'bin/mapred job -list' and 'bin/mapred job
+ -list-active-trackers'. (acmurthy)
+
INCOMPATIBLE CHANGES
MAPREDUCE-1866. Removes deprecated class
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-common/src/main/java/org/apache/hadoop/mapreduce/TypeConverter.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-common/src/main/java/org/apache/hadoop/mapreduce/TypeConverter.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-common/src/main/java/org/apache/hadoop/mapreduce/TypeConverter.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-common/src/main/java/org/apache/hadoop/mapreduce/TypeConverter.java Tue Apr 12 21:15:37 2011
@@ -18,6 +18,8 @@
package org.apache.hadoop.mapreduce;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -26,6 +28,7 @@ import org.apache.hadoop.mapred.JobPrior
import org.apache.hadoop.mapred.TIPStatus;
import org.apache.hadoop.mapred.TaskCompletionEvent;
import org.apache.hadoop.mapreduce.TaskReport;
+import org.apache.hadoop.mapreduce.JobStatus.State;
import org.apache.hadoop.mapreduce.v2.api.records.Counter;
import org.apache.hadoop.mapreduce.v2.api.records.CounterGroup;
import org.apache.hadoop.mapreduce.v2.api.records.Counters;
@@ -40,7 +43,10 @@ import org.apache.hadoop.mapreduce.v2.ap
import org.apache.hadoop.mapreduce.v2.api.records.TaskState;
import org.apache.hadoop.mapreduce.v2.api.records.TaskType;
import org.apache.hadoop.yarn.YarnException;
+import org.apache.hadoop.yarn.api.records.Application;
import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.api.records.ApplicationState;
+import org.apache.hadoop.yarn.api.records.NodeManagerInfo;
import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
public class TypeConverter {
@@ -331,5 +337,70 @@ public class TypeConverter {
}
return reports;
}
+
+ public static JobStatus.State fromYarn(ApplicationState state) {
+ switch (state) {
+ case ALLOCATED:
+ case LAUNCHED:
+ case PENDING:
+ return State.PREP;
+ case PAUSED:
+ case RUNNING:
+ return State.RUNNING;
+ case COMPLETED:
+ return State.SUCCEEDED;
+ case FAILED:
+ return State.FAILED;
+ case KILLED:
+ return State.KILLED;
+ }
+ throw new YarnException("Unrecognized application state: " + state);
+ }
+
+ public static TaskTrackerInfo fromYarn(NodeManagerInfo node) {
+ TaskTrackerInfo taskTracker = new TaskTrackerInfo(node.getNodeName());
+ return taskTracker;
+ }
+
+ public static TaskTrackerInfo[] fromYarn(List<NodeManagerInfo> nodes) {
+ List<TaskTrackerInfo> taskTrackers = new ArrayList<TaskTrackerInfo>();
+ for (NodeManagerInfo node : nodes) {
+ taskTrackers.add(fromYarn(node));
+ }
+ return taskTrackers.toArray(new TaskTrackerInfo[nodes.size()]);
+ }
+
+ public static JobStatus fromYarn(Application application) {
+ String trackingUrl = "";
+ try {
+ if (application.getMasterHost() != null) {
+ URL url =
+ new URL("http", application.getMasterHost(),
+ application.getMasterPort(), "");
+ trackingUrl = url.toString();
+ }
+ } catch (MalformedURLException ignored) {
+ }
+
+ JobStatus jobStatus =
+ new JobStatus(
+ TypeConverter.fromYarn(application.getApplicationId()),
+ 0.0f, 0.0f, 0.0f, 0.0f,
+ TypeConverter.fromYarn(application.getState()),
+ org.apache.hadoop.mapreduce.JobPriority.NORMAL,
+ application.getUser(), application.getName(), "",
+ trackingUrl
+ );
+ return jobStatus;
+ }
+
+ public static JobStatus[] fromYarn(List<Application> applications) {
+ List<JobStatus> jobStatuses = new ArrayList<JobStatus>();
+ for (Application application : applications) {
+ jobStatuses.add(TypeConverter.fromYarn(application));
+ }
+ return jobStatuses.toArray(new JobStatus[jobStatuses.size()]);
+ }
+
}
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java Tue Apr 12 21:15:37 2011
@@ -211,11 +211,17 @@ public class Cluster {
* @return array of {@link Job}
* @throws IOException
* @throws InterruptedException
+ * @deprecated Use {@link #getAllJobStatuses()} instead
*/
+ @Deprecated
public Job[] getAllJobs() throws IOException, InterruptedException {
return getJobs(client.getAllJobs());
}
+ public JobStatus[] getAllJobStatuses() throws IOException, InterruptedException {
+ return client.getAllJobs();
+ }
+
/**
* Grab the jobtracker system directory path where
* job-specific files will be placed.
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/tools/CLI.java Tue Apr 12 21:15:37 2011
@@ -444,13 +444,13 @@ public class CLI extends Configured impl
*/
private void listJobs(Cluster cluster)
throws IOException, InterruptedException {
- List<Job> runningJobs = new ArrayList<Job>();
- for (Job job : cluster.getAllJobs()) {
- if (!job.isComplete()) {
+ List<JobStatus> runningJobs = new ArrayList<JobStatus>();
+ for (JobStatus job : cluster.getAllJobStatuses()) {
+ if (!job.isJobComplete()) {
runningJobs.add(job);
}
}
- displayJobList(runningJobs.toArray(new Job[0]));
+ displayJobListFromStatus(runningJobs.toArray(new JobStatus[0]));
}
/**
@@ -459,7 +459,7 @@ public class CLI extends Configured impl
*/
private void listAllJobs(Cluster cluster)
throws IOException, InterruptedException {
- displayJobList(cluster.getAllJobs());
+ displayJobListFromStatus(cluster.getAllJobStatuses());
}
/**
@@ -523,18 +523,18 @@ public class CLI extends Configured impl
}
}
- protected void displayJobList(Job[] jobs)
- throws IOException, InterruptedException {
+ protected void displayJobListFromStatus(JobStatus[] jobs)
+ throws IOException, InterruptedException {
System.out.println("Total jobs:" + jobs.length);
System.out.println("JobId\tState\tStartTime\t" +
- "UserName\tPriority\tSchedulingInfo");
- for (Job job : jobs) {
+ "UserName\tPriority\tSchedulingInfo");
+ for (JobStatus job : jobs) {
System.out.printf("%s\t%s\t%d\t%s\t%s\t%s\n", job.getJobID().toString(),
- job.getJobState(), job.getStartTime(),
- job.getUser(), job.getPriority().name(), job.getSchedulingInfo());
+ job.getState(), job.getStartTime(),
+ job.getUsername(), job.getPriority().name(), job.getSchedulingInfo());
}
- }
-
+}
+
public static void main(String[] argv) throws Exception {
int res = ToolRunner.run(new CLI(), argv);
System.exit(res);
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java Tue Apr 12 21:15:37 2011
@@ -20,6 +20,7 @@ package org.apache.hadoop.mapred;
import java.io.IOException;
import java.net.InetSocketAddress;
+import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -42,16 +43,21 @@ import org.apache.hadoop.net.NetUtils;
import org.apache.hadoop.security.SecurityInfo;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.yarn.api.ClientRMProtocol;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationIdRequest;
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ApplicationMaster;
import org.apache.hadoop.yarn.api.records.ApplicationState;
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
+import org.apache.hadoop.yarn.api.records.NodeManagerInfo;
import org.apache.hadoop.yarn.api.records.YarnClusterMetrics;
import org.apache.hadoop.yarn.conf.YARNApplicationConstants;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
@@ -97,12 +103,20 @@ public class ResourceMgrDelegate {
public TaskTrackerInfo[] getActiveTrackers() throws IOException,
InterruptedException {
- return null;
+ GetClusterNodesRequest request =
+ recordFactory.newRecordInstance(GetClusterNodesRequest.class);
+ GetClusterNodesResponse response =
+ applicationsManager.getClusterNodes(request);
+ return TypeConverter.fromYarn(response.getNodeManagerList());
}
public JobStatus[] getAllJobs() throws IOException, InterruptedException {
- return null;
+ GetAllApplicationsRequest request =
+ recordFactory.newRecordInstance(GetAllApplicationsRequest.class);
+ GetAllApplicationsResponse response =
+ applicationsManager.getAllApplications(request);
+ return TypeConverter.fromYarn(response.getApplicationList());
}
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/YARNRunner.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/YARNRunner.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/YARNRunner.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/YARNRunner.java Tue Apr 12 21:15:37 2011
@@ -121,7 +121,7 @@ public class YARNRunner implements Clien
@Override
public TaskTrackerInfo[] getActiveTrackers() throws IOException,
InterruptedException {
- throw new IOException("Not implemented");
+ return resMgrDelegate.getActiveTrackers();
}
@Override
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientRedirect.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientRedirect.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientRedirect.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientRedirect.java Tue Apr 12 21:15:37 2011
@@ -63,10 +63,14 @@ import org.apache.hadoop.yarn.YarnExcept
import org.apache.hadoop.yarn.api.ClientRMProtocol;
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationRequest;
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationIdRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationIdResponse;
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
@@ -75,7 +79,7 @@ import org.apache.hadoop.yarn.api.record
import org.apache.hadoop.yarn.api.records.ApplicationMaster;
import org.apache.hadoop.yarn.api.records.ApplicationState;
import org.apache.hadoop.yarn.api.records.ApplicationStatus;
-import org.apache.hadoop.yarn.conf.YarnConfiguration;
+import org.apache.hadoop.yarn.conf.YarnConfiguration;;
import org.apache.hadoop.yarn.exceptions.YarnRemoteException;
import org.apache.hadoop.yarn.factories.RecordFactory;
import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
@@ -213,6 +217,20 @@ public class TestClientRedirect {
public GetClusterMetricsResponse getClusterMetrics(GetClusterMetricsRequest request) throws YarnRemoteException {
return null;
}
+
+ @Override
+ public GetAllApplicationsResponse getAllApplications(
+ GetAllApplicationsRequest request) throws YarnRemoteException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public GetClusterNodesResponse getClusterNodes(
+ GetClusterNodesRequest request) throws YarnRemoteException {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
class HistoryService extends AMService {
Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java (original)
+++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java Tue Apr 12 21:15:37 2011
@@ -92,7 +92,7 @@ public class TestMRJobsWithHistoryServic
while (true) {
Thread.sleep(1000);
if (mrCluster.getResourceManager().getApplicationsManager()
- .getApplication(appID).state().equals(ApplicationState.COMPLETED))
+ .getApplication(appID).getState().equals(ApplicationState.COMPLETED))
break;
}
Counters counterHS = job.getCounters();
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/ClientRMProtocol.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/ClientRMProtocol.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/ClientRMProtocol.java (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/ClientRMProtocol.java Tue Apr 12 21:15:37 2011
@@ -2,10 +2,14 @@ package org.apache.hadoop.yarn.api;
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationRequest;
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationIdRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationIdResponse;
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
@@ -18,4 +22,6 @@ public interface ClientRMProtocol {
public SubmitApplicationResponse submitApplication(SubmitApplicationRequest request) throws YarnRemoteException;
public FinishApplicationResponse finishApplication(FinishApplicationRequest request) throws YarnRemoteException;
public GetClusterMetricsResponse getClusterMetrics(GetClusterMetricsRequest request) throws YarnRemoteException;
+ public GetAllApplicationsResponse getAllApplications(GetAllApplicationsRequest request) throws YarnRemoteException;
+ public GetClusterNodesResponse getClusterNodes(GetClusterNodesRequest request) throws YarnRemoteException;
}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetAllApplicationsRequest.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetAllApplicationsRequest.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetAllApplicationsRequest.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetAllApplicationsRequest.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,4 @@
+package org.apache.hadoop.yarn.api.protocolrecords;
+
+public interface GetAllApplicationsRequest {
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetAllApplicationsResponse.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetAllApplicationsResponse.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetAllApplicationsResponse.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetAllApplicationsResponse.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,10 @@
+package org.apache.hadoop.yarn.api.protocolrecords;
+
+import java.util.List;
+
+import org.apache.hadoop.yarn.api.records.Application;
+
+public interface GetAllApplicationsResponse {
+ List<Application> getApplicationList();
+ void setApplicationList(List<Application> applications);
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetClusterNodesRequest.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetClusterNodesRequest.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetClusterNodesRequest.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetClusterNodesRequest.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,5 @@
+package org.apache.hadoop.yarn.api.protocolrecords;
+
+public interface GetClusterNodesRequest {
+
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetClusterNodesResponse.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetClusterNodesResponse.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetClusterNodesResponse.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/GetClusterNodesResponse.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,10 @@
+package org.apache.hadoop.yarn.api.protocolrecords;
+
+import java.util.List;
+
+import org.apache.hadoop.yarn.api.records.NodeManagerInfo;
+
+public interface GetClusterNodesResponse {
+ List<NodeManagerInfo> getNodeManagerList();
+ void setNodeManagerList(List<NodeManagerInfo> nodeManagers);
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetAllApplicationsRequestPBImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetAllApplicationsRequestPBImpl.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetAllApplicationsRequestPBImpl.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetAllApplicationsRequestPBImpl.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,29 @@
+package org.apache.hadoop.yarn.api.protocolrecords.impl.pb;
+
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsRequest;
+import org.apache.hadoop.yarn.api.records.ProtoBase;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetAllApplicationsRequestProto;
+
+public class GetAllApplicationsRequestPBImpl extends
+ ProtoBase<GetAllApplicationsRequestProto> implements GetAllApplicationsRequest {
+ GetAllApplicationsRequestProto proto = GetAllApplicationsRequestProto.getDefaultInstance();
+ GetAllApplicationsRequestProto.Builder builder = null;
+ boolean viaProto = false;
+
+ public GetAllApplicationsRequestPBImpl() {
+ builder = GetAllApplicationsRequestProto.newBuilder();
+ }
+
+ public GetAllApplicationsRequestPBImpl(GetAllApplicationsRequestProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ @Override
+ public GetAllApplicationsRequestProto getProto() {
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetAllApplicationsResponsePBImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetAllApplicationsResponsePBImpl.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetAllApplicationsResponsePBImpl.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetAllApplicationsResponsePBImpl.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,134 @@
+package org.apache.hadoop.yarn.api.protocolrecords.impl.pb;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsResponse;
+import org.apache.hadoop.yarn.api.records.Application;
+import org.apache.hadoop.yarn.api.records.ProtoBase;
+import org.apache.hadoop.yarn.api.records.impl.pb.ApplicationPBImpl;
+import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetAllApplicationsResponseProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetAllApplicationsResponseProtoOrBuilder;
+
+public class GetAllApplicationsResponsePBImpl
+extends ProtoBase<GetAllApplicationsResponseProto> implements
+GetAllApplicationsResponse {
+
+ GetAllApplicationsResponseProto proto =
+ GetAllApplicationsResponseProto.getDefaultInstance();
+ GetAllApplicationsResponseProto.Builder builder = null;
+ boolean viaProto = false;
+
+ List<Application> applicationList;
+
+ public GetAllApplicationsResponsePBImpl() {
+ builder = GetAllApplicationsResponseProto.newBuilder();
+ }
+
+ public GetAllApplicationsResponsePBImpl(GetAllApplicationsResponseProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ @Override
+ public List<Application> getApplicationList() {
+ initLocalApplicationsList();
+ return this.applicationList;
+ }
+
+ @Override
+ public void setApplicationList(List<Application> applications) {
+ maybeInitBuilder();
+ if (applications == null)
+ builder.clearApplications();
+ this.applicationList = applications;
+ }
+
+ @Override
+ public GetAllApplicationsResponseProto getProto() {
+ mergeLocalToProto();
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ private void mergeLocalToBuilder() {
+ if (this.applicationList != null) {
+ addLocalApplicationsToProto();
+ }
+ }
+
+ private void mergeLocalToProto() {
+ if (viaProto)
+ maybeInitBuilder();
+ mergeLocalToBuilder();
+ proto = builder.build();
+ viaProto = true;
+ }
+
+ private void maybeInitBuilder() {
+ if (viaProto || builder == null) {
+ builder = GetAllApplicationsResponseProto.newBuilder(proto);
+ }
+ viaProto = false;
+ }
+
+ //Once this is called. containerList will never be null - untill a getProto is called.
+ private void initLocalApplicationsList() {
+ if (this.applicationList != null) {
+ return;
+ }
+ GetAllApplicationsResponseProtoOrBuilder p = viaProto ? proto : builder;
+ List<ApplicationProto> list = p.getApplicationsList();
+ applicationList = new ArrayList<Application>();
+
+ for (ApplicationProto a : list) {
+ applicationList.add(convertFromProtoFormat(a));
+ }
+ }
+
+ private void addLocalApplicationsToProto() {
+ maybeInitBuilder();
+ builder.clearApplications();
+ if (applicationList == null)
+ return;
+ Iterable<ApplicationProto> iterable = new Iterable<ApplicationProto>() {
+ @Override
+ public Iterator<ApplicationProto> iterator() {
+ return new Iterator<ApplicationProto>() {
+
+ Iterator<Application> iter = applicationList.iterator();
+
+ @Override
+ public boolean hasNext() {
+ return iter.hasNext();
+ }
+
+ @Override
+ public ApplicationProto next() {
+ return convertToProtoFormat(iter.next());
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+
+ }
+ };
+
+ }
+ };
+ builder.addAllApplications(iterable);
+ }
+
+ private ApplicationPBImpl convertFromProtoFormat(ApplicationProto p) {
+ return new ApplicationPBImpl(p);
+ }
+
+ private ApplicationProto convertToProtoFormat(Application t) {
+ return ((ApplicationPBImpl)t).getProto();
+ }
+
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesRequestPBImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesRequestPBImpl.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesRequestPBImpl.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesRequestPBImpl.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,30 @@
+package org.apache.hadoop.yarn.api.protocolrecords.impl.pb;
+
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesRequest;
+import org.apache.hadoop.yarn.api.records.ProtoBase;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetClusterNodesRequestProto;
+
+public class GetClusterNodesRequestPBImpl extends
+ ProtoBase<GetClusterNodesRequestProto> implements GetClusterNodesRequest {
+
+ GetClusterNodesRequestProto proto = GetClusterNodesRequestProto.getDefaultInstance();
+ GetClusterNodesRequestProto.Builder builder = null;
+ boolean viaProto = false;
+
+ public GetClusterNodesRequestPBImpl() {
+ builder = GetClusterNodesRequestProto.newBuilder();
+ }
+
+ public GetClusterNodesRequestPBImpl(GetClusterNodesRequestProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ @Override
+ public GetClusterNodesRequestProto getProto() {
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesResponsePBImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesResponsePBImpl.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesResponsePBImpl.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesResponsePBImpl.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,135 @@
+package org.apache.hadoop.yarn.api.protocolrecords.impl.pb;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesResponse;
+import org.apache.hadoop.yarn.api.records.NodeManagerInfo;
+import org.apache.hadoop.yarn.api.records.ProtoBase;
+import org.apache.hadoop.yarn.api.records.impl.pb.NodeManagerInfoPBImpl;
+import org.apache.hadoop.yarn.proto.YarnProtos.NodeManagerInfoProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetClusterNodesResponseProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetClusterNodesResponseProtoOrBuilder;
+
+public class GetClusterNodesResponsePBImpl extends
+ ProtoBase<GetClusterNodesResponseProto> implements GetClusterNodesResponse {
+
+ GetClusterNodesResponseProto proto =
+ GetClusterNodesResponseProto.getDefaultInstance();
+ GetClusterNodesResponseProto.Builder builder = null;
+ boolean viaProto = false;
+
+ List<NodeManagerInfo> nodeManagerInfoList;
+
+ public GetClusterNodesResponsePBImpl() {
+ builder = GetClusterNodesResponseProto.newBuilder();
+ }
+
+ public GetClusterNodesResponsePBImpl(GetClusterNodesResponseProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ @Override
+ public List<NodeManagerInfo> getNodeManagerList() {
+ initLocalNodeManagerInfosList();
+ return this.nodeManagerInfoList;
+ }
+
+ @Override
+ public void setNodeManagerList(List<NodeManagerInfo> nodeManagers) {
+ maybeInitBuilder();
+ if (nodeManagers == null) {
+ builder.clearNodeManagers();
+ }
+ this.nodeManagerInfoList = nodeManagers;
+
+ }
+
+ @Override
+ public GetClusterNodesResponseProto getProto() {
+ mergeLocalToProto();
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ private void mergeLocalToBuilder() {
+ if (this.nodeManagerInfoList != null) {
+ addLocalNodeManagerInfosToProto();
+ }
+ }
+
+ private void mergeLocalToProto() {
+ if (viaProto)
+ maybeInitBuilder();
+ mergeLocalToBuilder();
+ proto = builder.build();
+ viaProto = true;
+ }
+
+ private void maybeInitBuilder() {
+ if (viaProto || builder == null) {
+ builder = GetClusterNodesResponseProto.newBuilder(proto);
+ }
+ viaProto = false;
+ }
+
+ //Once this is called. containerList will never be null - untill a getProto is called.
+ private void initLocalNodeManagerInfosList() {
+ if (this.nodeManagerInfoList != null) {
+ return;
+ }
+ GetClusterNodesResponseProtoOrBuilder p = viaProto ? proto : builder;
+ List<NodeManagerInfoProto> list = p.getNodeManagersList();
+ nodeManagerInfoList = new ArrayList<NodeManagerInfo>();
+
+ for (NodeManagerInfoProto a : list) {
+ nodeManagerInfoList.add(convertFromProtoFormat(a));
+ }
+ }
+
+ private void addLocalNodeManagerInfosToProto() {
+ maybeInitBuilder();
+ builder.clearNodeManagers();
+ if (nodeManagerInfoList == null)
+ return;
+ Iterable<NodeManagerInfoProto> iterable = new Iterable<NodeManagerInfoProto>() {
+ @Override
+ public Iterator<NodeManagerInfoProto> iterator() {
+ return new Iterator<NodeManagerInfoProto>() {
+
+ Iterator<NodeManagerInfo> iter = nodeManagerInfoList.iterator();
+
+ @Override
+ public boolean hasNext() {
+ return iter.hasNext();
+ }
+
+ @Override
+ public NodeManagerInfoProto next() {
+ return convertToProtoFormat(iter.next());
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+
+ }
+ };
+
+ }
+ };
+ builder.addAllNodeManagers(iterable);
+ }
+
+ private NodeManagerInfoPBImpl convertFromProtoFormat(NodeManagerInfoProto p) {
+ return new NodeManagerInfoPBImpl(p);
+ }
+
+ private NodeManagerInfoProto convertToProtoFormat(NodeManagerInfo t) {
+ return ((NodeManagerInfoPBImpl)t).getProto();
+ }
+
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Application.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Application.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Application.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Application.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,20 @@
+package org.apache.hadoop.yarn.api.records;
+
+public interface Application {
+ public ApplicationId getApplicationId();
+ public void setApplicationId(ApplicationId applicationId);
+ public String getUser();
+ public void setUser(String user);
+ public String getQueue();
+ public void setQueue(String queue);
+ public String getName();
+ public void setName(String name);
+ public ApplicationStatus getStatus();
+ public void setStatus(ApplicationStatus status);
+ public ApplicationState getState();
+ public void setState(ApplicationState state);
+ public String getMasterHost();
+ public void setMasterHost(String masterHost);
+ public int getMasterPort();
+ public void setMasterPort(int masterPort);
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/NodeManagerInfo.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/NodeManagerInfo.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/NodeManagerInfo.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/NodeManagerInfo.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,14 @@
+package org.apache.hadoop.yarn.api.records;
+
+public interface NodeManagerInfo {
+ String getNodeName();
+ void setNodeName(String nodeName);
+ String getRackName();
+ void setRackName(String rackName);
+ Resource getUsed();
+ void setUsed(Resource used);
+ Resource getCapability();
+ void setCapability(Resource capability);
+ int getNumContainers();
+ void setNumContainers(int numContainers);
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationPBImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationPBImpl.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationPBImpl.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationPBImpl.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,253 @@
+package org.apache.hadoop.yarn.api.records.impl.pb;
+
+import org.apache.hadoop.yarn.api.records.Application;
+import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.api.records.ApplicationState;
+import org.apache.hadoop.yarn.api.records.ApplicationStatus;
+import org.apache.hadoop.yarn.api.records.ProtoBase;
+import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationIdProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationProtoOrBuilder;
+import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationStateProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationStatusProto;
+import org.apache.hadoop.yarn.util.ProtoUtils;
+
+public class ApplicationPBImpl extends ProtoBase<ApplicationProto>
+implements Application {
+ ApplicationProto proto = ApplicationProto.getDefaultInstance();
+ ApplicationProto.Builder builder = null;
+ boolean viaProto = false;
+
+ ApplicationId applicationId;
+ ApplicationStatus status;
+
+ public ApplicationPBImpl() {
+ builder = ApplicationProto.newBuilder();
+ }
+
+ public ApplicationPBImpl(ApplicationProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ @Override
+ public ApplicationId getApplicationId() {
+ if (this.applicationId != null) {
+ return this.applicationId;
+ }
+
+ ApplicationProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasStatus()) {
+ return null;
+ }
+ this.applicationId = convertFromProtoFormat(p.getApplicationId());
+ return this.applicationId;
+ }
+
+ @Override
+ public String getMasterHost() {
+ ApplicationProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasMasterHost()) {
+ return null;
+ }
+ return (p.getMasterHost());
+ }
+
+ @Override
+ public int getMasterPort() {
+ ApplicationProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasMasterPort()) {
+ return -1;
+ }
+ return p.getMasterPort();
+ }
+
+ @Override
+ public String getName() {
+ ApplicationProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasName()) {
+ return null;
+ }
+ return p.getName();
+ }
+
+ @Override
+ public String getQueue() {
+ ApplicationProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasQueue()) {
+ return null;
+ }
+ return p.getQueue();
+ }
+
+ @Override
+ public ApplicationState getState() {
+ ApplicationProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasState()) {
+ return null;
+ }
+ return convertFromProtoFormat(p.getState());
+ }
+
+ @Override
+ public ApplicationStatus getStatus() {
+ if (this.status != null) {
+ return this.status;
+ }
+
+ ApplicationProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasStatus()) {
+ return null;
+ }
+ this.status = convertFromProtoFormat(p.getStatus());
+ return this.status;
+ }
+
+ @Override
+ public String getUser() {
+ ApplicationProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasUser()) {
+ return null;
+ }
+ return p.getUser();
+ }
+
+ @Override
+ public void setApplicationId(ApplicationId applicationId) {
+ maybeInitBuilder();
+ if (applicationId == null)
+ builder.clearStatus();
+ this.applicationId = applicationId;
+ }
+
+ @Override
+ public void setMasterHost(String masterHost) {
+ maybeInitBuilder();
+ if (masterHost == null) {
+ builder.clearMasterHost();
+ return;
+ }
+ builder.setMasterHost((masterHost));
+ }
+
+ @Override
+ public void setMasterPort(int masterPort) {
+ maybeInitBuilder();
+ if (masterPort == -1) {
+ builder.clearMasterPort();
+ return;
+ }
+ builder.setMasterPort(masterPort);
+ }
+
+ @Override
+ public void setName(String name) {
+ maybeInitBuilder();
+ if (name == null) {
+ builder.clearName();
+ return;
+ }
+ builder.setName(name);
+ }
+
+ @Override
+ public void setQueue(String queue) {
+ maybeInitBuilder();
+ if (queue == null) {
+ builder.clearQueue();
+ return;
+ }
+ builder.setQueue(queue);
+ }
+
+ @Override
+ public void setState(ApplicationState state) {
+ maybeInitBuilder();
+ if (state == null) {
+ builder.clearState();
+ return;
+ }
+ builder.setState(convertToProtoFormat(state));
+ }
+
+ @Override
+ public void setStatus(ApplicationStatus status) {
+ maybeInitBuilder();
+ if (status == null)
+ builder.clearStatus();
+ this.status = status;
+ }
+
+ @Override
+ public void setUser(String user) {
+ maybeInitBuilder();
+ if (user == null) {
+ builder.clearUser();
+ return;
+ }
+ builder.setUser((user));
+ }
+
+ @Override
+ public ApplicationProto getProto() {
+ mergeLocalToProto();
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ private void mergeLocalToBuilder() {
+ if (this.applicationId != null
+ && !((ApplicationIdPBImpl) this.applicationId).getProto().equals(
+ builder.getApplicationId())) {
+ builder.setApplicationId(convertToProtoFormat(this.applicationId));
+ }
+ if (this.status != null
+ && !((ApplicationStatusPBImpl) this.status).getProto().equals(
+ builder.getStatus())) {
+ builder.setStatus(convertToProtoFormat(this.status));
+ }
+ }
+
+ private void mergeLocalToProto() {
+ if (viaProto)
+ maybeInitBuilder();
+ mergeLocalToBuilder();
+ proto = builder.build();
+ viaProto = true;
+ }
+
+ private void maybeInitBuilder() {
+ if (viaProto || builder == null) {
+ builder = ApplicationProto.newBuilder(proto);
+ }
+ viaProto = false;
+ }
+
+ private ApplicationIdProto convertToProtoFormat(ApplicationId t) {
+ return ((ApplicationIdPBImpl) t).getProto();
+ }
+
+ private ApplicationStatusPBImpl convertFromProtoFormat(
+ ApplicationStatusProto p) {
+ return new ApplicationStatusPBImpl(p);
+ }
+
+ private ApplicationStatusProto convertToProtoFormat(ApplicationStatus t) {
+ return ((ApplicationStatusPBImpl) t).getProto();
+ }
+
+ private ApplicationState convertFromProtoFormat(ApplicationStateProto s) {
+ return ProtoUtils.convertFromProtoFormat(s);
+ }
+
+ private ApplicationStateProto convertToProtoFormat(ApplicationState s) {
+ return ProtoUtils.convertToProtoFormat(s);
+ }
+
+ private ApplicationIdPBImpl convertFromProtoFormat(
+ ApplicationIdProto applicationId) {
+ return new ApplicationIdPBImpl(applicationId);
+ }
+
+}
Added: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/NodeManagerInfoPBImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/NodeManagerInfoPBImpl.java?rev=1091574&view=auto
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/NodeManagerInfoPBImpl.java (added)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/NodeManagerInfoPBImpl.java Tue Apr 12 21:15:37 2011
@@ -0,0 +1,166 @@
+package org.apache.hadoop.yarn.api.records.impl.pb;
+
+import org.apache.hadoop.yarn.api.records.NodeManagerInfo;
+import org.apache.hadoop.yarn.api.records.ProtoBase;
+import org.apache.hadoop.yarn.api.records.Resource;
+import org.apache.hadoop.yarn.proto.YarnProtos.NodeManagerInfoProto;
+import org.apache.hadoop.yarn.proto.YarnProtos.NodeManagerInfoProtoOrBuilder;
+import org.apache.hadoop.yarn.proto.YarnProtos.ResourceProto;
+
+public class NodeManagerInfoPBImpl extends ProtoBase<NodeManagerInfoProto>
+ implements NodeManagerInfo {
+
+ NodeManagerInfoProto proto = NodeManagerInfoProto.getDefaultInstance();
+ NodeManagerInfoProto.Builder builder = null;
+ boolean viaProto = false;
+
+ Resource used;
+ Resource capability;
+
+ public NodeManagerInfoPBImpl() {
+ builder = NodeManagerInfoProto.newBuilder();
+ }
+
+ public NodeManagerInfoPBImpl(NodeManagerInfoProto proto) {
+ this.proto = proto;
+ viaProto = true;
+ }
+
+ @Override
+ public Resource getCapability() {
+ if (this.capability != null) {
+ return this.capability;
+ }
+
+ NodeManagerInfoProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasCapability()) {
+ return null;
+ }
+ this.capability = convertFromProtoFormat(p.getCapability());
+ return this.capability;
+ }
+
+ @Override
+ public String getNodeName() {
+ NodeManagerInfoProtoOrBuilder p = viaProto ? proto : builder;
+ return (p.hasNodeName()) ? p.getNodeName() : null;
+ }
+
+ @Override
+ public int getNumContainers() {
+ NodeManagerInfoProtoOrBuilder p = viaProto ? proto : builder;
+ return (p.hasNumContainers()) ? p.getNumContainers() : 0;
+ }
+
+ @Override
+ public String getRackName() {
+ NodeManagerInfoProtoOrBuilder p = viaProto ? proto : builder;
+ return (p.hasRackName()) ? p.getRackName() : null;
+ }
+
+ @Override
+ public Resource getUsed() {
+ if (this.used != null) {
+ return this.used;
+ }
+
+ NodeManagerInfoProtoOrBuilder p = viaProto ? proto : builder;
+ if (!p.hasUsed()) {
+ return null;
+ }
+ this.used = convertFromProtoFormat(p.getUsed());
+ return this.used;
+ }
+
+ @Override
+ public void setCapability(Resource capability) {
+ maybeInitBuilder();
+ if (capability == null)
+ builder.clearCapability();
+ this.capability = capability;
+ }
+
+ @Override
+ public void setNodeName(String nodeName) {
+ maybeInitBuilder();
+ if (nodeName == null) {
+ builder.clearNodeName();
+ return;
+ }
+ builder.setNodeName(nodeName);
+ }
+
+ @Override
+ public void setNumContainers(int numContainers) {
+ maybeInitBuilder();
+ if (numContainers == 0) {
+ builder.clearNumContainers();
+ return;
+ }
+ builder.setNumContainers(numContainers);
+ }
+
+ @Override
+ public void setRackName(String rackName) {
+ maybeInitBuilder();
+ if (rackName == null) {
+ builder.clearRackName();
+ return;
+ }
+ builder.setRackName(rackName);
+ }
+
+ @Override
+ public void setUsed(Resource used) {
+ maybeInitBuilder();
+ if (used == null)
+ builder.clearUsed();
+ this.used = used;
+ }
+
+ @Override
+ public NodeManagerInfoProto getProto() {
+ mergeLocalToProto();
+ proto = viaProto ? proto : builder.build();
+ viaProto = true;
+ return proto;
+ }
+
+ private void mergeLocalToBuilder() {
+ if (this.used != null
+ && !((ResourcePBImpl) this.used).getProto().equals(
+ builder.getUsed())) {
+ builder.setUsed(convertToProtoFormat(this.used));
+ }
+ if (this.capability != null
+ && !((ResourcePBImpl) this.capability).getProto().equals(
+ builder.getCapability())) {
+ builder.setCapability(convertToProtoFormat(this.used));
+ }
+ }
+
+ private void mergeLocalToProto() {
+ if (viaProto)
+ maybeInitBuilder();
+ mergeLocalToBuilder();
+ proto = builder.build();
+ viaProto = true;
+ }
+
+ private void maybeInitBuilder() {
+ if (viaProto || builder == null) {
+ builder = NodeManagerInfoProto.newBuilder(proto);
+ }
+ viaProto = false;
+ }
+
+
+ private ResourcePBImpl convertFromProtoFormat(ResourceProto p) {
+ return new ResourcePBImpl(p);
+ }
+
+ private ResourceProto convertToProtoFormat(Resource r) {
+ return ((ResourcePBImpl) r).getProto();
+ }
+
+}
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/client_RM_protocol.proto
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/client_RM_protocol.proto?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/client_RM_protocol.proto (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/client_RM_protocol.proto Tue Apr 12 21:15:37 2011
@@ -16,5 +16,7 @@ service ClientRMProtocolService {
rpc submitApplication (SubmitApplicationRequestProto) returns (SubmitApplicationResponseProto);
rpc finishApplication (FinishApplicationRequestProto) returns (FinishApplicationResponseProto);
rpc getClusterMetrics (GetClusterMetricsRequestProto) returns (GetClusterMetricsResponseProto);
+ rpc getAllApplications (GetAllApplicationsRequestProto) returns (GetAllApplicationsResponseProto);
+ rpc getClusterNodes (GetClusterNodesRequestProto) returns (GetClusterNodesResponseProto);
}
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/yarn_protos.proto
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/yarn_protos.proto?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/yarn_protos.proto (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/yarn_protos.proto Tue Apr 12 21:15:37 2011
@@ -103,7 +103,24 @@ message LocalResourceProto {
optional LocalResourceVisibilityProto visibility= 5;
}
+message ApplicationProto {
+ optional ApplicationIdProto applicationId = 1;
+ optional string user = 2;
+ optional string queue = 3;
+ optional string name = 4;
+ optional ApplicationStatusProto status = 5;
+ optional ApplicationStateProto state = 6;
+ optional string masterHost = 7;
+ optional int32 masterPort = 8;
+}
+message NodeManagerInfoProto {
+ optional string nodeName = 1;
+ optional string rackName = 2;
+ optional ResourceProto used = 3;
+ optional ResourceProto capability = 4;
+ optional int32 numContainers = 5;
+}
////////////////////////////////////////////////////////////////////////
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/yarn_service_protos.proto
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/yarn_service_protos.proto?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/yarn_service_protos.proto (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/proto/yarn_service_protos.proto Tue Apr 12 21:15:37 2011
@@ -74,6 +74,19 @@ message GetClusterMetricsResponseProto {
optional YarnClusterMetricsProto cluster_metrics = 1;
}
+message GetAllApplicationsRequestProto {
+}
+
+message GetAllApplicationsResponseProto {
+ repeated ApplicationProto applications = 1;
+}
+
+message GetClusterNodesRequestProto {
+}
+
+message GetClusterNodesResponseProto {
+ repeated NodeManagerInfoProto nodeManagers = 1;
+}
//////////////////////////////////////////////////////
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/client/ClientRMProtocolPBClientImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/client/ClientRMProtocolPBClientImpl.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/client/ClientRMProtocolPBClientImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/client/ClientRMProtocolPBClientImpl.java Tue Apr 12 21:15:37 2011
@@ -9,20 +9,28 @@ import org.apache.hadoop.ipc.RPC;
import org.apache.hadoop.yarn.api.ClientRMProtocol;
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationRequest;
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationIdRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationIdResponse;
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationResponse;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.FinishApplicationRequestPBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.FinishApplicationResponsePBImpl;
+import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetAllApplicationsRequestPBImpl;
+import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetAllApplicationsResponsePBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetApplicationMasterRequestPBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetApplicationMasterResponsePBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetClusterMetricsRequestPBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetClusterMetricsResponsePBImpl;
+import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetClusterNodesRequestPBImpl;
+import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetClusterNodesResponsePBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetNewApplicationIdRequestPBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetNewApplicationIdResponsePBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.SubmitApplicationRequestPBImpl;
@@ -31,8 +39,10 @@ import org.apache.hadoop.yarn.exceptions
import org.apache.hadoop.yarn.ipc.ProtoOverHadoopRpcEngine;
import org.apache.hadoop.yarn.proto.ClientRMProtocol.ClientRMProtocolService;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.FinishApplicationRequestProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetAllApplicationsRequestProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetApplicationMasterRequestProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetClusterMetricsRequestProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetClusterNodesRequestProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetNewApplicationIdRequestProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.SubmitApplicationRequestProto;
@@ -133,4 +143,42 @@ public class ClientRMProtocolPBClientImp
}
}
+ @Override
+ public GetAllApplicationsResponse getAllApplications(
+ GetAllApplicationsRequest request) throws YarnRemoteException {
+ GetAllApplicationsRequestProto requestProto =
+ ((GetAllApplicationsRequestPBImpl)request).getProto();
+ try {
+ return new GetAllApplicationsResponsePBImpl(
+ proxy.getAllApplications(null, requestProto));
+ } catch (ServiceException e) {
+ if (e.getCause() instanceof YarnRemoteException) {
+ throw (YarnRemoteException)e.getCause();
+ } else if (e.getCause() instanceof UndeclaredThrowableException) {
+ throw (UndeclaredThrowableException)e.getCause();
+ } else {
+ throw new UndeclaredThrowableException(e);
+ }
+ }
+ }
+
+ @Override
+ public GetClusterNodesResponse getClusterNodes(
+ GetClusterNodesRequest request) throws YarnRemoteException {
+ GetClusterNodesRequestProto requestProto =
+ ((GetClusterNodesRequestPBImpl)request).getProto();
+ try {
+ return new GetClusterNodesResponsePBImpl(
+ proxy.getClusterNodes(null, requestProto));
+ } catch (ServiceException e) {
+ if (e.getCause() instanceof YarnRemoteException) {
+ throw (YarnRemoteException)e.getCause();
+ } else if (e.getCause() instanceof UndeclaredThrowableException) {
+ throw (UndeclaredThrowableException)e.getCause();
+ } else {
+ throw new UndeclaredThrowableException(e);
+ }
+ }
+ }
+
}
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/service/ClientRMProtocolPBServiceImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/service/ClientRMProtocolPBServiceImpl.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/service/ClientRMProtocolPBServiceImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/service/ClientRMProtocolPBServiceImpl.java Tue Apr 12 21:15:37 2011
@@ -2,16 +2,22 @@ package org.apache.hadoop.yarn.api.impl.
import org.apache.hadoop.yarn.api.ClientRMProtocol;
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationIdResponse;
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationResponse;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.FinishApplicationRequestPBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.FinishApplicationResponsePBImpl;
+import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetAllApplicationsRequestPBImpl;
+import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetAllApplicationsResponsePBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetApplicationMasterRequestPBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetApplicationMasterResponsePBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetClusterMetricsRequestPBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetClusterMetricsResponsePBImpl;
+import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetClusterNodesRequestPBImpl;
+import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetClusterNodesResponsePBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetNewApplicationIdRequestPBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.GetNewApplicationIdResponsePBImpl;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.SubmitApplicationRequestPBImpl;
@@ -20,10 +26,14 @@ import org.apache.hadoop.yarn.exceptions
import org.apache.hadoop.yarn.proto.ClientRMProtocol.ClientRMProtocolService.BlockingInterface;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.FinishApplicationRequestProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.FinishApplicationResponseProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetAllApplicationsRequestProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetAllApplicationsResponseProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetApplicationMasterRequestProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetApplicationMasterResponseProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetClusterMetricsRequestProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetClusterMetricsResponseProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetClusterNodesRequestProto;
+import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetClusterNodesResponseProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetNewApplicationIdRequestProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.GetNewApplicationIdResponseProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.SubmitApplicationRequestProto;
@@ -102,4 +112,31 @@ public class ClientRMProtocolPBServiceIm
}
}
+ @Override
+ public GetAllApplicationsResponseProto getAllApplications(
+ RpcController controller, GetAllApplicationsRequestProto proto)
+ throws ServiceException {
+ GetAllApplicationsRequestPBImpl request =
+ new GetAllApplicationsRequestPBImpl(proto);
+ try {
+ GetAllApplicationsResponse response = real.getAllApplications(request);
+ return ((GetAllApplicationsResponsePBImpl)response).getProto();
+ } catch (YarnRemoteException e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ @Override
+ public GetClusterNodesResponseProto getClusterNodes(RpcController controller,
+ GetClusterNodesRequestProto proto) throws ServiceException {
+ GetClusterNodesRequestPBImpl request =
+ new GetClusterNodesRequestPBImpl(proto);
+ try {
+ GetClusterNodesResponse response = real.getClusterNodes(request);
+ return ((GetClusterNodesResponsePBImpl)response).getProto();
+ } catch (YarnRemoteException e) {
+ throw new ServiceException(e);
+ }
+ }
+
}
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/test/java/org/apache/hadoop/yarn/MockApps.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/test/java/org/apache/hadoop/yarn/MockApps.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/test/java/org/apache/hadoop/yarn/MockApps.java (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/test/java/org/apache/hadoop/yarn/MockApps.java Tue Apr 12 21:15:37 2011
@@ -24,7 +24,7 @@ import com.google.common.collect.Lists;
import java.util.Iterator;
import java.util.List;
-import org.apache.hadoop.yarn.Application;
+import org.apache.hadoop.yarn.api.records.Application;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ApplicationState;
import org.apache.hadoop.yarn.api.records.ApplicationStatus;
@@ -80,23 +80,55 @@ public class MockApps {
final String name = newAppName();
final String queue = newQueue();
return new Application() {
- @Override public ApplicationId id() { return id; }
- @Override public CharSequence user() { return user; }
- @Override public CharSequence name() { return name; }
- @Override public ApplicationStatus status() { return status; }
- @Override public ApplicationState state() { return state; }
- @Override public CharSequence queue() { return queue; }
- @Override public CharSequence master() {
+ @Override public ApplicationId getApplicationId() { return id; }
+ @Override public String getUser() { return user; }
+ @Override public String getName() { return name; }
+ @Override public ApplicationStatus getStatus() { return status; }
+ @Override public ApplicationState getState() { return state; }
+ @Override public String getQueue() { return queue; }
+ @Override public String getMasterHost() {
return Math.random() > 0.8 ? null : "localhost";
}
- @Override public int httpPort() { return 58888; }
- @Override public boolean isFinished() {
- switch (state) {
- case COMPLETED:
- case FAILED:
- case KILLED: return true;
- }
- return false;
+ @Override public int getMasterPort() { return 58888; }
+ @Override
+ public void setApplicationId(ApplicationId applicationId) {
+ // TODO Auto-generated method stub
+
+ }
+ @Override
+ public void setMasterHost(String masterHost) {
+ // TODO Auto-generated method stub
+
+ }
+ @Override
+ public void setMasterPort(int masterPort) {
+ // TODO Auto-generated method stub
+
+ }
+ @Override
+ public void setName(String name) {
+ // TODO Auto-generated method stub
+
+ }
+ @Override
+ public void setQueue(String queue) {
+ // TODO Auto-generated method stub
+
+ }
+ @Override
+ public void setState(ApplicationState state) {
+ // TODO Auto-generated method stub
+
+ }
+ @Override
+ public void setStatus(ApplicationStatus status) {
+ // TODO Auto-generated method stub
+
+ }
+ @Override
+ public void setUser(String user) {
+ // TODO Auto-generated method stub
+
}
};
}
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java Tue Apr 12 21:15:37 2011
@@ -20,6 +20,8 @@ package org.apache.hadoop.yarn.server.re
import java.io.IOException;
import java.net.InetSocketAddress;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.avro.ipc.Server;
import org.apache.commons.logging.Log;
@@ -31,16 +33,21 @@ import org.apache.hadoop.security.Securi
import org.apache.hadoop.yarn.api.ClientRMProtocol;
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationRequest;
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationMasterResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsResponse;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesRequest;
+import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationIdRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationIdResponse;
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationResponse;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
+import org.apache.hadoop.yarn.api.records.NodeManagerInfo;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.exceptions.YarnRemoteException;
import org.apache.hadoop.yarn.factories.RecordFactory;
@@ -49,9 +56,11 @@ import org.apache.hadoop.yarn.ipc.RPCUti
import org.apache.hadoop.yarn.ipc.YarnRPC;
import org.apache.hadoop.yarn.security.client.ClientRMSecurityInfo;
import org.apache.hadoop.yarn.server.resourcemanager.applicationsmanager.ApplicationsManager;
+import org.apache.hadoop.yarn.server.resourcemanager.resourcetracker.NodeInfo;
import org.apache.hadoop.yarn.server.resourcemanager.resourcetracker.ResourceContext;
import org.apache.hadoop.yarn.service.AbstractService;
+
/**
* The client interface to the Resource Manager. This module handles all the rpc
* interfaces to the resource manager from the client.
@@ -146,6 +155,41 @@ public class ClientRMService extends Abs
}
@Override
+ public GetAllApplicationsResponse getAllApplications(
+ GetAllApplicationsRequest request) throws YarnRemoteException {
+ GetAllApplicationsResponse response =
+ recordFactory.newRecordInstance(GetAllApplicationsResponse.class);
+ response.setApplicationList(applicationsManager.getApplications());
+ return response;
+ }
+
+ @Override
+ public GetClusterNodesResponse getClusterNodes(GetClusterNodesRequest request)
+ throws YarnRemoteException {
+ GetClusterNodesResponse response =
+ recordFactory.newRecordInstance(GetClusterNodesResponse.class);
+ List<NodeInfo> nodeInfos = clusterInfo.getAllNodeInfo();
+ List<NodeManagerInfo> nodes =
+ new ArrayList<NodeManagerInfo>(nodeInfos.size());
+ for (NodeInfo nodeInfo : nodeInfos) {
+ nodes.add(createNodeManagerInfo(nodeInfo));
+ }
+ response.setNodeManagerList(nodes);
+ return response;
+ }
+
+ private NodeManagerInfo createNodeManagerInfo(NodeInfo nodeInfo) {
+ NodeManagerInfo node =
+ recordFactory.newRecordInstance(NodeManagerInfo.class);
+ node.setNodeName(nodeInfo.getHostName());
+ node.setRackName(nodeInfo.getRackName());
+ node.setCapability(nodeInfo.getTotalCapability());
+ node.setUsed(nodeInfo.getUsedResource());
+ node.setNumContainers(nodeInfo.getNumContainers());
+ return node;
+ }
+
+ @Override
public void stop() {
if (this.server != null) {
this.server.close();
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/ApplicationsManager.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/ApplicationsManager.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/ApplicationsManager.java (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/ApplicationsManager.java Tue Apr 12 21:15:37 2011
@@ -23,7 +23,7 @@ import java.util.List;
import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
-import org.apache.hadoop.yarn.Application;
+import org.apache.hadoop.yarn.api.records.Application;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ApplicationMaster;
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/ApplicationsManagerImpl.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/ApplicationsManagerImpl.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/ApplicationsManagerImpl.java (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/ApplicationsManagerImpl.java Tue Apr 12 21:15:37 2011
@@ -28,13 +28,16 @@ import org.apache.commons.logging.LogFac
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.token.Token;
-import org.apache.hadoop.yarn.Application;
+import org.apache.hadoop.yarn.api.records.Application;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.ApplicationMaster;
import org.apache.hadoop.yarn.api.records.ApplicationState;
import org.apache.hadoop.yarn.api.records.ApplicationStatus;
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
+import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
import org.apache.hadoop.yarn.event.EventHandler;
+import org.apache.hadoop.yarn.factories.RecordFactory;
+import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
import org.apache.hadoop.yarn.security.ApplicationTokenIdentifier;
import org.apache.hadoop.yarn.security.ApplicationTokenSecretManager;
import org.apache.hadoop.yarn.security.client.ClientToAMSecretManager;
@@ -69,6 +72,9 @@ public class ApplicationsManagerImpl ext
private final ApplicationTokenSecretManager applicationTokenSecretManager;
private final ASMContext asmContext;
+ private final RecordFactory recordFactory =
+ RecordFactoryProvider.getRecordFactory(null);
+
public ApplicationsManagerImpl(ApplicationTokenSecretManager
applicationTokenSecretManager, YarnScheduler scheduler, ASMContext asmContext) {
super("ApplicationsManager");
@@ -215,42 +221,26 @@ public class ApplicationsManagerImpl ext
return amTracker.get(applicationId);
}
- static class AppImpl implements Application {
- final ApplicationMaster am;
- final String user;
- final String queue;
- final String name;
-
- AppImpl(ApplicationMaster am, String user, String queue, String name) {
- this.am = am;
- this.user = user;
- this.queue = queue;
- this.name = name;
- }
-
- @Override public ApplicationId id() { return am.getApplicationId(); }
- @Override public String user() { return user; }
- @Override public String name() { return name; }
- @Override public String queue() { return queue; }
- @Override public ApplicationStatus status() { return am.getStatus(); }
- @Override public String master() { return am.getHost(); }
- @Override public int httpPort() { return am.getHttpPort(); }
- @Override public ApplicationState state() { return am.getState(); }
- @Override public boolean isFinished() {
- switch (am.getState()) {
- case COMPLETED:
- case FAILED:
- case KILLED: return true;
- }
- return false;
- }
+ private Application createApplication(ApplicationMaster am, String user,
+ String queue, String name) {
+ Application application =
+ recordFactory.newRecordInstance(Application.class);
+ application.setApplicationId(am.getApplicationId());
+ application.setMasterHost(am.getHost());
+ application.setMasterPort(am.getHttpPort());
+ application.setName(name);
+ application.setQueue(queue);
+ application.setState(am.getState());
+ application.setStatus(am.getStatus());
+ application.setUser(user);
+ return application;
}
-
+
@Override
public List<Application> getApplications() {
List<Application> apps = new ArrayList<Application>();
for (AppContext am: getAllApplications()) {
- apps.add(new AppImpl(am.getMaster(),
+ apps.add(createApplication(am.getMaster(),
am.getUser(), am.getQueue(), am.getName()));
}
return apps;
@@ -260,7 +250,7 @@ public class ApplicationsManagerImpl ext
public Application getApplication(ApplicationId appID) {
ApplicationMasterInfo master = amTracker.get(appID);
return (master == null) ? null :
- new AppImpl(master.getMaster(),
+ createApplication(master.getMaster(),
master.getUser(), master.getQueue(), master.getName());
}
}
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppsBlock.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppsBlock.java?rev=1091574&r1=1091573&r2=1091574&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppsBlock.java (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppsBlock.java Tue Apr 12 21:15:37 2011
@@ -20,7 +20,7 @@ package org.apache.hadoop.yarn.server.re
import com.google.inject.Inject;
-import org.apache.hadoop.yarn.Application;
+import org.apache.hadoop.yarn.api.records.Application;
import org.apache.hadoop.yarn.util.Apps;
import org.apache.hadoop.yarn.webapp.hamlet.Hamlet;
import org.apache.hadoop.yarn.webapp.hamlet.Hamlet.*;
@@ -52,20 +52,20 @@ class AppsBlock extends HtmlBlock {
tbody();
int i = 0;
for (Application app : list.apps) {
- String appId = Apps.toString(app.id());
- CharSequence master = app.master();
+ String appId = Apps.toString(app.getApplicationId());
+ CharSequence master = app.getMasterHost();
String am = master == null ? "UNASSIGNED"
- : join(master, ':', app.httpPort());
- String percent = String.format("%.1f", app.status().getProgress() * 100);
+ : join(master, ':', app.getMasterPort());
+ String percent = String.format("%.1f", app.getStatus().getProgress() * 100);
tbody.
tr().
td().
- br().$title(String.valueOf(app.id().getId()))._(). // for sorting
+ br().$title(String.valueOf(app.getApplicationId().getId()))._(). // for sorting
a(url("app", appId), appId)._().
- td(app.user().toString()).
- td(app.name().toString()).
- td(app.queue().toString()).
- td(app.state().toString()).
+ td(app.getUser().toString()).
+ td(app.getName().toString()).
+ td(app.getQueue().toString()).
+ td(app.getState().toString()).
td().
br().$title(percent)._(). // for sorting
div(_PROGRESSBAR).