/** * Given a jobId, returns the N most recent events in its history in the cluster. */ @Override public List<TaskStatusEvent> getJobHistory(final JobId jobId) throws JobDoesNotExistException { return getJobHistory(jobId, null); }
private List<TaskStatus.State> getPreviousJobStates(final JobId jobId, final String host, final int maxStates) { List<TaskStatus.State> previousStates; try { final List<TaskStatusEvent> jobHistory = getJobHistory(jobId, host); final List<TaskStatusEvent> cappedJobHistory = jobHistory.subList( 0, Math.min(maxStates, jobHistory.size())); final Function<TaskStatusEvent, TaskStatus.State> statusesToStrings = new Function<TaskStatusEvent, TaskStatus.State>() { @Override public TaskStatus.State apply(@Nullable TaskStatusEvent input) { if (input != null) { return input.getStatus().getState(); } return null; } }; previousStates = Lists.transform(cappedJobHistory, statusesToStrings); } catch (JobDoesNotExistException ignored) { previousStates = emptyList(); } return previousStates; } }