package swarm import ( "github.com/crazy-max/diun/v4/internal/model" "github.com/crazy-max/diun/v4/internal/provider" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) // Client represents an active swarm provider object type Client struct { *provider.Client config *model.PrdSwarm logger zerolog.Logger defaults *model.Defaults } // New creates new swarm provider instance func New(config *model.PrdSwarm, defaults *model.Defaults) *provider.Client { return &provider.Client{ Handler: &Client{ config: config, logger: log.With().Str("provider", "swarm").Logger(), defaults: defaults, }, } } // ListJob returns job list to process func (c *Client) ListJob() []model.Job { if c.config == nil { return []model.Job{} } images := c.listServiceImage() if len(images) == 0 { log.Warn().Msg("No image found") return []model.Job{} } c.logger.Info().Msgf("Found %d image(s) to analyze", len(images)) var list []model.Job for _, image := range images { list = append(list, model.Job{ Provider: "swarm", Image: image, }) } return list }