private void processOneJob()

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