Documentation ¶
Index ¶
- Constants
- Variables
- func ResolveVersionCodeName(osrelease map[string]string) string
- func UpdaterSet(_ context.Context) (driver.UpdaterSet, error)
- type DistributionScanner
- type Matcher
- type Release
- type Updater
- func (u *Updater) Configure(ctx context.Context, f driver.ConfigUnmarshaler, c *http.Client) error
- func (u *Updater) Fetch(ctx context.Context, fingerprint driver.Fingerprint) (io.ReadCloser, driver.Fingerprint, error)
- func (u *Updater) Name() string
- func (u *Updater) Parse(ctx context.Context, r io.ReadCloser) ([]*claircore.Vulnerability, error)
- type UpdaterConfig
Constants ¶
const ( OSReleaseName = "Debian GNU/Linux" OSReleaseID = "debian" )
identifiers commonly in debian distro os-release file
const ( OVALTemplate = "https://www.debian.org/security/oval/oval-definitions-%s.xml" PkgNameVersion = `([^\s]+) DPKG is earlier than (.+)` )
Variables ¶
Functions ¶
func ResolveVersionCodeName ¶
Resolve iterates over each os-release entry and tries to find a release string. if found we return the found release in string form. if not found empty string is returned
func UpdaterSet ¶
func UpdaterSet(_ context.Context) (driver.UpdaterSet, error)
Types ¶
type DistributionScanner ¶
type DistributionScanner struct{}
DistributionScanner attempts to discover if a layer displays characteristics of a Debian distribution
func (*DistributionScanner) Kind ¶
func (*DistributionScanner) Kind() string
Kind implements scanner.VersionedScanner.
func (*DistributionScanner) Name ¶
func (*DistributionScanner) Name() string
Name implements scanner.VersionedScanner.
func (*DistributionScanner) Scan ¶
func (ds *DistributionScanner) Scan(ctx context.Context, l *claircore.Layer) ([]*claircore.Distribution, error)
Scan will inspect the layer for an os-release or lsb-release file and perform a regex match for keywords indicating the associated Debian release
If neither file is found a (nil,nil) is returned. If the files are found but all regexp fail to match an empty slice is returned.
func (*DistributionScanner) Version ¶
func (*DistributionScanner) Version() string
Version implements scanner.VersionedScanner.
type Matcher ¶
type Matcher struct{}
func (*Matcher) Query ¶
func (*Matcher) Query() []driver.MatchConstraint
func (*Matcher) Vulnerable ¶
func (*Matcher) Vulnerable(ctx context.Context, record *claircore.IndexRecord, vuln *claircore.Vulnerability) (bool, error)
type Updater ¶
type Updater struct {
// contains filtered or unexported fields
}
Updater implements the claircore.Updater.Fetcher and claircore.Updater.Parser interfaces making it eligible to be used as an Updater.
func NewUpdater ¶
func (*Updater) Fetch ¶
func (u *Updater) Fetch(ctx context.Context, fingerprint driver.Fingerprint) (io.ReadCloser, driver.Fingerprint, error)
func (*Updater) Parse ¶
func (u *Updater) Parse(ctx context.Context, r io.ReadCloser) ([]*claircore.Vulnerability, error)
type UpdaterConfig ¶
type UpdaterConfig struct {
URL string `json:"url" yaml:"url"`
}
UpdaterConfig is the configuration for the updater.
By convention, this is in a map called "debian-${RELEASE}-updater", e.g. "debian-buster-updater".