mirror of
https://github.com/crazy-max/diun.git
synced 2025-12-21 13:23:09 +01:00
43 lines
873 B
Go
43 lines
873 B
Go
package docker
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/crazy-max/diun/internal/model"
|
|
"github.com/crazy-max/diun/internal/provider"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
// Client represents an active docker provider object
|
|
type Client struct {
|
|
*provider.Client
|
|
elts []model.PrdDocker
|
|
}
|
|
|
|
// New creates new docker provider instance
|
|
func New(elts []model.PrdDocker) *provider.Client {
|
|
return &provider.Client{Handler: &Client{
|
|
elts: elts,
|
|
}}
|
|
}
|
|
|
|
// ListJob returns job list to process
|
|
func (c *Client) ListJob() []model.Job {
|
|
if len(c.elts) == 0 {
|
|
return []model.Job{}
|
|
}
|
|
|
|
log.Info().Msgf("Found %d docker provider(s) to analyze...", len(c.elts))
|
|
var list []model.Job
|
|
for _, elt := range c.elts {
|
|
for _, img := range c.listContainerImage(elt) {
|
|
list = append(list, model.Job{
|
|
Provider: fmt.Sprintf("docker-%s", elt.ID),
|
|
Image: img,
|
|
})
|
|
}
|
|
}
|
|
|
|
return list
|
|
}
|