Skip to content

Commit bc8f1e3

Browse files
author
yeyuanjie
committed
cleanup by rule error
1 parent 3bb2acd commit bc8f1e3

File tree

3 files changed

+22
-29
lines changed

3 files changed

+22
-29
lines changed

models/packages/package_version.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ type PackageSearchOptions struct {
180180
RepoID int64
181181
Type Type
182182
PackageID int64
183-
LtVersionID int64
184183
Name SearchValue // only results with the specific name are found
185184
Version SearchValue // only results with the specific version are found
186185
Properties map[string]string // only results are found which contain all listed version properties with the specific value
@@ -211,9 +210,6 @@ func (opts *PackageSearchOptions) ToConds() builder.Cond {
211210
if opts.PackageID != 0 {
212211
cond = cond.And(builder.Eq{"package.id": opts.PackageID})
213212
}
214-
if opts.LtVersionID != 0 {
215-
cond = cond.And(builder.Lt{"package_version.id": opts.LtVersionID})
216-
}
217213
if opts.Name.Value != "" {
218214
if opts.Name.ExactMatch {
219215
cond = cond.And(builder.Eq{"package.lower_name": strings.ToLower(opts.Name.Value)})

routers/web/shared/packages/packages.go

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"code.gitea.io/gitea/modules/log"
1515
"code.gitea.io/gitea/modules/optional"
1616
"code.gitea.io/gitea/modules/templates"
17-
"code.gitea.io/gitea/modules/util"
1817
"code.gitea.io/gitea/modules/web"
1918
"code.gitea.io/gitea/services/context"
2019
"code.gitea.io/gitea/services/forms"
@@ -155,23 +154,24 @@ func SetRulePreviewContext(ctx *context.Context, owner *user_model.User) {
155154

156155
versionsToRemove := make([]*packages_model.PackageDescriptor, 0, 10)
157156

158-
limit := 200
159157
for _, p := range packages {
160-
lastVersionID := int64(0)
158+
skip := pcr.KeepCount
161159
for {
162160
pvs, _, err := packages_model.SearchVersions(ctx, &packages_model.PackageSearchOptions{
163-
PackageID: p.ID,
164-
IsInternal: optional.Some(false),
165-
Sort: packages_model.SortCreatedDesc,
166-
Paginator: db.NewAbsoluteListOptions(util.Iif(lastVersionID > 0, 0, pcr.KeepCount), limit),
167-
LtVersionID: lastVersionID,
161+
PackageID: p.ID,
162+
IsInternal: optional.Some(false),
163+
Sort: packages_model.SortCreatedDesc,
164+
Paginator: db.NewAbsoluteListOptions(skip, 200),
168165
})
169166
if err != nil {
170167
ctx.ServerError("SearchVersions", err)
171168
return
172169
}
170+
if len(pvs) == 0 {
171+
break
172+
}
173173
for _, pv := range pvs {
174-
lastVersionID = pv.ID
174+
skip += 1
175175
if skip, err := container_service.ShouldBeSkipped(ctx, pcr, p, pv); err != nil {
176176
ctx.ServerError("ShouldBeSkipped", err)
177177
return
@@ -201,9 +201,7 @@ func SetRulePreviewContext(ctx *context.Context, owner *user_model.User) {
201201
}
202202
versionsToRemove = append(versionsToRemove, pd)
203203
}
204-
if len(pvs) < limit {
205-
break
206-
}
204+
207205
}
208206
}
209207

services/packages/cleanup/cleanup.go

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"code.gitea.io/gitea/modules/log"
1515
"code.gitea.io/gitea/modules/optional"
1616
packages_module "code.gitea.io/gitea/modules/packages"
17-
"code.gitea.io/gitea/modules/util"
1817
packages_service "code.gitea.io/gitea/services/packages"
1918
alpine_service "code.gitea.io/gitea/services/packages/alpine"
2019
arch_service "code.gitea.io/gitea/services/packages/arch"
@@ -59,23 +58,25 @@ func ExecuteCleanupRules(outerCtx context.Context) error {
5958
}
6059

6160
anyVersionDeleted := false
62-
limit := 200
6361
for _, p := range packages {
64-
lastVersionID := int64(0)
62+
skip := pcr.KeepCount
6563
for {
6664
pvs, _, err := packages_model.SearchVersions(ctx, &packages_model.PackageSearchOptions{
67-
PackageID: p.ID,
68-
IsInternal: optional.Some(false),
69-
Sort: packages_model.SortCreatedDesc,
70-
Paginator: db.NewAbsoluteListOptions(util.Iif(lastVersionID > 0, 0, pcr.KeepCount), limit),
71-
LtVersionID: lastVersionID,
65+
PackageID: p.ID,
66+
IsInternal: optional.Some(false),
67+
Sort: packages_model.SortCreatedDesc,
68+
Paginator: db.NewAbsoluteListOptions(skip, 200),
7269
})
7370
if err != nil {
7471
return fmt.Errorf("CleanupRule [%d]: SearchVersions failed: %w", pcr.ID, err)
7572
}
73+
if len(pvs) == 0 {
74+
break
75+
}
76+
log.Debug("%v pvs %v", skip, len(pvs))
7677
versionDeleted := false
78+
skip += len(pvs)
7779
for _, pv := range pvs {
78-
lastVersionID = pv.ID
7980
if pcr.Type == packages_model.TypeContainer {
8081
if skip, err := container_service.ShouldBeSkipped(ctx, pcr, p, pv); err != nil {
8182
return fmt.Errorf("CleanupRule [%d]: container.ShouldBeSkipped failed: %w", pcr.ID, err)
@@ -108,7 +109,7 @@ func ExecuteCleanupRules(outerCtx context.Context) error {
108109
if err := packages_service.DeletePackageVersionAndReferences(ctx, pv); err != nil {
109110
return fmt.Errorf("CleanupRule [%d]: DeletePackageVersionAndReferences failed: %w", pcr.ID, err)
110111
}
111-
112+
skip -= 1
112113
versionDeleted = true
113114
anyVersionDeleted = true
114115
}
@@ -124,9 +125,7 @@ func ExecuteCleanupRules(outerCtx context.Context) error {
124125
}
125126
}
126127
}
127-
if len(pvs) < limit {
128-
break
129-
}
128+
130129
}
131130
}
132131

0 commit comments

Comments
 (0)