|
@@ -196,7 +196,8 @@ public class HistoryClientService extends AbstractService {
|
|
return getBindAddress();
|
|
return getBindAddress();
|
|
}
|
|
}
|
|
|
|
|
|
- private Job verifyAndGetJob(final JobId jobID) throws IOException {
|
|
|
|
|
|
+ private Job verifyAndGetJob(final JobId jobID, boolean exceptionThrow)
|
|
|
|
+ throws IOException {
|
|
UserGroupInformation loginUgi = null;
|
|
UserGroupInformation loginUgi = null;
|
|
Job job = null;
|
|
Job job = null;
|
|
try {
|
|
try {
|
|
@@ -212,6 +213,11 @@ public class HistoryClientService extends AbstractService {
|
|
} catch (InterruptedException e) {
|
|
} catch (InterruptedException e) {
|
|
throw new IOException(e);
|
|
throw new IOException(e);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (job == null && exceptionThrow) {
|
|
|
|
+ throw new IOException("Unknown Job " + jobID);
|
|
|
|
+ }
|
|
|
|
+
|
|
if (job != null) {
|
|
if (job != null) {
|
|
JobACL operation = JobACL.VIEW_JOB;
|
|
JobACL operation = JobACL.VIEW_JOB;
|
|
checkAccess(job, operation);
|
|
checkAccess(job, operation);
|
|
@@ -223,7 +229,7 @@ public class HistoryClientService extends AbstractService {
|
|
public GetCountersResponse getCounters(GetCountersRequest request)
|
|
public GetCountersResponse getCounters(GetCountersRequest request)
|
|
throws IOException {
|
|
throws IOException {
|
|
JobId jobId = request.getJobId();
|
|
JobId jobId = request.getJobId();
|
|
- Job job = verifyAndGetJob(jobId);
|
|
|
|
|
|
+ Job job = verifyAndGetJob(jobId, true);
|
|
GetCountersResponse response = recordFactory.newRecordInstance(GetCountersResponse.class);
|
|
GetCountersResponse response = recordFactory.newRecordInstance(GetCountersResponse.class);
|
|
response.setCounters(TypeConverter.toYarn(job.getAllCounters()));
|
|
response.setCounters(TypeConverter.toYarn(job.getAllCounters()));
|
|
return response;
|
|
return response;
|
|
@@ -233,7 +239,7 @@ public class HistoryClientService extends AbstractService {
|
|
public GetJobReportResponse getJobReport(GetJobReportRequest request)
|
|
public GetJobReportResponse getJobReport(GetJobReportRequest request)
|
|
throws IOException {
|
|
throws IOException {
|
|
JobId jobId = request.getJobId();
|
|
JobId jobId = request.getJobId();
|
|
- Job job = verifyAndGetJob(jobId);
|
|
|
|
|
|
+ Job job = verifyAndGetJob(jobId, false);
|
|
GetJobReportResponse response = recordFactory.newRecordInstance(GetJobReportResponse.class);
|
|
GetJobReportResponse response = recordFactory.newRecordInstance(GetJobReportResponse.class);
|
|
if (job != null) {
|
|
if (job != null) {
|
|
response.setJobReport(job.getReport());
|
|
response.setJobReport(job.getReport());
|
|
@@ -248,7 +254,7 @@ public class HistoryClientService extends AbstractService {
|
|
public GetTaskAttemptReportResponse getTaskAttemptReport(
|
|
public GetTaskAttemptReportResponse getTaskAttemptReport(
|
|
GetTaskAttemptReportRequest request) throws IOException {
|
|
GetTaskAttemptReportRequest request) throws IOException {
|
|
TaskAttemptId taskAttemptId = request.getTaskAttemptId();
|
|
TaskAttemptId taskAttemptId = request.getTaskAttemptId();
|
|
- Job job = verifyAndGetJob(taskAttemptId.getTaskId().getJobId());
|
|
|
|
|
|
+ Job job = verifyAndGetJob(taskAttemptId.getTaskId().getJobId(), true);
|
|
GetTaskAttemptReportResponse response = recordFactory.newRecordInstance(GetTaskAttemptReportResponse.class);
|
|
GetTaskAttemptReportResponse response = recordFactory.newRecordInstance(GetTaskAttemptReportResponse.class);
|
|
response.setTaskAttemptReport(job.getTask(taskAttemptId.getTaskId()).getAttempt(taskAttemptId).getReport());
|
|
response.setTaskAttemptReport(job.getTask(taskAttemptId.getTaskId()).getAttempt(taskAttemptId).getReport());
|
|
return response;
|
|
return response;
|
|
@@ -258,7 +264,7 @@ public class HistoryClientService extends AbstractService {
|
|
public GetTaskReportResponse getTaskReport(GetTaskReportRequest request)
|
|
public GetTaskReportResponse getTaskReport(GetTaskReportRequest request)
|
|
throws IOException {
|
|
throws IOException {
|
|
TaskId taskId = request.getTaskId();
|
|
TaskId taskId = request.getTaskId();
|
|
- Job job = verifyAndGetJob(taskId.getJobId());
|
|
|
|
|
|
+ Job job = verifyAndGetJob(taskId.getJobId(), true);
|
|
GetTaskReportResponse response = recordFactory.newRecordInstance(GetTaskReportResponse.class);
|
|
GetTaskReportResponse response = recordFactory.newRecordInstance(GetTaskReportResponse.class);
|
|
response.setTaskReport(job.getTask(taskId).getReport());
|
|
response.setTaskReport(job.getTask(taskId).getReport());
|
|
return response;
|
|
return response;
|
|
@@ -272,7 +278,7 @@ public class HistoryClientService extends AbstractService {
|
|
int fromEventId = request.getFromEventId();
|
|
int fromEventId = request.getFromEventId();
|
|
int maxEvents = request.getMaxEvents();
|
|
int maxEvents = request.getMaxEvents();
|
|
|
|
|
|
- Job job = verifyAndGetJob(jobId);
|
|
|
|
|
|
+ Job job = verifyAndGetJob(jobId, true);
|
|
GetTaskAttemptCompletionEventsResponse response = recordFactory.newRecordInstance(GetTaskAttemptCompletionEventsResponse.class);
|
|
GetTaskAttemptCompletionEventsResponse response = recordFactory.newRecordInstance(GetTaskAttemptCompletionEventsResponse.class);
|
|
response.addAllCompletionEvents(Arrays.asList(job.getTaskAttemptCompletionEvents(fromEventId, maxEvents)));
|
|
response.addAllCompletionEvents(Arrays.asList(job.getTaskAttemptCompletionEvents(fromEventId, maxEvents)));
|
|
return response;
|
|
return response;
|
|
@@ -300,7 +306,7 @@ public class HistoryClientService extends AbstractService {
|
|
throws IOException {
|
|
throws IOException {
|
|
TaskAttemptId taskAttemptId = request.getTaskAttemptId();
|
|
TaskAttemptId taskAttemptId = request.getTaskAttemptId();
|
|
|
|
|
|
- Job job = verifyAndGetJob(taskAttemptId.getTaskId().getJobId());
|
|
|
|
|
|
+ Job job = verifyAndGetJob(taskAttemptId.getTaskId().getJobId(), true);
|
|
|
|
|
|
GetDiagnosticsResponse response = recordFactory.newRecordInstance(GetDiagnosticsResponse.class);
|
|
GetDiagnosticsResponse response = recordFactory.newRecordInstance(GetDiagnosticsResponse.class);
|
|
response.addAllDiagnostics(job.getTask(taskAttemptId.getTaskId()).getAttempt(taskAttemptId).getDiagnostics());
|
|
response.addAllDiagnostics(job.getTask(taskAttemptId.getTaskId()).getAttempt(taskAttemptId).getDiagnostics());
|
|
@@ -320,7 +326,7 @@ public class HistoryClientService extends AbstractService {
|
|
TaskType taskType = request.getTaskType();
|
|
TaskType taskType = request.getTaskType();
|
|
|
|
|
|
GetTaskReportsResponse response = recordFactory.newRecordInstance(GetTaskReportsResponse.class);
|
|
GetTaskReportsResponse response = recordFactory.newRecordInstance(GetTaskReportsResponse.class);
|
|
- Job job = verifyAndGetJob(jobId);
|
|
|
|
|
|
+ Job job = verifyAndGetJob(jobId, true);
|
|
Collection<Task> tasks = job.getTasks(taskType).values();
|
|
Collection<Task> tasks = job.getTasks(taskType).values();
|
|
for (Task task : tasks) {
|
|
for (Task task : tasks) {
|
|
response.addTaskReport(task.getReport());
|
|
response.addTaskReport(task.getReport());
|