libindex

package
v0.4.11 Latest Latest
Warning

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

Go to latest
Published: Jun 6, 2021 License: Apache-2.0 Imports: 37 Imported by: 0

Documentation

Overview

Package libindex is a generated GoMock package.

Index

Constants

View Source
const (
	DefaultScanLockRetry        = 5 * time.Second
	DefaultLayerScanConcurrency = 10
	DefaultLayerFetchOpt        = indexer.OnDisk
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ControllerFactory

type ControllerFactory func(_ context.Context, lib *Libindex, opts *Opts) (*controller.Controller, error)

ControllerFactory is a factory method to return a Controller during libindex runtime.

type HTTP

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

func NewHandler

func NewHandler(l *Libindex) *HTTP

func (*HTTP) AffectedManifests

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

func (*HTTP) Index

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

func (*HTTP) IndexReport

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

func (*HTTP) State

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

type Libindex

type Libindex struct {
	// holds dependencies for creating a libindex instance
	*Opts
	// contains filtered or unexported fields
}

Libindex implements the method set for scanning and indexing a Manifest.

func New

func New(ctx context.Context, opts *Opts, cl *http.Client) (*Libindex, error)

New creates a new instance of libindex.

The passed http.Client will be used for fetching layers and any HTTP requests made by scanners.

func (*Libindex) AffectedManifests

func (l *Libindex) AffectedManifests(ctx context.Context, vulns []claircore.Vulnerability) (*claircore.AffectedManifests, error)

AffectedManifests retrieves a list of affected manifests when provided a list of vulnerabilities.

func (*Libindex) Close

func (l *Libindex) Close(ctx context.Context) error

func (*Libindex) Index

func (l *Libindex) Index(ctx context.Context, manifest *claircore.Manifest) (*claircore.IndexReport, error)

Index performs a scan and index of each layer within the provided Manifest.

If the index operation cannot start an error will be returned. If an error occurs during scan the error will be propagated inside the IndexReport.

func (*Libindex) IndexReport

func (l *Libindex) IndexReport(ctx context.Context, hash claircore.Digest) (*claircore.IndexReport, bool, error)

IndexReport retrieves an IndexReport for a particular manifest hash, if it exists.

func (*Libindex) State

func (l *Libindex) State(ctx context.Context) (string, error)

State returns an opaque identifier identifying how the struct is currently configured.

If the identifier has changed, clients should arrange for layers to be re-indexed.

type MockLibindex

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

MockLibindex is a mock of Libindex interface

func NewMockLibindex

func NewMockLibindex(ctrl *gomock.Controller) *MockLibindex

NewMockLibindex creates a new mock instance

func (*MockLibindex) EXPECT

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

func (*MockLibindex) Index

func (m *MockLibindex) Index(arg0 context.Context, arg1 *claircore.Manifest) (<-chan *claircore.IndexReport, error)

Index mocks base method

func (*MockLibindex) IndexReport

func (m *MockLibindex) IndexReport(arg0 context.Context, arg1 string) (*claircore.IndexReport, bool, error)

IndexReport mocks base method

type MockLibindexMockRecorder

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

MockLibindexMockRecorder is the mock recorder for MockLibindex

func (*MockLibindexMockRecorder) Index

func (mr *MockLibindexMockRecorder) Index(arg0, arg1 interface{}) *gomock.Call

Index indicates an expected call of Index

func (*MockLibindexMockRecorder) IndexReport

func (mr *MockLibindexMockRecorder) IndexReport(arg0, arg1 interface{}) *gomock.Call

IndexReport indicates an expected call of IndexReport

type Opts

type Opts struct {
	// the connection string for the datastore specified above
	ConnString string
	// how often we should try to acquire a lock for scanning a given manifest if lock is taken
	ScanLockRetry time.Duration
	// the number of layers to be scanned in parallel.
	LayerScanConcurrency int
	// how we store layers we fetch remotely. see LayerFetchOpt type def above for more details
	LayerFetchOpt indexer.LayerFetchOpt
	// NoLayerValidation controls whether layers are checked to actually be
	// content-addressed. With this option toggled off, callers can trigger
	// layers to be indexed repeatedly by changing the identifier in the
	// manifest.
	NoLayerValidation bool
	// set to true to have libindex check and potentially run migrations
	Migrations bool
	// provides an alternative method for creating a scanner during libindex runtime
	// if nil the default factory will be used. useful for testing purposes
	ControllerFactory ControllerFactory
	// a list of ecosystems to use which define which package databases and coalescing methods we use
	Ecosystems []*indexer.Ecosystem
	// Airgap should be set to disallow any scanners that mark themselves as
	// making network calls.
	Airgap bool
	// ScannerConfig holds functions that can be passed into configurable
	// scanners. They're broken out by kind, and only used if a scanner
	// implements the appropriate interface.
	//
	// Providing a function for a scanner that's not expecting it is not a fatal
	// error.
	ScannerConfig struct {
		Package, Dist, Repo map[string]func(interface{}) error
	}
	// contains filtered or unexported fields
}

Opts are dependencies and options for constructing an instance of libindex

func (*Opts) Parse

func (o *Opts) Parse(ctx context.Context) error

Notes

Bugs

  • The pool is never explicitly closed.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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