updater

package
v0.0.0-...-7a08299 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultResyncImagesOlderThanMinutes = 60 * 12 // 12 hours
	DefaultMarkUntrackedInterval        = 20 * time.Minute
)
View Source
const (
	SyncErrorStatusCodeGenericError = "GenericError"
)

Variables

This section is empty.

Functions

func NewDbContext

func NewDbContext(ctx context.Context, querier sql.Querier, log *logrus.Entry) context.Context

func SyncImage

func SyncImage(ctx context.Context, imageName, imageTag, source string, f func(ctx context.Context) error) error

SyncImage runs the provided function and updates the image state in the database based on the result, it should only return an error if the image state update failed.

Types

type ImageVulnerabilityData

type ImageVulnerabilityData struct {
	ImageName       string
	ImageTag        string
	Source          string
	Vulnerabilities []*sources.Vulnerability
	Summary         *sources.VulnerabilitySummary
}

func (*ImageVulnerabilityData) ToCveSqlParams

func (i *ImageVulnerabilityData) ToCveSqlParams() []sql.BatchUpsertCveParams

func (*ImageVulnerabilityData) ToVulnerabilitySqlParams

func (i *ImageVulnerabilityData) ToVulnerabilitySqlParams() []sql.BatchUpsertVulnerabilitiesParams

func (*ImageVulnerabilityData) ToVulnerabilitySummarySqlParams

func (i *ImageVulnerabilityData) ToVulnerabilitySummarySqlParams() sql.BatchUpsertVulnerabilitySummaryParams

type Updater

type Updater struct {
	// contains filtered or unexported fields
}

func NewUpdater

func NewUpdater(pool *pgxpool.Pool, source sources.Source, updateInterval time.Duration, log *log.Entry) *Updater

func (*Updater) FetchVulnerabilityDataForImages

func (u *Updater) FetchVulnerabilityDataForImages(ctx context.Context, images []*sql.Image, limit int, ch chan<- *ImageVulnerabilityData) error

func (*Updater) MarkForResync

func (u *Updater) MarkForResync(ctx context.Context) error

MarkForResync Mark images for resync that have not been updated for a certain amount of time where state is not 'resync'

func (*Updater) ResyncImages

func (u *Updater) ResyncImages(ctx context.Context) error

ResyncImages Resync images that have state 'initialized' or 'resync'

func (*Updater) Run

func (u *Updater) Run(ctx context.Context)

TODO: create a state/log table and log errors? maybe successfull and failed runs?

func (*Updater) UpdateVulnerabilityData

func (u *Updater) UpdateVulnerabilityData(ctx context.Context, ch chan *ImageVulnerabilityData) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL