Skip to content

Commit f3d41c6

Browse files
authored
Remove db.DefaultContext in routers/ and cmd/ (#26076)
Now, the only remaining usages of `models.db.DefaultContext` are in - `modules` - `models` - `services`
1 parent 24c3bb9 commit f3d41c6

File tree

11 files changed

+121
-128
lines changed

11 files changed

+121
-128
lines changed

cmd/admin.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package cmd
66

77
import (
8+
"context"
89
"errors"
910
"fmt"
1011
"net/url"
@@ -373,7 +374,7 @@ func runRepoSyncReleases(_ *cli.Context) error {
373374
continue
374375
}
375376

376-
oldnum, err := getReleaseCount(repo.ID)
377+
oldnum, err := getReleaseCount(ctx, repo.ID)
377378
if err != nil {
378379
log.Warn(" GetReleaseCountByRepoID: %v", err)
379380
}
@@ -385,7 +386,7 @@ func runRepoSyncReleases(_ *cli.Context) error {
385386
continue
386387
}
387388

388-
count, err = getReleaseCount(repo.ID)
389+
count, err = getReleaseCount(ctx, repo.ID)
389390
if err != nil {
390391
log.Warn(" GetReleaseCountByRepoID: %v", err)
391392
gitRepo.Close()
@@ -401,9 +402,9 @@ func runRepoSyncReleases(_ *cli.Context) error {
401402
return nil
402403
}
403404

404-
func getReleaseCount(id int64) (int64, error) {
405+
func getReleaseCount(ctx context.Context, id int64) (int64, error) {
405406
return repo_model.GetReleaseCountByRepoID(
406-
db.DefaultContext,
407+
ctx,
407408
id,
408409
repo_model.FindReleasesOptions{
409410
IncludeTags: true,

routers/api/packages/composer/composer.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func SearchPackages(ctx *context.Context) {
114114
// EnumeratePackages lists all package names
115115
// https://packagist.org/apidoc#list-packages
116116
func EnumeratePackages(ctx *context.Context) {
117-
ps, err := packages_model.GetPackagesByType(db.DefaultContext, ctx.Package.Owner.ID, packages_model.TypeComposer)
117+
ps, err := packages_model.GetPackagesByType(ctx, ctx.Package.Owner.ID, packages_model.TypeComposer)
118118
if err != nil {
119119
apiError(ctx, http.StatusInternalServerError, err)
120120
return

routers/api/packages/conan/conan.go

+46-50
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package conan
55

66
import (
7+
std_ctx "context"
78
"fmt"
89
"io"
910
"net/http"
@@ -602,67 +603,62 @@ func DeletePackageV2(ctx *context.Context) {
602603
}
603604

604605
func deleteRecipeOrPackage(apictx *context.Context, rref *conan_module.RecipeReference, ignoreRecipeRevision bool, pref *conan_module.PackageReference, ignorePackageRevision bool) error {
605-
ctx, committer, err := db.TxContext(db.DefaultContext)
606-
if err != nil {
607-
return err
608-
}
609-
defer committer.Close()
610-
611-
pv, err := packages_model.GetVersionByNameAndVersion(ctx, apictx.Package.Owner.ID, packages_model.TypeConan, rref.Name, rref.Version)
612-
if err != nil {
613-
return err
614-
}
606+
var pd *packages_model.PackageDescriptor
607+
versionDeleted := false
615608

616-
pd, err := packages_model.GetPackageDescriptor(ctx, pv)
617-
if err != nil {
618-
return err
619-
}
609+
err := db.WithTx(apictx, func(ctx std_ctx.Context) error {
610+
pv, err := packages_model.GetVersionByNameAndVersion(ctx, apictx.Package.Owner.ID, packages_model.TypeConan, rref.Name, rref.Version)
611+
if err != nil {
612+
return err
613+
}
620614

621-
filter := map[string]string{
622-
conan_module.PropertyRecipeUser: rref.User,
623-
conan_module.PropertyRecipeChannel: rref.Channel,
624-
}
625-
if !ignoreRecipeRevision {
626-
filter[conan_module.PropertyRecipeRevision] = rref.RevisionOrDefault()
627-
}
628-
if pref != nil {
629-
filter[conan_module.PropertyPackageReference] = pref.Reference
630-
if !ignorePackageRevision {
631-
filter[conan_module.PropertyPackageRevision] = pref.RevisionOrDefault()
615+
pd, err = packages_model.GetPackageDescriptor(ctx, pv)
616+
if err != nil {
617+
return err
632618
}
633-
}
634619

635-
pfs, _, err := packages_model.SearchFiles(ctx, &packages_model.PackageFileSearchOptions{
636-
VersionID: pv.ID,
637-
Properties: filter,
638-
})
639-
if err != nil {
640-
return err
641-
}
642-
if len(pfs) == 0 {
643-
return conan_model.ErrPackageReferenceNotExist
644-
}
620+
filter := map[string]string{
621+
conan_module.PropertyRecipeUser: rref.User,
622+
conan_module.PropertyRecipeChannel: rref.Channel,
623+
}
624+
if !ignoreRecipeRevision {
625+
filter[conan_module.PropertyRecipeRevision] = rref.RevisionOrDefault()
626+
}
627+
if pref != nil {
628+
filter[conan_module.PropertyPackageReference] = pref.Reference
629+
if !ignorePackageRevision {
630+
filter[conan_module.PropertyPackageRevision] = pref.RevisionOrDefault()
631+
}
632+
}
645633

646-
for _, pf := range pfs {
647-
if err := packages_service.DeletePackageFile(ctx, pf); err != nil {
634+
pfs, _, err := packages_model.SearchFiles(ctx, &packages_model.PackageFileSearchOptions{
635+
VersionID: pv.ID,
636+
Properties: filter,
637+
})
638+
if err != nil {
648639
return err
649640
}
650-
}
651-
652-
versionDeleted := false
653-
has, err := packages_model.HasVersionFileReferences(ctx, pv.ID)
654-
if err != nil {
655-
return err
656-
}
657-
if !has {
658-
versionDeleted = true
641+
if len(pfs) == 0 {
642+
return conan_model.ErrPackageReferenceNotExist
643+
}
659644

660-
if err := packages_service.DeletePackageVersionAndReferences(ctx, pv); err != nil {
645+
for _, pf := range pfs {
646+
if err := packages_service.DeletePackageFile(ctx, pf); err != nil {
647+
return err
648+
}
649+
}
650+
has, err := packages_model.HasVersionFileReferences(ctx, pv.ID)
651+
if err != nil {
661652
return err
662653
}
663-
}
654+
if !has {
655+
versionDeleted = true
664656

665-
if err := committer.Commit(); err != nil {
657+
return packages_service.DeletePackageVersionAndReferences(ctx, pv)
658+
}
659+
return nil
660+
})
661+
if err != nil {
666662
return err
667663
}
668664

routers/api/packages/container/blob.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,19 @@ var uploadVersionMutex sync.Mutex
2626

2727
// saveAsPackageBlob creates a package blob from an upload
2828
// The uploaded blob gets stored in a special upload version to link them to the package/image
29-
func saveAsPackageBlob(hsr packages_module.HashedSizeReader, pci *packages_service.PackageCreationInfo) (*packages_model.PackageBlob, error) {
29+
func saveAsPackageBlob(ctx context.Context, hsr packages_module.HashedSizeReader, pci *packages_service.PackageCreationInfo) (*packages_model.PackageBlob, error) {
3030
pb := packages_service.NewPackageBlob(hsr)
3131

3232
exists := false
3333

3434
contentStore := packages_module.NewContentStore()
3535

36-
uploadVersion, err := getOrCreateUploadVersion(&pci.PackageInfo)
36+
uploadVersion, err := getOrCreateUploadVersion(ctx, &pci.PackageInfo)
3737
if err != nil {
3838
return nil, err
3939
}
4040

41-
err = db.WithTx(db.DefaultContext, func(ctx context.Context) error {
41+
err = db.WithTx(ctx, func(ctx context.Context) error {
4242
if err := packages_service.CheckSizeQuotaExceeded(ctx, pci.Creator, pci.Owner, packages_model.TypeContainer, hsr.Size()); err != nil {
4343
return err
4444
}
@@ -79,24 +79,24 @@ func saveAsPackageBlob(hsr packages_module.HashedSizeReader, pci *packages_servi
7979
}
8080

8181
// mountBlob mounts the specific blob to a different package
82-
func mountBlob(pi *packages_service.PackageInfo, pb *packages_model.PackageBlob) error {
83-
uploadVersion, err := getOrCreateUploadVersion(pi)
82+
func mountBlob(ctx context.Context, pi *packages_service.PackageInfo, pb *packages_model.PackageBlob) error {
83+
uploadVersion, err := getOrCreateUploadVersion(ctx, pi)
8484
if err != nil {
8585
return err
8686
}
8787

88-
return db.WithTx(db.DefaultContext, func(ctx context.Context) error {
88+
return db.WithTx(ctx, func(ctx context.Context) error {
8989
return createFileForBlob(ctx, uploadVersion, pb)
9090
})
9191
}
9292

93-
func getOrCreateUploadVersion(pi *packages_service.PackageInfo) (*packages_model.PackageVersion, error) {
93+
func getOrCreateUploadVersion(ctx context.Context, pi *packages_service.PackageInfo) (*packages_model.PackageVersion, error) {
9494
var uploadVersion *packages_model.PackageVersion
9595

9696
// FIXME: Replace usage of mutex with database transaction
9797
// https://github.com/go-gitea/gitea/pull/21862
9898
uploadVersionMutex.Lock()
99-
err := db.WithTx(db.DefaultContext, func(ctx context.Context) error {
99+
err := db.WithTx(ctx, func(ctx context.Context) error {
100100
created := true
101101
p := &packages_model.Package{
102102
OwnerID: pi.Owner.ID,
@@ -172,8 +172,8 @@ func createFileForBlob(ctx context.Context, pv *packages_model.PackageVersion, p
172172
return nil
173173
}
174174

175-
func deleteBlob(ownerID int64, image, digest string) error {
176-
return db.WithTx(db.DefaultContext, func(ctx context.Context) error {
175+
func deleteBlob(ctx context.Context, ownerID int64, image, digest string) error {
176+
return db.WithTx(ctx, func(ctx context.Context) error {
177177
pfds, err := container_model.GetContainerBlobs(ctx, &container_model.BlobSearchOptions{
178178
OwnerID: ownerID,
179179
Image: image,

routers/api/packages/container/container.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ func InitiateUploadBlob(ctx *context.Context) {
210210
}
211211

212212
if accessible {
213-
if err := mountBlob(&packages_service.PackageInfo{Owner: ctx.Package.Owner, Name: image}, blob.Blob); err != nil {
213+
if err := mountBlob(ctx, &packages_service.PackageInfo{Owner: ctx.Package.Owner, Name: image}, blob.Blob); err != nil {
214214
apiError(ctx, http.StatusInternalServerError, err)
215215
return
216216
}
@@ -239,7 +239,7 @@ func InitiateUploadBlob(ctx *context.Context) {
239239
return
240240
}
241241

242-
if _, err := saveAsPackageBlob(
242+
if _, err := saveAsPackageBlob(ctx,
243243
buf,
244244
&packages_service.PackageCreationInfo{
245245
PackageInfo: packages_service.PackageInfo{
@@ -384,7 +384,7 @@ func EndUploadBlob(ctx *context.Context) {
384384
return
385385
}
386386

387-
if _, err := saveAsPackageBlob(
387+
if _, err := saveAsPackageBlob(ctx,
388388
uploader,
389389
&packages_service.PackageCreationInfo{
390390
PackageInfo: packages_service.PackageInfo{
@@ -502,7 +502,7 @@ func DeleteBlob(ctx *context.Context) {
502502
return
503503
}
504504

505-
if err := deleteBlob(ctx.Package.Owner.ID, ctx.Params("image"), d); err != nil {
505+
if err := deleteBlob(ctx, ctx.Package.Owner.ID, ctx.Params("image"), d); err != nil {
506506
apiError(ctx, http.StatusInternalServerError, err)
507507
return
508508
}
@@ -543,7 +543,7 @@ func UploadManifest(ctx *context.Context) {
543543
return
544544
}
545545

546-
digest, err := processManifest(mci, buf)
546+
digest, err := processManifest(ctx, mci, buf)
547547
if err != nil {
548548
var namedError *namedError
549549
if errors.As(err, &namedError) {

routers/api/packages/container/manifest.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ type manifestCreationInfo struct {
5050
Properties map[string]string
5151
}
5252

53-
func processManifest(mci *manifestCreationInfo, buf *packages_module.HashedBuffer) (string, error) {
53+
func processManifest(ctx context.Context, mci *manifestCreationInfo, buf *packages_module.HashedBuffer) (string, error) {
5454
var index oci.Index
5555
if err := json.NewDecoder(buf).Decode(&index); err != nil {
5656
return "", err
@@ -72,14 +72,14 @@ func processManifest(mci *manifestCreationInfo, buf *packages_module.HashedBuffe
7272
}
7373

7474
if isImageManifestMediaType(mci.MediaType) {
75-
return processImageManifest(mci, buf)
75+
return processImageManifest(ctx, mci, buf)
7676
} else if isImageIndexMediaType(mci.MediaType) {
77-
return processImageManifestIndex(mci, buf)
77+
return processImageManifestIndex(ctx, mci, buf)
7878
}
7979
return "", errManifestInvalid
8080
}
8181

82-
func processImageManifest(mci *manifestCreationInfo, buf *packages_module.HashedBuffer) (string, error) {
82+
func processImageManifest(ctx context.Context, mci *manifestCreationInfo, buf *packages_module.HashedBuffer) (string, error) {
8383
manifestDigest := ""
8484

8585
err := func() error {
@@ -92,7 +92,7 @@ func processImageManifest(mci *manifestCreationInfo, buf *packages_module.Hashed
9292
return err
9393
}
9494

95-
ctx, committer, err := db.TxContext(db.DefaultContext)
95+
ctx, committer, err := db.TxContext(ctx)
9696
if err != nil {
9797
return err
9898
}
@@ -181,7 +181,7 @@ func processImageManifest(mci *manifestCreationInfo, buf *packages_module.Hashed
181181
return err
182182
}
183183

184-
if err := notifyPackageCreate(mci.Creator, pv); err != nil {
184+
if err := notifyPackageCreate(ctx, mci.Creator, pv); err != nil {
185185
return err
186186
}
187187

@@ -196,7 +196,7 @@ func processImageManifest(mci *manifestCreationInfo, buf *packages_module.Hashed
196196
return manifestDigest, nil
197197
}
198198

199-
func processImageManifestIndex(mci *manifestCreationInfo, buf *packages_module.HashedBuffer) (string, error) {
199+
func processImageManifestIndex(ctx context.Context, mci *manifestCreationInfo, buf *packages_module.HashedBuffer) (string, error) {
200200
manifestDigest := ""
201201

202202
err := func() error {
@@ -209,7 +209,7 @@ func processImageManifestIndex(mci *manifestCreationInfo, buf *packages_module.H
209209
return err
210210
}
211211

212-
ctx, committer, err := db.TxContext(db.DefaultContext)
212+
ctx, committer, err := db.TxContext(ctx)
213213
if err != nil {
214214
return err
215215
}
@@ -285,7 +285,7 @@ func processImageManifestIndex(mci *manifestCreationInfo, buf *packages_module.H
285285
return err
286286
}
287287

288-
if err := notifyPackageCreate(mci.Creator, pv); err != nil {
288+
if err := notifyPackageCreate(ctx, mci.Creator, pv); err != nil {
289289
return err
290290
}
291291

@@ -300,13 +300,13 @@ func processImageManifestIndex(mci *manifestCreationInfo, buf *packages_module.H
300300
return manifestDigest, nil
301301
}
302302

303-
func notifyPackageCreate(doer *user_model.User, pv *packages_model.PackageVersion) error {
304-
pd, err := packages_model.GetPackageDescriptor(db.DefaultContext, pv)
303+
func notifyPackageCreate(ctx context.Context, doer *user_model.User, pv *packages_model.PackageVersion) error {
304+
pd, err := packages_model.GetPackageDescriptor(ctx, pv)
305305
if err != nil {
306306
return err
307307
}
308308

309-
notification.NotifyPackageCreate(db.DefaultContext, doer, pd)
309+
notification.NotifyPackageCreate(ctx, doer, pd)
310310

311311
return nil
312312
}

0 commit comments

Comments
 (0)