MCPcopy Index your code
hub / github.com/coder/coder / patchCancelTemplateVersion

Method patchCancelTemplateVersion

coderd/templateversions.go:232–278  ·  view source on GitHub ↗

@Summary Cancel template version by ID @ID cancel-template-version-by-id @Security CoderSessionToken @Produce json @Tags Templates @Param templateversion path string true "Template version ID" format(uuid) @Success 200 {object} codersdk.Response @Router /api/v2/templateversions/{templateversion}/can

(rw http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

230// @Success 200 {object} codersdk.Response
231// @Router /api/v2/templateversions/{templateversion}/cancel [patch]
232func (api *API) patchCancelTemplateVersion(rw http.ResponseWriter, r *http.Request) {
233 ctx := r.Context()
234 templateVersion := httpmw.TemplateVersionParam(r)
235
236 job, err := api.Database.GetProvisionerJobByID(ctx, templateVersion.JobID)
237 if err != nil {
238 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
239 Message: "Internal error fetching provisioner job.",
240 Detail: err.Error(),
241 })
242 return
243 }
244 if job.CompletedAt.Valid {
245 httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
246 Message: "Job has already completed!",
247 })
248 return
249 }
250 if job.CanceledAt.Valid {
251 httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
252 Message: "Job has already been marked as canceled!",
253 })
254 return
255 }
256 err = api.Database.UpdateProvisionerJobWithCancelByID(ctx, database.UpdateProvisionerJobWithCancelByIDParams{
257 ID: job.ID,
258 CanceledAt: sql.NullTime{
259 Time: dbtime.Now(),
260 Valid: true,
261 },
262 CompletedAt: sql.NullTime{
263 Time: dbtime.Now(),
264 // If the job is running, don't mark it completed!
265 Valid: !job.WorkerID.Valid,
266 },
267 })
268 if err != nil {
269 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
270 Message: "Internal error updating provisioner job.",
271 Detail: err.Error(),
272 })
273 return
274 }
275 httpapi.Write(ctx, rw, http.StatusOK, codersdk.Response{
276 Message: "Job has been marked as canceled...",
277 })
278}
279
280// @Summary Get rich parameters by template version
281// @ID get-rich-parameters-by-template-version

Callers

nothing calls this directly

Calls 7

TemplateVersionParamFunction · 0.92
WriteFunction · 0.92
NowFunction · 0.92
ContextMethod · 0.65
GetProvisionerJobByIDMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected