Filter pruned upgrade jobs from responses
This commit is contained in:
@@ -259,9 +259,10 @@ async function readStates(): Promise<UpgradeJobState[]> {
|
||||
const entries = loadedStates
|
||||
.filter((entry): entry is { jobName: string; state: UpgradeJobState } => Boolean(entry))
|
||||
.sort((a, b) => new Date(b.state.updatedAt).getTime() - new Date(a.state.updatedAt).getTime());
|
||||
await pruneFinishedJobs(jobsRoot, entries);
|
||||
const prunedJobNames = await pruneFinishedJobs(jobsRoot, entries);
|
||||
|
||||
return entries
|
||||
.filter(entry => !prunedJobNames.has(entry.jobName))
|
||||
.map(entry => entry.state)
|
||||
.sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
|
||||
}
|
||||
@@ -269,11 +270,12 @@ async function readStates(): Promise<UpgradeJobState[]> {
|
||||
async function pruneFinishedJobs(
|
||||
jobsRoot: string,
|
||||
entries: Array<{ jobName: string; state: UpgradeJobState }>,
|
||||
): Promise<void> {
|
||||
if (!Number.isFinite(HISTORY_LIMIT) || HISTORY_LIMIT < 1) return;
|
||||
): Promise<Set<string>> {
|
||||
const prunedJobNames = new Set<string>();
|
||||
if (!Number.isFinite(HISTORY_LIMIT) || HISTORY_LIMIT < 1) return prunedJobNames;
|
||||
const finished = entries.filter(entry => !RUNNING_STATUSES.has(entry.state.status));
|
||||
const staleFinished = finished.slice(HISTORY_LIMIT);
|
||||
if (staleFinished.length === 0) return;
|
||||
if (staleFinished.length === 0) return prunedJobNames;
|
||||
|
||||
await Promise.all(staleFinished.map(async entry => {
|
||||
const targetDir = path.join(jobsRoot, entry.jobName);
|
||||
@@ -281,7 +283,9 @@ async function pruneFinishedJobs(
|
||||
const resolvedTarget = path.resolve(targetDir);
|
||||
if (!resolvedTarget.startsWith(`${resolvedRoot}${path.sep}`)) return;
|
||||
await fs.rm(resolvedTarget, { recursive: true, force: true });
|
||||
prunedJobNames.add(entry.jobName);
|
||||
}));
|
||||
return prunedJobNames;
|
||||
}
|
||||
|
||||
async function normalizeStaleState(state: UpgradeJobState, statePath: string): Promise<UpgradeJobState> {
|
||||
|
||||
Reference in New Issue
Block a user