dashboardexecute

package
v0.22.2 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2024 License: AGPL-3.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Executor = newDashboardExecutor()

Functions

func ExecutionCompleteToSnapshot added in v0.17.0

func ExecutionCompleteToSnapshot(event *dashboardevents.ExecutionComplete) *dashboardtypes.SteampipeSnapshot

ExecutionCompleteToSnapshot transforms the ExecutionComplete event into a SteampipeSnapshot

func GenerateSnapshot added in v0.17.0

func GenerateSnapshot(ctx context.Context, target string, initData *initialisation.InitData, inputs map[string]any) (snapshot *dashboardtypes.SteampipeSnapshot, err error)

func GetReferencedVariables added in v0.17.0

func GetReferencedVariables(root dashboardtypes.DashboardTreeRun, w *workspace.Workspace) map[string]string

GetReferencedVariables builds map of variables values containing only those mod variables which are referenced NOTE: we refer to variables in dependency mods in the format which is valid for an SPVARS filer, i.e. <mod>.<var-name> the VariableValues map will contain these variables with the name format <mod>.var.<var-name>, so we must convert the name

Types

type CheckRun

type CheckRun struct {
	DashboardParentImpl

	Summary   *controlexecute.GroupSummary `json:"summary"`
	SessionId string                       `json:"-"`
	// if the dashboard node is a control, serialise to json as 'properties'
	Control *modconfig.Control               `json:"properties,omitempty"`
	Root    controlexecute.ExecutionTreeNode `json:"-"`
	// contains filtered or unexported fields
}

CheckRun is a struct representing the execution of a control or benchmark

func NewCheckRun

func NewCheckRun(resource modconfig.DashboardLeafNode, parent dashboardtypes.DashboardParent, executionTree *DashboardExecutionTree) (*CheckRun, error)

func (*CheckRun) AsTreeNode

func (r *CheckRun) AsTreeNode() *dashboardtypes.SnapshotTreeNode

func (*CheckRun) BuildSnapshotPanels added in v0.17.0

func (r *CheckRun) BuildSnapshotPanels(leafNodeMap map[string]dashboardtypes.SnapshotPanel) map[string]dashboardtypes.SnapshotPanel

BuildSnapshotPanels is a custom implementation of BuildSnapshotPanels - be nice to just use the DashboardExecutionTree but work is needed on common interface types/generics

func (*CheckRun) ChildrenComplete

func (r *CheckRun) ChildrenComplete() bool

ChildrenComplete implements DashboardTreeRun (override base)

func (*CheckRun) Execute

func (r *CheckRun) Execute(ctx context.Context)

Execute implements DashboardTreeRun

func (*CheckRun) Initialise

func (r *CheckRun) Initialise(ctx context.Context)

Initialise implements DashboardTreeRun

func (*CheckRun) IsSnapshotPanel

func (*CheckRun) IsSnapshotPanel()

IsSnapshotPanel implements SnapshotPanel

func (*CheckRun) SetComplete

func (r *CheckRun) SetComplete(ctx context.Context)

SetComplete implements DashboardTreeRun (override to set snapshothook status

func (*CheckRun) SetError

func (r *CheckRun) SetError(ctx context.Context, err error)

SetError implements DashboardTreeRun (override to set snapshothook status

type DashboardContainerRun

type DashboardContainerRun struct {
	DashboardParentImpl
	// contains filtered or unexported fields
}

DashboardContainerRun is a struct representing a container run

func (*DashboardContainerRun) AsTreeNode

func (*DashboardContainerRun) Execute

func (r *DashboardContainerRun) Execute(ctx context.Context)

Execute implements DashboardTreeRun execute all children and wait for them to complete

func (*DashboardContainerRun) Initialise

func (r *DashboardContainerRun) Initialise(ctx context.Context)

Initialise implements DashboardTreeRun

func (*DashboardContainerRun) IsSnapshotPanel

func (*DashboardContainerRun) IsSnapshotPanel()

IsSnapshotPanel implements SnapshotPanel

type DashboardEventControlHooks added in v0.17.0

type DashboardEventControlHooks struct {
	CheckRun *CheckRun
}

DashboardEventControlHooks is a struct which implements ControlHooks, and raises ControlComplete and ControlError dashboard events

func NewDashboardEventControlHooks added in v0.17.0

func NewDashboardEventControlHooks(r *CheckRun) *DashboardEventControlHooks

func (*DashboardEventControlHooks) OnComplete added in v0.17.0

func (*DashboardEventControlHooks) OnControlComplete added in v0.17.0

func (*DashboardEventControlHooks) OnControlError added in v0.17.0

func (*DashboardEventControlHooks) OnControlStart added in v0.17.0

func (*DashboardEventControlHooks) OnStart added in v0.17.0

type DashboardExecutionTree

type DashboardExecutionTree struct {
	Root dashboardtypes.DashboardTreeRun
	// contains filtered or unexported fields
}

DashboardExecutionTree is a structure representing the control result hierarchy

func NewDashboardExecutionTree

func NewDashboardExecutionTree(rootName string, sessionId string, client db_common.Client, workspace *workspace.Workspace) (*DashboardExecutionTree, error)

func (*DashboardExecutionTree) AsTreeNode added in v0.19.0

func (*DashboardExecutionTree) BuildSnapshotPanels added in v0.17.0

func (e *DashboardExecutionTree) BuildSnapshotPanels() map[string]dashboardtypes.SnapshotPanel

func (*DashboardExecutionTree) Cancel

func (e *DashboardExecutionTree) Cancel()

func (*DashboardExecutionTree) ChildCompleteChan

func (e *DashboardExecutionTree) ChildCompleteChan() chan dashboardtypes.DashboardTreeRun

ChildCompleteChan implements DashboardParent

func (*DashboardExecutionTree) ChildStatusChanged added in v0.19.0

func (*DashboardExecutionTree) ChildStatusChanged(context.Context)

ChildStatusChanged implements DashboardParent

func (*DashboardExecutionTree) ChildrenComplete added in v0.19.0

func (e *DashboardExecutionTree) ChildrenComplete() bool

ChildrenComplete implements DashboardParent

func (*DashboardExecutionTree) Execute

func (e *DashboardExecutionTree) Execute(ctx context.Context)

func (*DashboardExecutionTree) GetChildren added in v0.19.0

GetChildren implements DashboardParent

func (*DashboardExecutionTree) GetError added in v0.19.0

func (e *DashboardExecutionTree) GetError() error

func (*DashboardExecutionTree) GetInputsDependingOn added in v0.19.0

func (e *DashboardExecutionTree) GetInputsDependingOn(s string) []string

func (*DashboardExecutionTree) GetName

func (e *DashboardExecutionTree) GetName() string

GetName implements DashboardParent use mod short name - this will be the root name for all child runs

func (*DashboardExecutionTree) GetNodeType added in v0.19.0

func (*DashboardExecutionTree) GetNodeType() string

GetNodeType implements DashboardTreeRun

func (*DashboardExecutionTree) GetParent added in v0.19.0

GetParent implements DashboardTreeRun

func (*DashboardExecutionTree) GetResource added in v0.19.0

func (*DashboardExecutionTree) GetRunStatus

GetRunStatus returns the stats of the Root run

func (*DashboardExecutionTree) GetTitle added in v0.19.0

func (e *DashboardExecutionTree) GetTitle() string

func (*DashboardExecutionTree) Initialise added in v0.19.0

func (e *DashboardExecutionTree) Initialise(ctx context.Context)

func (*DashboardExecutionTree) InputRuntimeDependencies added in v0.19.0

func (e *DashboardExecutionTree) InputRuntimeDependencies() []string

InputRuntimeDependencies returns the names of all inputs which are runtime dependencies

func (*DashboardExecutionTree) RunComplete added in v0.19.0

func (e *DashboardExecutionTree) RunComplete() bool

func (*DashboardExecutionTree) SetComplete added in v0.19.0

func (e *DashboardExecutionTree) SetComplete(ctx context.Context)

func (*DashboardExecutionTree) SetError

func (e *DashboardExecutionTree) SetError(ctx context.Context, err error)

SetError sets the error on the Root run

func (*DashboardExecutionTree) SetInputValues added in v0.19.0

func (e *DashboardExecutionTree) SetInputValues(inputValues map[string]any)

type DashboardExecutor

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

func (*DashboardExecutor) CancelExecutionForSession

func (e *DashboardExecutor) CancelExecutionForSession(_ context.Context, sessionId string)

func (*DashboardExecutor) ExecuteDashboard

func (e *DashboardExecutor) ExecuteDashboard(ctx context.Context, sessionId, dashboardName string, inputs map[string]any, workspace *workspace.Workspace, client db_common.Client) (err error)

func (*DashboardExecutor) LoadSnapshot added in v0.17.0

func (e *DashboardExecutor) LoadSnapshot(ctx context.Context, sessionId, snapshotName string, w *workspace.Workspace) (map[string]any, error)

func (*DashboardExecutor) OnInputChanged

func (e *DashboardExecutor) OnInputChanged(ctx context.Context, sessionId string, inputs map[string]any, changedInput string) error

type DashboardParentImpl added in v0.19.0

type DashboardParentImpl struct {
	DashboardTreeRunImpl
	// contains filtered or unexported fields
}

func (*DashboardParentImpl) ChildCompleteChan added in v0.19.0

func (r *DashboardParentImpl) ChildCompleteChan() chan dashboardtypes.DashboardTreeRun

func (*DashboardParentImpl) ChildStatusChanged added in v0.19.0

func (r *DashboardParentImpl) ChildStatusChanged(ctx context.Context)

func (*DashboardParentImpl) ChildrenComplete added in v0.19.0

func (r *DashboardParentImpl) ChildrenComplete() bool

ChildrenComplete implements DashboardTreeRun

func (*DashboardParentImpl) GetChildren added in v0.19.0

GetChildren implements DashboardTreeRun

type DashboardRun

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

DashboardRun is a struct representing a container run

func NewDashboardRun

func NewDashboardRun(dashboard *modconfig.Dashboard, parent dashboardtypes.DashboardParent, executionTree *DashboardExecutionTree) (*DashboardRun, error)

func (*DashboardRun) AsTreeNode

func (r *DashboardRun) AsTreeNode() *dashboardtypes.SnapshotTreeNode

func (*DashboardRun) Execute

func (r *DashboardRun) Execute(ctx context.Context)

Execute implements DashboardTreeRun execute all children and wait for them to complete

func (*DashboardRun) GetInput

func (r *DashboardRun) GetInput(name string) (*modconfig.DashboardInput, bool)

GetInput searches for an input with the given name

func (*DashboardRun) GetInputsDependingOn

func (r *DashboardRun) GetInputsDependingOn(changedInputName string) []string

GetInputsDependingOn returns a list o DashboardInputs which have a runtime dependency on the given input

func (*DashboardRun) GetName

func (p *DashboardRun) GetName() string

func (*DashboardRun) GetWithRuns added in v0.21.0

func (p *DashboardRun) GetWithRuns() map[string]*LeafRun

func (*DashboardRun) Initialise

func (r *DashboardRun) Initialise(ctx context.Context)

Initialise implements DashboardTreeRun

func (*DashboardRun) IsSnapshotPanel

func (*DashboardRun) IsSnapshotPanel()

IsSnapshotPanel implements SnapshotPanel

func (*DashboardRun) ProvidesRuntimeDependency added in v0.21.0

func (p *DashboardRun) ProvidesRuntimeDependency(dependency *modconfig.RuntimeDependency) bool

func (*DashboardRun) PublishRuntimeDependencyValue added in v0.21.0

func (p *DashboardRun) PublishRuntimeDependencyValue(name string, result *dashboardtypes.ResolvedRuntimeDependencyValue)

func (*DashboardRun) SubscribeToRuntimeDependency added in v0.21.0

func (p *DashboardRun) SubscribeToRuntimeDependency(name string, opts ...RuntimeDependencyPublishOption) chan *dashboardtypes.ResolvedRuntimeDependencyValue

type DashboardTreeRunImpl added in v0.19.0

type DashboardTreeRunImpl struct {
	DashboardName    string                   `json:"dashboard"`
	Description      string                   `json:"description,omitempty"`
	Display          string                   `cty:"display" hcl:"display" json:"display,omitempty"`
	Documentation    string                   `json:"documentation,omitempty"`
	ErrorString      string                   `json:"error,omitempty"`
	Name             string                   `json:"name"`
	NodeType         string                   `json:"panel_type"`
	SourceDefinition string                   `json:"source_definition"`
	Status           dashboardtypes.RunStatus `json:"status"`
	Tags             map[string]string        `json:"tags,omitempty"`
	Title            string                   `json:"title,omitempty"`
	Type             string                   `json:"display_type,omitempty"`
	Width            int                      `json:"width,omitempty"`
	// contains filtered or unexported fields
}

func (*DashboardTreeRunImpl) AsTreeNode added in v0.19.0

AsTreeNode implements DashboardTreeRun

func (*DashboardTreeRunImpl) Execute added in v0.19.0

func (r *DashboardTreeRunImpl) Execute(ctx context.Context)

Execute implements DashboardTreeRun

func (*DashboardTreeRunImpl) GetError added in v0.19.0

func (r *DashboardTreeRunImpl) GetError() error

GetError implements DashboardTreeRun

func (*DashboardTreeRunImpl) GetInputsDependingOn added in v0.19.0

func (r *DashboardTreeRunImpl) GetInputsDependingOn(_ string) []string

GetInputsDependingOn implements DashboardTreeRun defaults to nothing

func (*DashboardTreeRunImpl) GetName added in v0.19.0

func (r *DashboardTreeRunImpl) GetName() string

GetName implements DashboardTreeRun

func (*DashboardTreeRunImpl) GetNodeType added in v0.19.0

func (r *DashboardTreeRunImpl) GetNodeType() string

GetNodeType implements DashboardTreeRun

func (*DashboardTreeRunImpl) GetParent added in v0.19.0

GetParent implements DashboardTreeRun

func (*DashboardTreeRunImpl) GetResource added in v0.19.0

GetResource implements DashboardTreeRun

func (*DashboardTreeRunImpl) GetRunStatus added in v0.19.0

func (r *DashboardTreeRunImpl) GetRunStatus() dashboardtypes.RunStatus

GetRunStatus implements DashboardTreeRun

func (*DashboardTreeRunImpl) GetTitle added in v0.19.0

func (r *DashboardTreeRunImpl) GetTitle() string

GetTitle implements DashboardTreeRun

func (*DashboardTreeRunImpl) Initialise added in v0.19.0

func (r *DashboardTreeRunImpl) Initialise(context.Context)

Initialise implements DashboardTreeRun

func (*DashboardTreeRunImpl) RunComplete added in v0.19.0

func (r *DashboardTreeRunImpl) RunComplete() bool

RunComplete implements DashboardTreeRun

func (*DashboardTreeRunImpl) SetComplete added in v0.19.0

func (r *DashboardTreeRunImpl) SetComplete(ctx context.Context)

SetComplete implements DashboardTreeRun

func (*DashboardTreeRunImpl) SetError added in v0.19.0

func (r *DashboardTreeRunImpl) SetError(ctx context.Context, err error)

SetError implements DashboardTreeRun

type LeafRun

type LeafRun struct {
	// all RuntimeDependencySubscribers are also publishers as they have args/params
	RuntimeDependencySubscriberImpl
	Resource modconfig.DashboardLeafNode `json:"properties,omitempty"`

	Data         *dashboardtypes.LeafData  `json:"data,omitempty"`
	TimingResult *queryresult.TimingResult `json:"-"`
	// contains filtered or unexported fields
}

LeafRun is a struct representing the execution of a leaf dashboard node

func NewLeafRun

func NewLeafRun(resource modconfig.DashboardLeafNode, parent dashboardtypes.DashboardParent, executionTree *DashboardExecutionTree, opts ...LeafRunOption) (*LeafRun, error)

func (*LeafRun) AsTreeNode

func (r *LeafRun) AsTreeNode() *dashboardtypes.SnapshotTreeNode

func (*LeafRun) Execute

func (r *LeafRun) Execute(ctx context.Context)

Execute implements DashboardTreeRun

func (*LeafRun) GetName

func (p *LeafRun) GetName() string

func (*LeafRun) GetWithRuns added in v0.21.0

func (p *LeafRun) GetWithRuns() map[string]*LeafRun

func (*LeafRun) Initialise

func (p *LeafRun) Initialise(context.Context)

func (*LeafRun) IsSnapshotPanel

func (*LeafRun) IsSnapshotPanel()

IsSnapshotPanel implements SnapshotPanel

func (*LeafRun) ProvidesRuntimeDependency added in v0.21.0

func (p *LeafRun) ProvidesRuntimeDependency(dependency *modconfig.RuntimeDependency) bool

func (*LeafRun) PublishRuntimeDependencyValue added in v0.21.0

func (p *LeafRun) PublishRuntimeDependencyValue(name string, result *dashboardtypes.ResolvedRuntimeDependencyValue)

func (*LeafRun) SetComplete

func (r *LeafRun) SetComplete(ctx context.Context)

SetComplete implements DashboardTreeRun (override to set snapshothook status

func (*LeafRun) SetError

func (r *LeafRun) SetError(ctx context.Context, err error)

SetError implements DashboardTreeRun (override to set snapshothook status)

func (*LeafRun) SubscribeToRuntimeDependency added in v0.21.0

func (p *LeafRun) SubscribeToRuntimeDependency(name string, opts ...RuntimeDependencyPublishOption) chan *dashboardtypes.ResolvedRuntimeDependencyValue

type LeafRunOption added in v0.19.0

type LeafRunOption = func(target *LeafRun)

type RuntimeDependencyPublishOption added in v0.19.0

type RuntimeDependencyPublishOption = func(target *RuntimeDependencyPublishTarget)

type RuntimeDependencyPublishTarget added in v0.19.0

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

type RuntimeDependencyPublisher added in v0.19.0

type RuntimeDependencyPublisher interface {
	dashboardtypes.DashboardTreeRun
	ProvidesRuntimeDependency(dependency *modconfig.RuntimeDependency) bool
	SubscribeToRuntimeDependency(name string, opts ...RuntimeDependencyPublishOption) chan *dashboardtypes.ResolvedRuntimeDependencyValue
	PublishRuntimeDependencyValue(name string, result *dashboardtypes.ResolvedRuntimeDependencyValue)
	GetWithRuns() map[string]*LeafRun
}

type RuntimeDependencySubscriber added in v0.19.0

type RuntimeDependencySubscriber interface {
	RuntimeDependencyPublisher
	GetBaseDependencySubscriber() RuntimeDependencySubscriber
}

type RuntimeDependencySubscriberImpl added in v0.19.0

type RuntimeDependencySubscriberImpl struct {
	RawSQL string `json:"sql,omitempty"`

	// a list of the (scoped) names of any runtime dependencies that we rely on
	RuntimeDependencyNames []string `json:"dependencies,omitempty"`
	// contains filtered or unexported fields
}

func (*RuntimeDependencySubscriberImpl) AsTreeNode added in v0.21.0

func (p *RuntimeDependencySubscriberImpl) AsTreeNode() *dashboardtypes.SnapshotTreeNode

func (*RuntimeDependencySubscriberImpl) Execute added in v0.21.0

func (p *RuntimeDependencySubscriberImpl) Execute(context.Context)

func (*RuntimeDependencySubscriberImpl) GetBaseDependencySubscriber added in v0.19.0

func (s *RuntimeDependencySubscriberImpl) GetBaseDependencySubscriber() RuntimeDependencySubscriber

GetBaseDependencySubscriber implements RuntimeDependencySubscriber

func (*RuntimeDependencySubscriberImpl) GetName added in v0.21.0

func (p *RuntimeDependencySubscriberImpl) GetName() string

func (*RuntimeDependencySubscriberImpl) GetWithRuns added in v0.21.0

func (p *RuntimeDependencySubscriberImpl) GetWithRuns() map[string]*LeafRun

func (*RuntimeDependencySubscriberImpl) Initialise added in v0.21.0

func (p *RuntimeDependencySubscriberImpl) Initialise(context.Context)

func (*RuntimeDependencySubscriberImpl) ProvidesRuntimeDependency added in v0.21.0

func (p *RuntimeDependencySubscriberImpl) ProvidesRuntimeDependency(dependency *modconfig.RuntimeDependency) bool

func (*RuntimeDependencySubscriberImpl) PublishRuntimeDependencyValue added in v0.21.0

func (p *RuntimeDependencySubscriberImpl) PublishRuntimeDependencyValue(name string, result *dashboardtypes.ResolvedRuntimeDependencyValue)

func (*RuntimeDependencySubscriberImpl) SubscribeToRuntimeDependency added in v0.21.0

func (p *RuntimeDependencySubscriberImpl) SubscribeToRuntimeDependency(name string, opts ...RuntimeDependencyPublishOption) chan *dashboardtypes.ResolvedRuntimeDependencyValue

Jump to

Keyboard shortcuts

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