mirror of
https://github.com/crazy-max/diun.git
synced 2025-12-21 21:33:22 +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 {
|
if err := di.runJob(job); err != nil {
|
||||||
log.Error().Err(err).
|
log.Error().Err(err).
|
||||||
Str("provider", job.Provider).
|
Str("provider", job.Provider).
|
||||||
Str("id", job.ID).
|
|
||||||
Msg("Cannot run job")
|
Msg("Cannot run job")
|
||||||
}
|
}
|
||||||
di.wg.Done()
|
di.wg.Done()
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ func (di *Diun) createJob(job model.Job) {
|
|||||||
|
|
||||||
sublog := log.With().
|
sublog := log.With().
|
||||||
Str("provider", job.Provider).
|
Str("provider", job.Provider).
|
||||||
Str("id", job.ID).
|
|
||||||
Str("image", job.Image.Name).
|
Str("image", job.Image.Name).
|
||||||
Logger()
|
Logger()
|
||||||
|
|
||||||
@@ -129,7 +128,6 @@ func (di *Diun) createJob(job model.Job) {
|
|||||||
func (di *Diun) runJob(job model.Job) error {
|
func (di *Diun) runJob(job model.Job) error {
|
||||||
sublog := log.With().
|
sublog := log.With().
|
||||||
Str("provider", job.Provider).
|
Str("provider", job.Provider).
|
||||||
Str("id", job.ID).
|
|
||||||
Str("image", job.RegImage.String()).
|
Str("image", job.RegImage.String()).
|
||||||
Logger()
|
Logger()
|
||||||
|
|
||||||
@@ -170,6 +168,7 @@ func (di *Diun) runJob(job model.Job) error {
|
|||||||
|
|
||||||
di.notif.Send(model.NotifEntry{
|
di.notif.Send(model.NotifEntry{
|
||||||
Status: status,
|
Status: status,
|
||||||
|
Provider: job.Provider,
|
||||||
Image: job.RegImage,
|
Image: job.RegImage,
|
||||||
Manifest: liveManifest,
|
Manifest: liveManifest,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import (
|
|||||||
// Job holds job configuration
|
// Job holds job configuration
|
||||||
type Job struct {
|
type Job struct {
|
||||||
Provider string
|
Provider string
|
||||||
ID string
|
|
||||||
Image Image
|
Image Image
|
||||||
RegImage registry.Image
|
RegImage registry.Image
|
||||||
Registry *docker.RegistryClient
|
Registry *docker.RegistryClient
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ type Notif struct {
|
|||||||
// NotifEntry represents a notification entry
|
// NotifEntry represents a notification entry
|
||||||
type NotifEntry struct {
|
type NotifEntry struct {
|
||||||
Status ImageStatus `json:"status,omitempty"`
|
Status ImageStatus `json:"status,omitempty"`
|
||||||
|
Provider string `json:"provider,omitempty"`
|
||||||
Image registry.Image `json:"image,omitempty"`
|
Image registry.Image `json:"image,omitempty"`
|
||||||
Manifest docker.Manifest `json:"manifest,omitempty"`
|
Manifest docker.Manifest `json:"manifest,omitempty"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ func (c *Client) Send(entry model.NotifEntry) error {
|
|||||||
var emailBuf bytes.Buffer
|
var emailBuf bytes.Buffer
|
||||||
emailTpl := template.Must(template.New("email").Parse(`
|
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.
|
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 {
|
body, err := json.Marshal(struct {
|
||||||
Version string `json:"diun_version"`
|
Version string `json:"diun_version"`
|
||||||
Status string `json:"status"`
|
Status string `json:"status"`
|
||||||
|
Provider string `json:"provider"`
|
||||||
Image string `json:"image"`
|
Image string `json:"image"`
|
||||||
MIMEType string `json:"mime_type"`
|
MIMEType string `json:"mime_type"`
|
||||||
Digest digest.Digest `json:"digest"`
|
Digest digest.Digest `json:"digest"`
|
||||||
@@ -52,6 +53,7 @@ func (c *Client) Send(entry model.NotifEntry) error {
|
|||||||
}{
|
}{
|
||||||
Version: c.app.Version,
|
Version: c.app.Version,
|
||||||
Status: string(entry.Status),
|
Status: string(entry.Status),
|
||||||
|
Provider: entry.Provider,
|
||||||
Image: entry.Image.String(),
|
Image: entry.Image.String(),
|
||||||
MIMEType: entry.Manifest.MIMEType,
|
MIMEType: entry.Manifest.MIMEType,
|
||||||
Digest: entry.Manifest.Digest,
|
Digest: entry.Manifest.Digest,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package docker
|
package docker
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
"github.com/crazy-max/diun/internal/model"
|
"github.com/crazy-max/diun/internal/model"
|
||||||
@@ -12,8 +13,7 @@ import (
|
|||||||
|
|
||||||
func (c *Client) listContainerImage(elt model.PrdDocker) []model.Image {
|
func (c *Client) listContainerImage(elt model.PrdDocker) []model.Image {
|
||||||
sublog := log.With().
|
sublog := log.With().
|
||||||
Str("provider", "docker").
|
Str("provider", fmt.Sprintf("docker-%s", elt.ID)).
|
||||||
Str("id", elt.ID).
|
|
||||||
Logger()
|
Logger()
|
||||||
|
|
||||||
cli, err := docker.NewClient(elt.Endpoint, elt.ApiVersion, elt.TLSCertsPath, elt.TLSVerify)
|
cli, err := docker.NewClient(elt.Endpoint, elt.ApiVersion, elt.TLSCertsPath, elt.TLSVerify)
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package docker
|
package docker
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/crazy-max/diun/internal/model"
|
"github.com/crazy-max/diun/internal/model"
|
||||||
"github.com/crazy-max/diun/internal/provider"
|
"github.com/crazy-max/diun/internal/provider"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
@@ -30,8 +32,7 @@ func (c *Client) ListJob() []model.Job {
|
|||||||
for _, elt := range c.elts {
|
for _, elt := range c.elts {
|
||||||
for _, img := range c.listContainerImage(elt) {
|
for _, img := range c.listContainerImage(elt) {
|
||||||
list = append(list, model.Job{
|
list = append(list, model.Job{
|
||||||
Provider: "docker",
|
Provider: fmt.Sprintf("docker-%s", elt.ID),
|
||||||
ID: elt.ID,
|
|
||||||
Image: img,
|
Image: img,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package static
|
package static
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/crazy-max/diun/internal/model"
|
"github.com/crazy-max/diun/internal/model"
|
||||||
"github.com/crazy-max/diun/internal/provider"
|
"github.com/crazy-max/diun/internal/provider"
|
||||||
"github.com/rs/zerolog/log"
|
"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))
|
log.Info().Msgf("Found %d static provider(s) to analyze...", len(c.elts))
|
||||||
var list []model.Job
|
var list []model.Job
|
||||||
for _, elt := range c.elts {
|
for key, elt := range c.elts {
|
||||||
list = append(list, model.Job{
|
list = append(list, model.Job{
|
||||||
Provider: "static",
|
Provider: fmt.Sprintf("static-%d", key),
|
||||||
ID: elt.Name,
|
|
||||||
Image: model.Image(elt),
|
Image: model.Image(elt),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package swarm
|
package swarm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
"github.com/crazy-max/diun/internal/model"
|
"github.com/crazy-max/diun/internal/model"
|
||||||
@@ -12,8 +13,7 @@ import (
|
|||||||
|
|
||||||
func (c *Client) listServiceImage(elt model.PrdSwarm) []model.Image {
|
func (c *Client) listServiceImage(elt model.PrdSwarm) []model.Image {
|
||||||
sublog := log.With().
|
sublog := log.With().
|
||||||
Str("provider", "swarm").
|
Str("provider", fmt.Sprintf("swarm-%s", elt.ID)).
|
||||||
Str("id", elt.ID).
|
|
||||||
Logger()
|
Logger()
|
||||||
|
|
||||||
cli, err := docker.NewClient(elt.Endpoint, elt.ApiVersion, elt.TLSCertsPath, elt.TLSVerify)
|
cli, err := docker.NewClient(elt.Endpoint, elt.ApiVersion, elt.TLSCertsPath, elt.TLSVerify)
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package swarm
|
package swarm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/crazy-max/diun/internal/model"
|
"github.com/crazy-max/diun/internal/model"
|
||||||
"github.com/crazy-max/diun/internal/provider"
|
"github.com/crazy-max/diun/internal/provider"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
@@ -30,8 +32,7 @@ func (c *Client) ListJob() []model.Job {
|
|||||||
for _, elt := range c.elts {
|
for _, elt := range c.elts {
|
||||||
for _, img := range c.listServiceImage(elt) {
|
for _, img := range c.listServiceImage(elt) {
|
||||||
list = append(list, model.Job{
|
list = append(list, model.Job{
|
||||||
Provider: "swarm",
|
Provider: fmt.Sprintf("swarm-%s", elt.ID),
|
||||||
ID: elt.ID,
|
|
||||||
Image: img,
|
Image: img,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user