Documentation ¶
Overview ¶
Package action defines a base action (actions get born a result of policy diff calculation), as well as context which gets passed to all actions during apply phase.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ApplyFunction ¶ added in v0.1.14
ApplyFunction is a function which applies an action
func Noop ¶ added in v0.1.14
func Noop() ApplyFunction
Noop returns a function that does nothing and returns nil
func WrapParallelWithLimit ¶ added in v0.1.15
func WrapParallelWithLimit(maxConcurrentGoRoutines int, fn ApplyFunction) ApplyFunction
WrapParallelWithLimit allows to run the provided function in parallel, but in no more than maxConcurrentGoRoutines concurrent go routines
func WrapSequential ¶ added in v0.1.14
func WrapSequential(fn ApplyFunction) ApplyFunction
WrapSequential wraps apply function to be sequential
type ApplyResult ¶ added in v0.1.14
ApplyResult is a result of applying actions
type ApplyResultUpdater ¶ added in v0.1.14
type ApplyResultUpdater interface { SetTotal(actions uint32) AddSuccess() AddFailed() AddSkipped() Done() *ApplyResult }
ApplyResultUpdater is an interface for handling revision progress stats (# of processed actions) when applying action plan
type ApplyResultUpdaterImpl ¶ added in v0.1.14
type ApplyResultUpdaterImpl struct {
Result *ApplyResult
}
ApplyResultUpdaterImpl is a default thread-safe implementation of ApplyResultUpdater
func NewApplyResultUpdaterImpl ¶ added in v0.1.14
func NewApplyResultUpdaterImpl() *ApplyResultUpdaterImpl
NewApplyResultUpdaterImpl creates a new default thread-safe implementation ApplyResultUpdaterImpl of ApplyResultUpdater
func (*ApplyResultUpdaterImpl) AddFailed ¶ added in v0.1.14
func (updater *ApplyResultUpdaterImpl) AddFailed()
AddFailed safely increments the number of failed actions
func (*ApplyResultUpdaterImpl) AddSkipped ¶ added in v0.1.14
func (updater *ApplyResultUpdaterImpl) AddSkipped()
AddSkipped safely increments the number of skipped actions
func (*ApplyResultUpdaterImpl) AddSuccess ¶ added in v0.1.14
func (updater *ApplyResultUpdaterImpl) AddSuccess()
AddSuccess safely increments the number of successfully executed actions
func (*ApplyResultUpdaterImpl) Done ¶ added in v0.1.14
func (updater *ApplyResultUpdaterImpl) Done() *ApplyResult
Done does nothing except doing an integrity check for default implementation
func (*ApplyResultUpdaterImpl) SetTotal ¶ added in v0.1.14
func (updater *ApplyResultUpdaterImpl) SetTotal(total uint32)
SetTotal safely sets the total number of actions
type Context ¶
type Context struct { DesiredPolicy *lang.Policy DesiredState *resolve.PolicyResolution ActualStateUpdater actual.StateUpdater ExternalData *external.Data Plugins plugin.Registry EventLog *event.Log }
Context is a data struct that will be passed into all state update actions, giving actions access to desired policy/state, and actual state and a way to updatae it, list of plugins, event log, etc
func NewContext ¶
func NewContext(desiredPolicy *lang.Policy, desiredState *resolve.PolicyResolution, actualStateUpdater actual.StateUpdater, externalData *external.Data, plugins plugin.Registry, eventLog *event.Log) *Context
NewContext creates a new instance of Context
type GraphNode ¶ added in v0.1.14
type GraphNode struct { // Key is unique identifier of the node Key string // Before is a map of actions which have to be executed before main actions of this node. If one of them fails, // main actions will not be executed Before []*GraphNode // BeforeRev is the opposite to Before, indicating which actions have to be executed after this node finishes // execution BeforeRev []*GraphNode // Main actions which have to be executed sequentially. If one fails, the rest will not be executed Actions []Interface }
GraphNode represents a node in the graph of apply actions
func NewGraphNode ¶ added in v0.1.14
NewGraphNode creates a new GraphNode of apply actions
func (*GraphNode) AddAction ¶ added in v0.1.14
func (node *GraphNode) AddAction(action Interface, actualState *resolve.PolicyResolution, avoidDuplicates bool)
AddAction adds an action to the list of main actions. If avoidDuplicates is true, then duplicate actions will not be added (e.g. update action)
type Interface ¶ added in v0.1.15
type Interface interface { runtime.Storable Apply(*Context) error DescribeChanges() util.NestedParameterMap }
Interface interface for all actions which perform actual state updates
type Metadata ¶
type Metadata struct {
Name string
}
Metadata is an object metadata for all state update actions
func NewMetadata ¶
NewMetadata creates new Metadata
func (*Metadata) GetNamespace ¶
GetNamespace returns a namespace for an action (it's always a system namespace)
type Plan ¶ added in v0.1.14
type Plan struct { // NodeMap is a map from key to a graph of actions, which must to be executed in order to get from actual state to // desired state. Key in the map corresponds to the key of the GraphNode NodeMap map[string]*GraphNode }
Plan is a plan of actions
func (*Plan) Apply ¶ added in v0.1.14
func (plan *Plan) Apply(fn ApplyFunction, resultUpdater ApplyResultUpdater) *ApplyResult
Apply applies the action plan. It may call fn in multiple go routines, executing the plan in parallel
func (*Plan) AsText ¶ added in v0.1.14
func (plan *Plan) AsText() *PlanAsText
AsText returns the action plan as array of actions, each represented as text via NestedParameterMap
func (*Plan) GetActionGraphNode ¶ added in v0.1.14
GetActionGraphNode returns an action graph node for a given component instance key
func (*Plan) NumberOfActions ¶ added in v0.1.14
NumberOfActions returns the total number of actions that is expected to be executed in the whole action graph
type PlanAsText ¶ added in v0.1.14
type PlanAsText struct {
Actions []util.NestedParameterMap
}
PlanAsText is a plan of actions, represented as text
func NewPlanAsText ¶ added in v0.1.14
func NewPlanAsText() *PlanAsText
NewPlanAsText returns new PlanAsText
func (*PlanAsText) String ¶ added in v0.1.15
func (t *PlanAsText) String() string
ToString returns human-readable version of the plan
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package component defines all component-specific actions, which get generated by the policy diff when component changes occur for specific component instances.
|
Package component defines all component-specific actions, which get generated by the policy diff when component changes occur for specific component instances. |