browsertrix/frontend/src/utils/crawler.ts
Ilya Kreymer dfba4b3940
Replace partial_complete -> stopped_by_user or stopped_quota_reached + operator edge cases (#1368)
- 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>
2023-11-14 11:17:16 -08:00

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);
}