in ambari-infra-manager/src/main/java/org/apache/ambari/infra/model/JobExecutionInfoResponse.java [73:111]
public JobExecutionInfoResponse(JobExecution jobExecution) {
this.jobExecutionId = jobExecution.getId();
this.jobInstanceId = jobExecution.getJobId();
this.jobParameters = DEFAULT_JOB_PARAMETERS_CONVERTER.getProperties(jobExecution.getJobParameters());
this.creationTime = toOffsetDateTime(jobExecution.getCreateTime());
this.startTime = toOffsetDateTime(jobExecution.getStartTime());
this.lastUpdatedTime = toOffsetDateTime(jobExecution.getLastUpdated());
this.endTime = toOffsetDateTime(jobExecution.getEndTime());
JobInstance jobInstance = jobExecution.getJobInstance();
this.batchStatus = jobExecution.getStatus();
this.restartable = batchStatus.isGreaterThan(BatchStatus.STOPPING) && batchStatus.isLessThan(BatchStatus.ABANDONED);
this.abandonable = batchStatus.isGreaterThan(BatchStatus.STARTED) && batchStatus != BatchStatus.ABANDONED;
this.stoppable = batchStatus.isLessThan(BatchStatus.STOPPING);
if (jobExecution.getExitStatus() != null) {
this.exitCode = jobExecution.getExitStatus().getExitCode();
this.exitDescription = jobExecution.getExitStatus().getExitDescription();
}
else {
this.exitCode = null;
this.exitDescription = null;
}
if(jobInstance != null) {
this.jobName = jobInstance.getJobName();
} else {
this.jobName = "?";
}
if(startTime != null && endTime != null) {
this.duration = Duration.between(startTime, endTime);
}
else {
this.duration = null;
}
this.failureExceptions = unmodifiableList(jobExecution.getFailureExceptions());
this.jobConfigurationName = jobExecution.getJobConfigurationName();
}