- Adds two new crawl finished state, stopped_by_user and stopped_quota_reached - Tracking other possible 'stop reasons' in operator, though not making them distinct states for now. - Updated frontend with 'Stopped by User' and 'Stopped: Time Quota Reached', shown with same icon as current partial_complete - Added migration of partial_complete to either stopped_by_user or complete (no historical quota data available) - Addresses edge case in scaling: if crawl never scaled (no redis entry, no pod), automatically scale down - Edge case in status: if crawl is somehow 'canceled' but not deleted, immediately delete crawl object and begin finalizing. --------- Co-authored-by: Tessa Walsh <tessa@bitarchivist.net>
29 lines
591 B
TypeScript
29 lines
591 B
TypeScript
import type { CrawlState } from "../types/crawler";
|
|
export const activeCrawlStates: CrawlState[] = [
|
|
"starting",
|
|
"waiting_org_limit",
|
|
"waiting_capacity",
|
|
"running",
|
|
"generate-wacz",
|
|
"uploading-wacz",
|
|
"pending-wait",
|
|
"stopping",
|
|
];
|
|
|
|
export const finishedCrawlStates: CrawlState[] = [
|
|
"complete",
|
|
"stopped_by_user",
|
|
"stopped_quota_reached",
|
|
];
|
|
|
|
export const inactiveCrawlStates: CrawlState[] = [
|
|
...finishedCrawlStates,
|
|
"canceled",
|
|
"skipped_quota_reached",
|
|
"failed",
|
|
];
|
|
|
|
export function isActive(state: CrawlState) {
|
|
return activeCrawlStates.includes(state);
|
|
}
|