Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit208a5be

Browse files
fix: improve duplicate template version name error (#14572)
1 parentc249174 commit208a5be

File tree

2 files changed

+37
-9
lines changed

2 files changed

+37
-9
lines changed

‎coderd/templateversions.go

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1448,11 +1448,19 @@ func (api *API) postTemplateVersionsByOrganization(rw http.ResponseWriter, r *ht
14481448
UserVariableValues:req.UserVariableValues,
14491449
})
14501450
iferr!=nil {
1451-
returnxerrors.Errorf("marshal job input: %w",err)
1451+
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
1452+
Message:"Internal error creating template version.",
1453+
Detail:xerrors.Errorf("marshal job input: %w",err).Error(),
1454+
})
1455+
returnerr
14521456
}
14531457
traceMetadataRaw,err:=json.Marshal(tracing.MetadataFromContext(ctx))
14541458
iferr!=nil {
1455-
returnxerrors.Errorf("marshal job metadata: %w",err)
1459+
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
1460+
Message:"Internal error creating template version.",
1461+
Detail:xerrors.Errorf("marshal job metadata: %w",err).Error(),
1462+
})
1463+
returnerr
14561464
}
14571465

14581466
provisionerJob,err=tx.InsertProvisionerJob(ctx, database.InsertProvisionerJobParams{
@@ -1473,7 +1481,11 @@ func (api *API) postTemplateVersionsByOrganization(rw http.ResponseWriter, r *ht
14731481
},
14741482
})
14751483
iferr!=nil {
1476-
returnxerrors.Errorf("insert provisioner job: %w",err)
1484+
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
1485+
Message:"Internal error creating template version.",
1486+
Detail:xerrors.Errorf("insert provisioner job: %w",err).Error(),
1487+
})
1488+
returnerr
14771489
}
14781490

14791491
vartemplateID uuid.NullUUID
@@ -1501,20 +1513,36 @@ func (api *API) postTemplateVersionsByOrganization(rw http.ResponseWriter, r *ht
15011513
CreatedBy:apiKey.UserID,
15021514
})
15031515
iferr!=nil {
1504-
returnxerrors.Errorf("insert template version: %w",err)
1516+
ifdatabase.IsUniqueViolation(err,database.UniqueTemplateVersionsTemplateIDNameKey) {
1517+
httpapi.Write(ctx,rw,http.StatusConflict, codersdk.Response{
1518+
Message:fmt.Sprintf("A template version with name %q already exists for this template.",req.Name),
1519+
Validations: []codersdk.ValidationError{{
1520+
Field:"name",
1521+
Detail:"This value is already in use and should be unique.",
1522+
}},
1523+
})
1524+
returnerr
1525+
}
1526+
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
1527+
Message:"Internal error creating template version.",
1528+
Detail:xerrors.Errorf("insert template version: %w",err).Error(),
1529+
})
1530+
returnerr
15051531
}
15061532

15071533
templateVersion,err=tx.GetTemplateVersionByID(ctx,templateVersionID)
15081534
iferr!=nil {
1509-
returnxerrors.Errorf("fetched inserted template version: %w",err)
1535+
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
1536+
Message:"Internal error creating template version.",
1537+
Detail:xerrors.Errorf("fetched inserted template version: %w",err).Error(),
1538+
})
1539+
returnerr
15101540
}
15111541

15121542
returnnil
15131543
},nil)
15141544
iferr!=nil {
1515-
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
1516-
Message:err.Error(),
1517-
})
1545+
// Each failure case in the tx should have already written a response.
15181546
return
15191547
}
15201548
aReq.New=templateVersion

‎provisionerd/runner/runner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ func (r *Runner) Run() {
222222
err:=r.sender.CompleteJob(ctx,r.completedJob)
223223
iferr!=nil {
224224
r.logger.Error(ctx,"sending CompletedJob failed",slog.Error(err))
225-
err=r.sender.FailJob(ctx,r.failedJobf("internal provisionerserver error"))
225+
err=r.sender.FailJob(ctx,r.failedJobf("internal provisionerserver error: %s",err))
226226
iferr!=nil {
227227
r.logger.Error(ctx,"sending FailJob failed (while CompletedJob)",slog.Error(err))
228228
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp