in server/src/main/java/org/apache/cassandra/sidecar/restore/RestoreJobDiscoverer.java [322:356]
private void processOneJob(RestoreJob job, RestoreJobManagerGroup restoreJobManagers, RunContext context)
{
if (jobIdsByDay.shouldLogJob(job))
{
LOGGER.info("Found job. jobId={} job={}", job.jobId, job);
}
switch (job.status)
{
case STAGED:
// unset the flag, so that it can re-discover the slices when the job status changes to a ready status
jobIdsByDay.unsetSlicesDiscovered(job); // no break by design
case CREATED:
case STAGE_READY:
case IMPORT_READY:
if (job.hasExpired(context.nowMillis))
{
abortExpiredJob(job, restoreJobManagers, context);
break; // do not proceed further if the job has expired
}
// find the oldest non-completed job
context.earliestInDays = Math.max(context.earliestInDays, delta(context.today, job.createdAt));
restoreJobManagers.updateRestoreJob(job);
processSidecarManagedJobMaybe(job);
inflightJobsCount += 1;
break;
case FAILED:
case ABORTED:
case SUCCEEDED:
finalizeJob(restoreJobManagers, job);
break;
default:
LOGGER.warn("Encountered unknown job status. jobId={} status={}", job.jobId, job.status);
}
}