libvuln

package
v0.1.21 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2021 License: Apache-2.0 Imports: 38 Imported by: 7

Documentation

Overview

Package libvuln is a generated GoMock package.

Index

Constants

View Source
const (
	DefaultUpdateInterval = 30 * time.Minute
	DefaultUpdateWorkers  = 10
	DefaultMaxConnPool    = 50
)

Variables

This section is empty.

Functions

func OfflineImport added in v0.1.1

func OfflineImport(ctx context.Context, pool *pgxpool.Pool, in io.Reader) error

OfflineImport takes the format written into the io.Writer provided to NewOfflineUpdater and imports the contents into the provided pgxpool.Pool.

Types

type HTTP added in v0.0.25

type HTTP struct {
	*http.ServeMux
	// contains filtered or unexported fields
}

func NewHandler added in v0.0.25

func NewHandler(l *Libvuln) *HTTP

func (*HTTP) UpdateDiff added in v0.0.25

func (h *HTTP) UpdateDiff(w http.ResponseWriter, r *http.Request)

func (*HTTP) UpdateOperations added in v0.0.25

func (h *HTTP) UpdateOperations(w http.ResponseWriter, r *http.Request)

func (*HTTP) VulnerabilityReport added in v0.0.25

func (h *HTTP) VulnerabilityReport(w http.ResponseWriter, r *http.Request)

type Libvuln

type Libvuln struct {
	*UpdateDriver
	// contains filtered or unexported fields
}

Libvuln exports methods for scanning an IndexReport and created a VulnerabilityReport.

Libvuln also runs background updaters which keep the vulnerability database consistent.

func New

func New(ctx context.Context, opts *Opts) (*Libvuln, error)

New creates a new instance of the Libvuln library

func (*Libvuln) DeleteUpdateOperations added in v0.0.18

func (l *Libvuln) DeleteUpdateOperations(ctx context.Context, ref ...uuid.UUID) error

DeleteUpdateOperations removes one or more update operations and their associated vulnerabilities from the vulnerability database.

func (*Libvuln) LatestUpdateOperation added in v0.0.18

func (l *Libvuln) LatestUpdateOperation(ctx context.Context) (uuid.UUID, error)

LatestUpdateOperation returns a reference to the latest known update.

This can be used by clients to determine if a call to Scan is likely to return new results.

func (*Libvuln) LatestUpdateOperations added in v0.0.18

func (l *Libvuln) LatestUpdateOperations(ctx context.Context) (map[string][]driver.UpdateOperation, error)

LatestUpdateOperations returns references for the latest update for every known updater.

These references are okay to expose externally.

func (*Libvuln) Scan

Scan creates a VulnerabilityReport given a manifest's IndexReport.

func (*Libvuln) UpdateDiff added in v0.0.18

func (l *Libvuln) UpdateDiff(ctx context.Context, prev, cur uuid.UUID) (*driver.UpdateDiff, error)

UpdateDiff returns an UpdateDiff describing the changes between prev and cur.

func (*Libvuln) UpdateOperations added in v0.0.18

func (l *Libvuln) UpdateOperations(ctx context.Context, updaters ...string) (map[string][]driver.UpdateOperation, error)

UpdateOperations returns UpdateOperations in date descending order keyed by the Updater name

type MockLibvuln

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

MockLibvuln is a mock of Libvuln interface

func NewMockLibvuln

func NewMockLibvuln(ctrl *gomock.Controller) *MockLibvuln

NewMockLibvuln creates a new mock instance

func (*MockLibvuln) EXPECT

func (m *MockLibvuln) EXPECT() *MockLibvulnMockRecorder

EXPECT returns an object that allows the caller to indicate expected use

func (*MockLibvuln) Scan

Scan mocks base method

type MockLibvulnMockRecorder

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

MockLibvulnMockRecorder is the mock recorder for MockLibvuln

func (*MockLibvulnMockRecorder) Scan

func (mr *MockLibvulnMockRecorder) Scan(arg0, arg1 interface{}) *gomock.Call

Scan indicates an expected call of Scan

type Opts

type Opts struct {
	// The maximum number of database connections in the
	// connection pool.
	MaxConnPool int32
	// A connection string to the database Lbvuln will use.
	ConnString string
	// An interval on which Libvuln will check for new security database
	// updates.
	//
	// This duration will have jitter added to it, to help with smearing load on
	// installations.
	UpdateInterval time.Duration
	// Determines if Livuln will manage database migrations
	Migrations bool
	// A slice of strings representing which updaters libvuln will create.
	//
	// If nil all default UpdaterSets will be used.
	//
	// The following sets are supported:
	// "alpine"
	// "aws"
	// "debian"
	// "oracle"
	// "photon"
	// "pyupio"
	// "rhel"
	// "suse"
	// "ubuntu"
	UpdaterSets []string
	// A list of out-of-tree updaters to run.
	//
	// This list will be merged with any defined UpdaterSets.
	//
	// If you desire no updaters to run do not add an updater
	// into this slice.
	Updaters []driver.Updater
	// A list of out-of-tree matchers you'd like libvuln to
	// use.
	//
	// This list will me merged with the default matchers.
	Matchers []driver.Matcher

	// UpdateWorkers controls the number of update workers running concurrently.
	// If less than or equal to zero, a sensible default will be used.
	UpdateWorkers int

	// If set to true, there will not be a goroutine launched to periodically
	// run updaters.
	DisableBackgroundUpdates bool

	// UpdaterConfigs is a map of functions for configuration of Updaters.
	UpdaterConfigs map[string]driver.ConfigUnmarshaler

	UpdaterFilter func(name string) (keep bool)

	// Client is an http.Client for use by all updaters. If unset,
	// http.DefaultClient will be used.
	Client *http.Client
}

type UpdateDriver added in v0.1.0

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

func NewOfflineUpdater added in v0.1.0

func NewOfflineUpdater(config map[string]driver.ConfigUnmarshaler, filter func(string) bool, out io.Writer) (*UpdateDriver, error)

func NewUpdater added in v0.1.0

func NewUpdater(pool *pgxpool.Pool, client *http.Client, config map[string]driver.ConfigUnmarshaler, workers int, filter func(string) bool) (*UpdateDriver, error)

func (*UpdateDriver) RunUpdaters added in v0.1.0

func (d *UpdateDriver) RunUpdaters(ctx context.Context, fs ...driver.UpdaterSetFactory) error

Notes

Bugs

  • The OfflineImport function is a wart, needed to work around some package namespacing issues. It should get refactored if claircore gets merged into clair.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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