Help us shape the future of Go! Take the 2026 Go Developer Survey

loader

package
v0.8.6 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2021 License: Apache-2.0 Imports: 11 Imported by: 49

Documentation

Index

Constants

View Source
const ControllerID = "controllerbus/loader/1"

ControllerID is the controller identifier

Variables

View Source
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

func NewController(le *logrus.Entry, bus bus.Bus) (*Controller, error)

NewController builds a new loader controller given a bus.

func (*Controller) Close

func (c *Controller) Close() error

Close closes the controller.

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

Jump to

Keyboard shortcuts

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