mirror of
https://github.com/goharbor/harbor
synced 2024-09-20 19:17:40 +00:00
Merge pull request #982 from reasonerjt/dev
recognize vic in notification handler
This commit is contained in:
commit
a05a9c1afd
|
@ -20,12 +20,12 @@ import (
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/vmware/harbor/src/ui/api"
|
|
||||||
"github.com/vmware/harbor/src/common/dao"
|
"github.com/vmware/harbor/src/common/dao"
|
||||||
"github.com/vmware/harbor/src/common/models"
|
"github.com/vmware/harbor/src/common/models"
|
||||||
"github.com/vmware/harbor/src/ui/service/cache"
|
|
||||||
"github.com/vmware/harbor/src/common/utils"
|
"github.com/vmware/harbor/src/common/utils"
|
||||||
"github.com/vmware/harbor/src/common/utils/log"
|
"github.com/vmware/harbor/src/common/utils/log"
|
||||||
|
"github.com/vmware/harbor/src/ui/api"
|
||||||
|
"github.com/vmware/harbor/src/ui/service/cache"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
)
|
)
|
||||||
|
@ -36,6 +36,7 @@ type NotificationHandler struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
const manifestPattern = `^application/vnd.docker.distribution.manifest.v\d\+(json|prettyjws)`
|
const manifestPattern = `^application/vnd.docker.distribution.manifest.v\d\+(json|prettyjws)`
|
||||||
|
const vicPrefix = "vic/"
|
||||||
|
|
||||||
// Post handles POST request, and records audit log or refreshes cache based on event.
|
// Post handles POST request, and records audit log or refreshes cache based on event.
|
||||||
func (n *NotificationHandler) Post() {
|
func (n *NotificationHandler) Post() {
|
||||||
|
@ -102,8 +103,8 @@ func filterEvents(notification *models.Notification) ([]*models.Event, error) {
|
||||||
events := []*models.Event{}
|
events := []*models.Event{}
|
||||||
|
|
||||||
for _, event := range notification.Events {
|
for _, event := range notification.Events {
|
||||||
log.Debugf("receive an event: ID-%s, target-%s:%s, digest-%s, action-%s", event.ID, event.Target.Repository, event.Target.Tag,
|
log.Debugf("receive an event: \n----ID: %s \n----target: %s:%s \n----digest: %s \n----action: %s \n----mediatype: %s \n----user-agent: %s", event.ID, event.Target.Repository,
|
||||||
event.Target.Digest, event.Action)
|
event.Target.Tag, event.Target.Digest, event.Action, event.Target.MediaType, event.Request.UserAgent)
|
||||||
|
|
||||||
isManifest, err := regexp.MatchString(manifestPattern, event.Target.MediaType)
|
isManifest, err := regexp.MatchString(manifestPattern, event.Target.MediaType)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -115,8 +116,9 @@ func filterEvents(notification *models.Notification) ([]*models.Event, error) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
//pull and push manifest by docker-client
|
//pull and push manifest by docker-client or vic
|
||||||
if strings.HasPrefix(event.Request.UserAgent, "docker") && (event.Action == "pull" || event.Action == "push") {
|
if (strings.HasPrefix(event.Request.UserAgent, "docker") || strings.HasPrefix(event.Request.UserAgent, vicPrefix)) &&
|
||||||
|
(event.Action == "pull" || event.Action == "push") {
|
||||||
events = append(events, &event)
|
events = append(events, &event)
|
||||||
log.Debugf("add event to collect: %s", event.ID)
|
log.Debugf("add event to collect: %s", event.ID)
|
||||||
continue
|
continue
|
||||||
|
|
Loading…
Reference in New Issue
Block a user