Skip to content

Commit

Permalink
fix(Job): fix Job.scheduleStatus fieldresolver
Browse files Browse the repository at this point in the history
Closes DCOS-38892
  • Loading branch information
Julian Gieseke authored and juliangieseke committed Jul 6, 2018
1 parent a811745 commit 5e1a515
Showing 1 changed file with 24 additions and 24 deletions.
48 changes: 24 additions & 24 deletions plugins/jobs/src/js/types/Job.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import {
JobDetailResponse as MetronomeJobDetailResponse,
GenericJobResponse as MetronmeGenericJobResponse,
JobResponse as MetronomeJobResponse,
JobStatus as MetronomeJobStatus,
Expand Down Expand Up @@ -176,20 +175,18 @@ export const JobFieldResolvers = {
},
scheduleStatus(job: MetronmeGenericJobResponse): JobStatus {
const scheduleConnection = JobScheduleConnectionTypeResolver(job.schedules);
const jobRunConnection = AddStatusToHistoryJobRuns(job);

if (isMetronomeJobDetailResponse(job)) {
const jobRunConnection = AddStatusToHistoryJobRuns(job);

if (jobRunConnection.longestRunningActiveRun !== null) {
return jobRunConnection.longestRunningActiveRun.status;
}
if (jobRunConnection.nodes.length > 0) {
const schedule = scheduleConnection.nodes[0];
if (jobRunConnection.longestRunningActiveRun !== null) {
return jobRunConnection.longestRunningActiveRun.status;
}

if (schedule != null && schedule.enabled) {
return "SCHEDULED";
}
}
if (
scheduleConnection.nodes.length > 0 &&
scheduleConnection.nodes[0] != null &&
scheduleConnection.nodes[0].enabled
) {
return "SCHEDULED";
}

if (scheduleConnection.nodes.length === 0) {
Expand All @@ -201,23 +198,26 @@ export const JobFieldResolvers = {
};

function AddStatusToHistoryJobRuns(
job: MetronomeJobDetailResponse
job: MetronmeGenericJobResponse
): JobRunConnection {
const { successfulFinishedRuns, failedFinishedRuns } = job.history;
let successfulFinishedRunsWithStatus: JobHistoryRun[] = [];
let failedFinishedRunsWithStatus: JobHistoryRun[] = [];
const activeRuns = job.activeRuns || [];

if (isMetronomeJobDetailResponse(job)) {
const { successfulFinishedRuns, failedFinishedRuns } = job.history;

const successfulFinishedRunsWithStatus: JobHistoryRun[] = successfulFinishedRuns.map(
run => ({ ...run, status: "COMPLETED" as MetronomeJobStatus }) // TODO: investiagte why we need to cast this
);
successfulFinishedRunsWithStatus = successfulFinishedRuns.map(
run => ({ ...run, status: "COMPLETED" as MetronomeJobStatus }) // TODO: investiagte why we need to cast this
);

const failedFinishedRunsWithStatus: JobHistoryRun[] = failedFinishedRuns.map(
run => ({
failedFinishedRunsWithStatus = failedFinishedRuns.map(run => ({
...run,
status: "FAILED" as MetronomeJobStatus
})
);

}));
}
return JobRunConnectionTypeResolver([
...job.activeRuns,
...activeRuns,
...successfulFinishedRunsWithStatus,
...failedFinishedRunsWithStatus
]);
Expand Down

0 comments on commit 5e1a515

Please sign in to comment.