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,
})
}