Add run lifecycle report projection
This commit is contained in:
@@ -120,6 +120,7 @@ func (h *coreHandlers) register(mux *http.ServeMux) {
|
||||
mux.HandleFunc("/api/v1/server-instances/{id}", h.serverInstanceDetail)
|
||||
mux.HandleFunc("/api/v1/run/control/hello", h.runControlHello)
|
||||
mux.HandleFunc("/api/v1/run/control/heartbeat", h.requireRunSignature(h.runControlHeartbeat))
|
||||
mux.HandleFunc("/api/v1/run/lifecycle/report", h.requireRunSignature(h.runLifecycleReport))
|
||||
mux.HandleFunc("/api/v1/run/jobs/claim", h.requireRunSignature(h.runJobClaim))
|
||||
mux.HandleFunc("/api/v1/run/jobs/ack", h.requireRunSignature(h.runJobAck))
|
||||
mux.HandleFunc("/api/v1/run/jobs/progress", h.requireRunSignature(h.runJobProgress))
|
||||
@@ -1697,6 +1698,35 @@ func (h *coreHandlers) runControlHeartbeat(w http.ResponseWriter, r *http.Reques
|
||||
writeJSON(w, http.StatusOK, dto.RunControlHeartbeatFromDomain(result))
|
||||
}
|
||||
|
||||
// runLifecycleReport godoc
|
||||
// @Summary Report autonomous run lifecycle result
|
||||
// @Description Lets a registered run endpoint report an observed lifecycle terminal result without a platform-assigned job lease.
|
||||
// @Tags run
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param body body dto.RunLifecycleReportRequest true "Run lifecycle report request"
|
||||
// @Success 200 {object} dto.RunLifecycleReportResponse
|
||||
// @Failure 400 {object} dto.ErrorResponse
|
||||
// @Failure 405 {object} dto.ErrorResponse
|
||||
// @Router /api/v1/run/lifecycle/report [post]
|
||||
func (h *coreHandlers) runLifecycleReport(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != http.MethodPost {
|
||||
writeMethodNotAllowed(w, http.MethodPost)
|
||||
return
|
||||
}
|
||||
request, err := decodeJSON[dto.RunLifecycleReportRequest](r)
|
||||
if err != nil {
|
||||
writeDecodeError(w, err)
|
||||
return
|
||||
}
|
||||
result, err := h.core.ReportRunLifecycle(request.ToDomain())
|
||||
if err != nil {
|
||||
writeServiceError(w, err)
|
||||
return
|
||||
}
|
||||
writeJSON(w, http.StatusOK, dto.RunLifecycleReportFromDomain(result))
|
||||
}
|
||||
|
||||
// runJobClaim godoc
|
||||
// @Summary Claim one run job
|
||||
// @Description Lets a registered run endpoint claim one queued job assigned to it using the active session token.
|
||||
|
||||
Reference in New Issue
Block a user