Skip to content

Commit cbf0ac5

Browse files
committed
clean up project metadata for tag retention policy after deletion
Signed-off-by: my036811 <[email protected]>
1 parent 6c620dc commit cbf0ac5

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/controller/retention/controller.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929
"github.com/goharbor/harbor/src/lib/retry"
3030
"github.com/goharbor/harbor/src/pkg"
3131
"github.com/goharbor/harbor/src/pkg/project"
32+
"github.com/goharbor/harbor/src/pkg/project/metadata"
3233
"github.com/goharbor/harbor/src/pkg/repository"
3334
"github.com/goharbor/harbor/src/pkg/retention"
3435
"github.com/goharbor/harbor/src/pkg/retention/policy"
@@ -80,14 +81,16 @@ type defaultController struct {
8081
launcher retention.Launcher
8182
projectManager project.Manager
8283
repositoryMgr repository.Manager
84+
projectMetaMgr metadata.Manager
8385
scheduler scheduler.Scheduler
8486
wp *lib.WorkerPool
8587
}
8688

8789
const (
8890
// SchedulerCallback ...
89-
SchedulerCallback = "RETENTION"
90-
schedulerVendorType = job.RetentionVendorType
91+
SchedulerCallback = "RETENTION"
92+
schedulerVendorType = job.RetentionVendorType
93+
retentionPolicyMetaKey = "retention_id"
9194
)
9295

9396
// TriggerParam ...
@@ -214,6 +217,7 @@ func (r *defaultController) DeleteRetention(ctx context.Context, id int64) error
214217
if err != nil {
215218
return err
216219
}
220+
217221
return r.manager.DeletePolicy(ctx, id)
218222
}
219223

@@ -459,6 +463,7 @@ func NewController() Controller {
459463
launcher: retentionLauncher,
460464
projectManager: pkg.ProjectMgr,
461465
repositoryMgr: pkg.RepositoryMgr,
466+
projectMetaMgr: pkg.ProjectMetaMgr,
462467
scheduler: scheduler.Sched,
463468
wp: lib.NewWorkerPool(10),
464469
}

src/server/v2.0/handler/retention.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,10 @@ func (r *retentionAPI) DeleteRetention(ctx context.Context, params operation.Del
260260
if err = r.retentionCtl.DeleteRetention(ctx, params.ID); err != nil {
261261
return r.SendError(ctx, err)
262262
}
263+
// delete retention data in project_metadata
264+
if err := r.proMetaMgr.Delete(ctx, p.Scope.Reference, "retention_id"); err != nil {
265+
return r.SendError(ctx, err)
266+
}
263267
return operation.NewDeleteRetentionOK()
264268
}
265269

0 commit comments

Comments
 (0)