Documentation ¶
Index ¶
- Constants
- Variables
- func WaitExecControllerRunning(ctx context.Context, b bus.Bus, dir directive.Directive, disposeCb func()) (controller.Controller, directive.Instance, directive.Reference, error)
- type Controller
- type ExecController
- type ExecControllerSingleton
- func (d *ExecControllerSingleton) GetDebugVals() directive.DebugValues
- func (d *ExecControllerSingleton) GetExecControllerConfig() config.Config
- func (d *ExecControllerSingleton) GetExecControllerFactory() controller.Factory
- func (d *ExecControllerSingleton) GetName() string
- func (d *ExecControllerSingleton) GetValueOptions() directive.ValueOptions
- func (d *ExecControllerSingleton) IsEquivalent(other directive.Directive) bool
- func (d *ExecControllerSingleton) Superceeds(other directive.Directive) bool
- func (d *ExecControllerSingleton) Validate() error
- type ExecControllerValue
Constants ¶
const ControllerID = "controllerbus/loader/1"
ControllerID is the controller identifier
Variables ¶
var Version = semver.MustParse("0.0.1")
Version is the controller version
Functions ¶
func WaitExecControllerRunning ¶
func WaitExecControllerRunning( ctx context.Context, b bus.Bus, dir directive.Directive, disposeCb func(), ) (controller.Controller, directive.Instance, directive.Reference, error)
WaitExecControllerRunning executes any directive which yields ExecControllerValue and waits for either a error or success state before returning. Disposed is called if the state leaves RUNNING.
Types ¶
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
Controller implements the loader controller. It responds to ExecController directives and attaches to a bus.
func NewController ¶
NewController builds a new loader controller given a bus. If the given backoff is nil, uses the defaults.
func (*Controller) Execute ¶
func (c *Controller) Execute(ctx context.Context) error
Execute executes the loader controller.
func (*Controller) GetControllerInfo ¶
func (c *Controller) GetControllerInfo() *controller.Info
GetControllerInfo returns information about the controller.
func (*Controller) HandleDirective ¶
func (c *Controller) HandleDirective( ctx context.Context, di directive.Instance, ) (directive.Resolver, error)
HandleDirective asks if the handler can resolve the directive. If it can, it returns a resolver. If not, returns nil. Any exceptional errors are returned for logging. It is safe to add a reference to the directive during this call. The context passed is canceled when the directive instance expires.
type ExecController ¶
type ExecController interface { // Directive indicates this is a directive. directive.Directive // GetExecControllerFactory returns the factory desired to load. GetExecControllerFactory() controller.Factory // GetExecControllerConfig returns the config to load the controller with. GetExecControllerConfig() config.Config }
ExecController is a directive indicating a controller instance should be constructed and executed given a factory and a configuration. If/when the controller exits, the directive is canceled with the error.
func NewExecControllerSingleton ¶
func NewExecControllerSingleton( factory controller.Factory, config config.Config, ) ExecController
NewExecControllerSingleton constructs a new ExecController directive.
type ExecControllerSingleton ¶
type ExecControllerSingleton struct {
// contains filtered or unexported fields
}
ExecControllerSingleton is an ExecController directive. Will override or yield to exiting directives for the controller.
func (*ExecControllerSingleton) GetDebugVals ¶
func (d *ExecControllerSingleton) GetDebugVals() directive.DebugValues
GetDebugVals returns the directive arguments as k/v pairs. This is not necessarily unique, and is primarily intended for display.
func (*ExecControllerSingleton) GetExecControllerConfig ¶
func (d *ExecControllerSingleton) GetExecControllerConfig() config.Config
GetExecControllerConfig returns the config to load the controller with.
func (*ExecControllerSingleton) GetExecControllerFactory ¶
func (d *ExecControllerSingleton) GetExecControllerFactory() controller.Factory
GetExecControllerFactory returns the factory desired to load.
func (*ExecControllerSingleton) GetName ¶
func (d *ExecControllerSingleton) GetName() string
GetName returns the directive's type name. This is not necessarily unique, and is primarily intended for display.
func (*ExecControllerSingleton) GetValueOptions ¶
func (d *ExecControllerSingleton) GetValueOptions() directive.ValueOptions
GetValueOptions returns options relating to value handling.
func (*ExecControllerSingleton) IsEquivalent ¶
func (d *ExecControllerSingleton) IsEquivalent(other directive.Directive) bool
IsEquivalent checks if the other directive is equivalent. Ex: check if version range is inclusive of "other" version range.
func (*ExecControllerSingleton) Superceeds ¶
func (d *ExecControllerSingleton) Superceeds(other directive.Directive) bool
Superceeds checks if the directive overrides another. The other directive will be canceled if superceded.
func (*ExecControllerSingleton) Validate ¶
func (d *ExecControllerSingleton) Validate() error
Validate validates the directive. This is a cursory validation to see if the values "look correct."
type ExecControllerValue ¶
type ExecControllerValue interface { // GetUpdatedTimestamp returns the last time this info changed. GetUpdatedTimestamp() time.Time // GetNextRetryTimestamp returns the next time this controller will be attempted. GetNextRetryTimestamp() time.Time // GetController returns the current controller object. GetController() controller.Controller // GetError returns the error running the controller. // Controller may still be set in this case. GetError() error }
ExecControllerValue is the value emitted to satisfy the ExecController directive.
func NewExecControllerValue ¶
func NewExecControllerValue( updatedTimestamp time.Time, retryTimestamp time.Time, ctrl controller.Controller, err error, ) ExecControllerValue
NewExecControllerValue builds a new ExecControllerValue