diff --git a/internal/app/diun.go b/internal/app/diun.go index 82059e54..fb6d419d 100644 --- a/internal/app/diun.go +++ b/internal/app/diun.go @@ -97,7 +97,6 @@ func (di *Diun) Run() { if err := di.runJob(job); err != nil { log.Error().Err(err). Str("provider", job.Provider). - Str("id", job.ID). Msg("Cannot run job") } di.wg.Done() diff --git a/internal/app/job.go b/internal/app/job.go index ecbe5174..5eba139c 100644 --- a/internal/app/job.go +++ b/internal/app/job.go @@ -18,7 +18,6 @@ func (di *Diun) createJob(job model.Job) { sublog := log.With(). Str("provider", job.Provider). - Str("id", job.ID). Str("image", job.Image.Name). Logger() @@ -129,7 +128,6 @@ func (di *Diun) createJob(job model.Job) { func (di *Diun) runJob(job model.Job) error { sublog := log.With(). Str("provider", job.Provider). - Str("id", job.ID). Str("image", job.RegImage.String()). Logger() @@ -170,6 +168,7 @@ func (di *Diun) runJob(job model.Job) error { di.notif.Send(model.NotifEntry{ Status: status, + Provider: job.Provider, Image: job.RegImage, Manifest: liveManifest, }) diff --git a/internal/model/job.go b/internal/model/job.go index d8d8d569..437ec51b 100644 --- a/internal/model/job.go +++ b/internal/model/job.go @@ -8,7 +8,6 @@ import ( // Job holds job configuration type Job struct { Provider string - ID string Image Image RegImage registry.Image Registry *docker.RegistryClient diff --git a/internal/model/notif.go b/internal/model/notif.go index 09790a9a..a3f80ba4 100644 --- a/internal/model/notif.go +++ b/internal/model/notif.go @@ -14,6 +14,7 @@ type Notif struct { // NotifEntry represents a notification entry type NotifEntry struct { Status ImageStatus `json:"status,omitempty"` + Provider string `json:"provider,omitempty"` Image registry.Image `json:"image,omitempty"` Manifest docker.Manifest `json:"manifest,omitempty"` } diff --git a/internal/notif/mail/client.go b/internal/notif/mail/client.go index ddd6aa50..6209ed2d 100644 --- a/internal/notif/mail/client.go +++ b/internal/notif/mail/client.go @@ -63,7 +63,7 @@ func (c *Client) Send(entry model.NotifEntry) error { var emailBuf bytes.Buffer emailTpl := template.Must(template.New("email").Parse(` -Docker 🐳 tag **{{ .Image.Domain }}/{{ .Image.Path }}:{{ .Image.Tag }}** which you subscribed to has been {{ if (eq .Status "new") }}newly added{{ else }}updated{{ end }}. +Docker 🐳 tag **{{ .Image.Domain }}/{{ .Image.Path }}:{{ .Image.Tag }}** which you subscribed to through **{{ .Provider }}** provider has been {{ if (eq .Status "new") }}newly added{{ else }}updated{{ end }}. This image has been {{ if (eq .Status "new") }}created{{ else }}updated{{ end }} at {{ .Manifest.Created }} with digest {{ .Manifest.Digest }} for {{ .Manifest.Os }}/{{ .Manifest.Architecture }} platform. diff --git a/internal/notif/webhook/client.go b/internal/notif/webhook/client.go index 76f54cbd..a3054986 100644 --- a/internal/notif/webhook/client.go +++ b/internal/notif/webhook/client.go @@ -43,6 +43,7 @@ func (c *Client) Send(entry model.NotifEntry) error { body, err := json.Marshal(struct { Version string `json:"diun_version"` Status string `json:"status"` + Provider string `json:"provider"` Image string `json:"image"` MIMEType string `json:"mime_type"` Digest digest.Digest `json:"digest"` @@ -52,6 +53,7 @@ func (c *Client) Send(entry model.NotifEntry) error { }{ Version: c.app.Version, Status: string(entry.Status), + Provider: entry.Provider, Image: entry.Image.String(), MIMEType: entry.Manifest.MIMEType, Digest: entry.Manifest.Digest, diff --git a/internal/provider/docker/container.go b/internal/provider/docker/container.go index 588e6aea..23356662 100644 --- a/internal/provider/docker/container.go +++ b/internal/provider/docker/container.go @@ -1,6 +1,7 @@ package docker import ( + "fmt" "reflect" "github.com/crazy-max/diun/internal/model" @@ -12,8 +13,7 @@ import ( func (c *Client) listContainerImage(elt model.PrdDocker) []model.Image { sublog := log.With(). - Str("provider", "docker"). - Str("id", elt.ID). + Str("provider", fmt.Sprintf("docker-%s", elt.ID)). Logger() cli, err := docker.NewClient(elt.Endpoint, elt.ApiVersion, elt.TLSCertsPath, elt.TLSVerify) diff --git a/internal/provider/docker/docker.go b/internal/provider/docker/docker.go index 9b9716e8..bd810669 100644 --- a/internal/provider/docker/docker.go +++ b/internal/provider/docker/docker.go @@ -1,6 +1,8 @@ package docker import ( + "fmt" + "github.com/crazy-max/diun/internal/model" "github.com/crazy-max/diun/internal/provider" "github.com/rs/zerolog/log" @@ -30,8 +32,7 @@ func (c *Client) ListJob() []model.Job { for _, elt := range c.elts { for _, img := range c.listContainerImage(elt) { list = append(list, model.Job{ - Provider: "docker", - ID: elt.ID, + Provider: fmt.Sprintf("docker-%s", elt.ID), Image: img, }) } diff --git a/internal/provider/static/static.go b/internal/provider/static/static.go index 7c2d8f0a..50605ca8 100644 --- a/internal/provider/static/static.go +++ b/internal/provider/static/static.go @@ -1,6 +1,8 @@ package static import ( + "fmt" + "github.com/crazy-max/diun/internal/model" "github.com/crazy-max/diun/internal/provider" "github.com/rs/zerolog/log" @@ -27,10 +29,9 @@ func (c *Client) ListJob() []model.Job { log.Info().Msgf("Found %d static provider(s) to analyze...", len(c.elts)) var list []model.Job - for _, elt := range c.elts { + for key, elt := range c.elts { list = append(list, model.Job{ - Provider: "static", - ID: elt.Name, + Provider: fmt.Sprintf("static-%d", key), Image: model.Image(elt), }) } diff --git a/internal/provider/swarm/service.go b/internal/provider/swarm/service.go index fb676f36..99bcf498 100644 --- a/internal/provider/swarm/service.go +++ b/internal/provider/swarm/service.go @@ -1,6 +1,7 @@ package swarm import ( + "fmt" "reflect" "github.com/crazy-max/diun/internal/model" @@ -12,8 +13,7 @@ import ( func (c *Client) listServiceImage(elt model.PrdSwarm) []model.Image { sublog := log.With(). - Str("provider", "swarm"). - Str("id", elt.ID). + Str("provider", fmt.Sprintf("swarm-%s", elt.ID)). Logger() cli, err := docker.NewClient(elt.Endpoint, elt.ApiVersion, elt.TLSCertsPath, elt.TLSVerify) diff --git a/internal/provider/swarm/swarm.go b/internal/provider/swarm/swarm.go index 8e893874..396a6c42 100644 --- a/internal/provider/swarm/swarm.go +++ b/internal/provider/swarm/swarm.go @@ -1,6 +1,8 @@ package swarm import ( + "fmt" + "github.com/crazy-max/diun/internal/model" "github.com/crazy-max/diun/internal/provider" "github.com/rs/zerolog/log" @@ -30,8 +32,7 @@ func (c *Client) ListJob() []model.Job { for _, elt := range c.elts { for _, img := range c.listServiceImage(elt) { list = append(list, model.Job{ - Provider: "swarm", - ID: elt.ID, + Provider: fmt.Sprintf("swarm-%s", elt.ID), Image: img, }) }