From 23b026655cba0a00ff29273835c8639d405bca2d Mon Sep 17 00:00:00 2001 From: Wenkai Yin Date: Wed, 29 Jun 2016 17:10:17 +0800 Subject: [PATCH] handle repository deletion event in API --- api/repository.go | 8 ++++++++ service/notification.go | 12 +----------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/api/repository.go b/api/repository.go index 57564e61f..f19d99a5e 100644 --- a/api/repository.go +++ b/api/repository.go @@ -154,7 +154,15 @@ func (ra *RepositoryAPI) Delete() { ra.CustomAbort(http.StatusInternalServerError, "internal error") } log.Infof("delete tag: %s %s", repoName, t) + go TriggerReplicationByRepository(repoName, []string{t}, models.RepOpDelete) } + + go func() { + log.Debug("refreshing catalog cache") + if err := cache.RefreshCatalogCache(); err != nil { + log.Errorf("error occurred while refresh catalog cache: %v", err) + } + }() } type tag struct { diff --git a/service/notification.go b/service/notification.go index cc1585bc3..77ade18d3 100644 --- a/service/notification.go +++ b/service/notification.go @@ -73,7 +73,7 @@ func (n *NotificationHandler) Post() { log.Errorf("failed to add access log: %v", err) } }() - if action == "push" || action == "delete" { + if action == "push" { go func() { if err := cache.RefreshCatalogCache(); err != nil { log.Errorf("failed to refresh cache: %v", err) @@ -83,8 +83,6 @@ func (n *NotificationHandler) Post() { operation := "" if action == "push" { operation = models.RepOpTransfer - } else { - operation = models.RepOpDelete } go api.TriggerReplicationByRepository(repository, []string{tag}, operation) @@ -96,14 +94,6 @@ func filterEvents(notification *models.Notification) ([]*models.Event, error) { events := []*models.Event{} for _, event := range notification.Events { - - //delete - // TODO add tag field - if event.Action == "delete" { - events = append(events, &event) - continue - } - isManifest, err := regexp.MatchString(manifestPattern, event.Target.MediaType) if err != nil { log.Errorf("failed to match the media type against pattern: %v", err)