mirror of
https://github.com/crazy-max/diun.git
synced 2025-12-21 13:23:09 +01:00
Include provider in notifications
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
|
||||
@@ -8,7 +8,6 @@ import (
|
||||
// Job holds job configuration
|
||||
type Job struct {
|
||||
Provider string
|
||||
ID string
|
||||
Image Image
|
||||
RegImage registry.Image
|
||||
Registry *docker.RegistryClient
|
||||
|
||||
@@ -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"`
|
||||
}
|
||||
|
||||
@@ -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 <code>{{ .Manifest.Created }}</code> with digest <code>{{ .Manifest.Digest }}</code> for <code>{{ .Manifest.Os }}/{{ .Manifest.Architecture }}</code> platform.
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user