1
0
Fork 0
forked from forgejo/forgejo

Package registry changes (#19305)

* removed debug logs
* fixed SELECT
* removed unneeded error type
* use common SearchVersions method
* remove empty container upload versions
* return err
This commit is contained in:
KN4CK3R 2022-04-06 03:32:09 +02:00 committed by GitHub
parent 8ddcd37f13
commit 5e242e021b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 185 additions and 150 deletions

View file

@ -10,6 +10,7 @@ import (
packages_model "code.gitea.io/gitea/models/packages"
container_model "code.gitea.io/gitea/models/packages/container"
"code.gitea.io/gitea/modules/util"
)
// Cleanup removes expired container data
@ -43,10 +44,7 @@ func cleanupExpiredUploadedBlobs(ctx context.Context, olderThan time.Duration) e
return err
}
versions := make(map[int64]struct{})
for _, pf := range pfs {
versions[pf.VersionID] = struct{}{}
if err := packages_model.DeleteAllProperties(ctx, packages_model.PropertyTypeFile, pf.ID); err != nil {
return err
}
@ -55,19 +53,26 @@ func cleanupExpiredUploadedBlobs(ctx context.Context, olderThan time.Duration) e
}
}
for versionID := range versions {
has, err := packages_model.HasVersionFileReferences(ctx, versionID)
if err != nil {
pvs, _, err := packages_model.SearchVersions(ctx, &packages_model.PackageSearchOptions{
Type: packages_model.TypeContainer,
Version: packages_model.SearchValue{
ExactMatch: true,
Value: container_model.UploadVersion,
},
IsInternal: true,
HasFiles: util.OptionalBoolFalse,
})
if err != nil {
return err
}
for _, pv := range pvs {
if err := packages_model.DeleteAllProperties(ctx, packages_model.PropertyTypeVersion, pv.ID); err != nil {
return err
}
if !has {
if err := packages_model.DeleteAllProperties(ctx, packages_model.PropertyTypeVersion, versionID); err != nil {
return err
}
if err := packages_model.DeleteVersionByID(ctx, versionID); err != nil {
return err
}
if err := packages_model.DeleteVersionByID(ctx, pv.ID); err != nil {
return err
}
}