in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/api/akka/route/v1/JobsRoute.java [99:199]
public Route constructRoutes() {
return concat(
pathPrefix(JOBS_API_PREFIX, () -> concat(
// api/v1/jobs
pathEndOrSingleSlash(() -> concat(
// GET - list jobs
get(this::getJobsRoute),
// POST - submit a job
post(this::postJobsRoute)
)),
// api/v1/jobs/{jobId}
path(
PathMatchers.segment(),
(jobId) -> pathEndOrSingleSlash(() -> concat(
// GET - retrieve job detail by job ID
get(() -> getJobInstanceRoute(jobId)),
// DELETE - permanently kill a job.
delete(() -> deleteJobInstanceRoute(jobId)),
// reject post
post(() -> complete(StatusCodes.METHOD_NOT_ALLOWED))
))
),
path(PathMatchers.segment().slash("archivedWorkers"),
(jobId) -> pathEndOrSingleSlash(() -> concat(
get(()-> getArchivedWorkers(jobId))
))
),
// api/v1/jobs/actions/quickSubmit
path(
PathMatchers.segment("actions").slash("quickSubmit"),
() -> pathEndOrSingleSlash(
() ->
// POST - quick submit a job
post(this::postJobInstanceQuickSubmitRoute)
)
),
// api/v1/jobs/actions/postJobStatus
path(
PathMatchers.segment("actions").slash("postJobStatus"),
() -> pathEndOrSingleSlash(
() ->
// POST Job Status
post(this::postJobStatusRoute)
)
),
// api/v1/jobs/{jobId}/actions/scaleStage
path(
PathMatchers.segment().slash("actions").slash("scaleStage"),
(jobId) -> pathEndOrSingleSlash(
// POST - scale stage
() -> post(() -> postJobInstanceScaleStageRoute(jobId))
)
),
// api/v1/jobs/{jobId}/actions/resubmitWorker
path(
PathMatchers.segment().slash("actions").slash("resubmitWorker"),
(jobId) -> pathEndOrSingleSlash(
() ->
// POST - resubmit worker
post(() -> postJobInstanceResubmitWorkerRoute(jobId))
)
))
),
pathPrefix(CLUSTER_JOBS_API_PREFIX, (cluster) -> concat(
// api/v1/jobClusters/{clusterName}/jobs
pathEndOrSingleSlash(() -> concat(
// GET - list jobs
get(() -> getJobsRoute(Optional.of(cluster))),
// POST - submit a job
post(() -> postJobsRoute(Optional.of(cluster))))
),
// api/v1/jobClusters/{clusterName}/jobs/{jobId}
path(
PathMatchers.segment(),
(jobId) -> pathEndOrSingleSlash(() -> concat(
// GET - retrieve job detail by cluster & job ID
get(() -> getJobInstanceRoute(Optional.of(cluster), jobId)),
// reject post
post(() -> complete(StatusCodes.METHOD_NOT_ALLOWED))
)))
)
)
);
}