Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MergeSR ¶
func MergeSR(source *claircore.IndexReport, merge []*claircore.IndexReport) *claircore.IndexReport
MergeSR merges IndexReports.
"Source" is the IndexReport that the Indexer is working on. "Merge" is a slice of IndexReports returned from Coalescers.
The "SR" suffix is a historical accident.
Types ¶
type Controller ¶
type Controller struct { // holds dependencies for a indexer.controller *indexer.Options // Realizer is scoped to a single request Realizer indexer.Realizer // Vscnrs are the scanners that are used during indexing Vscnrs indexer.VersionedScanners // contains filtered or unexported fields }
Controller is a control structure for scanning a manifest.
Controller is implemented as an FSM.
func New ¶
func New(options *indexer.Options) *Controller
New constructs a controller given an Opts struct
func (*Controller) Index ¶
func (s *Controller) Index(ctx context.Context, manifest *claircore.Manifest) (*claircore.IndexReport, error)
Index kicks off an index of a particular manifest. Initial state set in constructor.
type State ¶
type State int
State is a specific state in the indexer fsm
const ( // Terminal is the state which halts the fsm and returns the current s.result to the caller Terminal State = iota // CheckManifest determines if the manifest should be scanned. // if no Terminal is returned and we return the existing IndexReport. // Transitions: FetchLayers, Terminal CheckManifest // FetchLayers retrieves all the layers in a manifest and stacks them the same obtain the file image contents. // creates the "image" layer // Transitions: ScanLayers FetchLayers // ScanLayers scans each image including the image layer and indexes the contents // Transitions: Coalesce ScanLayers // Coalesce runs each provided ecosystem's coalescer and merges their scan results // Transitions: IndexManifest Coalesce // IndexManifest evaluates a coalesced IndexReport and writes it's contents // to the the persistence layer where it maybe searched. // Transitions: IndexFinished IndexManifest // IndexError state indicates a impassable error has occurred. // returns a ScanResult with the error field // Transitions: Terminal IndexError // IndexFinished state is the terminal state and should return a IndexReport // to the caller of Scan() // Transitions: Terminal IndexFinished )
States and their explanations. Each state is implemented by a stateFunc implemented in their own files.
func (*State) FromString ¶
func (State) MarshalJSON ¶
func (*State) UnmarshalJSON ¶
Click to show internal directories.
Click to hide internal directories.