Documentation ¶
Index ¶
- type ConstructOpts
- type Controller
- type Factory
- type FactoryResolver
- type FactoryWithContext
- type Info
- func (*Info) Descriptor() ([]byte, []int)
- func (m *Info) GetDescription() string
- func (m *Info) GetId() string
- func (m *Info) GetVersion() string
- func (*Info) ProtoMessage()
- func (m *Info) Reset()
- func (m *Info) String() string
- func (m *Info) XXX_DiscardUnknown()
- func (m *Info) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Info) XXX_Merge(src proto.Message)
- func (m *Info) XXX_Size() int
- func (m *Info) XXX_Unmarshal(b []byte) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConstructOpts ¶
ConstructOpts contains optional parameters when constructing a controller.
func (*ConstructOpts) GetLogger ¶
func (c *ConstructOpts) GetLogger() *logrus.Entry
GetLogger returns the specified logger or a default one if nil.
type Controller ¶
type Controller interface { // Handler handles directives. directive.Handler // GetControllerInfo returns information about the controller. GetControllerInfo() Info // Execute executes the given controller. // Returning nil ends execution. // Returning an error triggers a retry with backoff. Execute(ctx context.Context) error // Close releases any resources used by the controller. // Error indicates any issue encountered releasing. Close() error }
Controller tracks a particular process.
type Factory ¶
type Factory interface { // GetConfigID returns the unique config ID for the controller. GetConfigID() string // ConstructConfig constructs an instance of the controller configuration. ConstructConfig() config.Config // Construct constructs the associated controller given configuration. Construct(config.Config, ConstructOpts) (Controller, error) // GetVersion returns the version of this controller. GetVersion() semver.Version }
Factory represents an available controller implementation. The factory can construct instances of the controller given configuration.
type FactoryResolver ¶
type FactoryResolver interface { // GetResolverID returns the resolver identifier. // Ex: static, go-plugin GetResolverID() string // GetResolverVersion returns the resolver version. GetResolverVersion() semver.Version // GetConfigCtorByID returns a config constructor by ID. // If none found, return nil, nil GetConfigCtorByID(ctx context.Context, id string) (config.Constructor, error) // GetFactoryMatchingConfig returns the factory that matches the config. // If no factory is found, return nil. // If an unexpected error occurs, return it. GetFactoryMatchingConfig(ctx context.Context, conf config.Config) (Factory, error) }
FactoryResolver looks up factories that match configurations.
type FactoryWithContext ¶
type FactoryWithContext interface { Factory // GetFactoryContext returns a context that is canceled if the factory is unloaded. GetFactoryContext() context.Context }
FactoryWithContext is a factory with a cancelation context.
type Info ¶
type Info struct { // Id contains the identifier of the controller. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Version contains the version string for the controller. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // Description contains a descriptive string about the controller. Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
Info contains information about a controller.
func (*Info) Descriptor ¶
func (*Info) GetDescription ¶
func (*Info) GetVersion ¶
func (*Info) ProtoMessage ¶
func (*Info) ProtoMessage()
func (*Info) XXX_DiscardUnknown ¶
func (m *Info) XXX_DiscardUnknown()
func (*Info) XXX_Unmarshal ¶
Click to show internal directories.
Click to hide internal directories.