From 3d2cef2ff4cd2393d4f0971e965b977de7664716 Mon Sep 17 00:00:00 2001 From: Chlins Zhang Date: Thu, 6 Apr 2023 16:15:10 +0800 Subject: [PATCH] [cherry-pick] fix: correct the retention webhook payload (#18466) fix: correct the retention webhook payload Fix the incorrect number of total and retained in the retention webhook payload, and completes the deleted_artifacts field. Fixes: #18428 Signed-off-by: chlins --- .../event/handler/webhook/artifact/retention.go | 9 ++++++--- src/controller/event/metadata/retention.go | 2 ++ src/controller/event/topic.go | 2 ++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/controller/event/handler/webhook/artifact/retention.go b/src/controller/event/handler/webhook/artifact/retention.go index b26ec5989..fbac52ac1 100644 --- a/src/controller/event/handler/webhook/artifact/retention.go +++ b/src/controller/event/handler/webhook/artifact/retention.go @@ -121,8 +121,8 @@ func (r *RetentionHandler) constructRetentionPayload(event *event.RetentionEvent Operator: execution.Trigger, EventData: &model.EventData{ Retention: &evtModel.Retention{ - Total: task.Total, - Retained: task.Retained, + Total: event.Total, + Retained: event.Retained, HarborHostname: hostname, ProjectName: event.Deleted[0].Target.Namespace, RetentionPolicyID: execution.PolicyID, @@ -140,8 +140,11 @@ func (r *RetentionHandler) constructRetentionPayload(event *event.RetentionEvent } if len(target.Tags) != 0 { deletedArtifact.NameAndTag = target.Repository + ":" + target.Tags[0] + } else { + // use digest if no tag + deletedArtifact.NameAndTag = target.Repository + "@" + target.Digest } - payload.EventData.Retention.DeletedArtifact = []*evtModel.ArtifactInfo{deletedArtifact} + payload.EventData.Retention.DeletedArtifact = append(payload.EventData.Retention.DeletedArtifact, deletedArtifact) } for _, v := range md.Rules { diff --git a/src/controller/event/metadata/retention.go b/src/controller/event/metadata/retention.go index 492985146..4343528e4 100644 --- a/src/controller/event/metadata/retention.go +++ b/src/controller/event/metadata/retention.go @@ -25,6 +25,8 @@ func (r *RetentionMetaData) Resolve(evt *event.Event) error { Status: r.Status, Deleted: r.Deleted, TaskID: r.TaskID, + Total: r.Total, + Retained: r.Retained, } evt.Topic = event2.TopicTagRetention diff --git a/src/controller/event/topic.go b/src/controller/event/topic.go index 2013918f2..5d455eb10 100644 --- a/src/controller/event/topic.go +++ b/src/controller/event/topic.go @@ -371,6 +371,8 @@ type RetentionEvent struct { OccurAt time.Time Status string Deleted []*selector.Result + Total int + Retained int } func (r *RetentionEvent) String() string {