Documentation
¶
Index ¶
- type ConstructOpts
- type Controller
- type Factory
- type FactoryResolver
- type FactoryWithContext
- type Info
- func (i *Info) Clone() *Info
- func (m *Info) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *Info) CloneVT() *Info
- func (this *Info) EqualMessageVT(thatMsg any) bool
- func (this *Info) EqualVT(that *Info) bool
- func (x *Info) GetDescription() string
- func (x *Info) GetId() string
- func (x *Info) GetVersion() string
- func (x *Info) MarshalJSON() ([]byte, error)
- func (x *Info) MarshalProtoJSON(s *json.MarshalState)
- func (x *Info) MarshalProtoText() string
- func (m *Info) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Info) MarshalToVT(dAtA []byte) (int, error)
- func (m *Info) MarshalVT() (dAtA []byte, err error)
- func (*Info) ProtoMessage()
- func (x *Info) Reset()
- func (m *Info) SizeVT() (n int)
- func (x *Info) String() string
- func (x *Info) UnmarshalJSON(b []byte) error
- func (x *Info) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *Info) UnmarshalVT(dAtA []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 controller goroutine.
// Returning nil ends execution.
// Returning an error triggers a retry with backoff.
// Retry will NOT re-construct the controller, just re-start Execute.
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(context.Context, 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"`
// contains filtered or unexported fields
}
Info contains information about a controller.
func (*Info) CloneMessageVT ¶ added in v0.23.6
func (m *Info) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*Info) EqualMessageVT ¶ added in v0.23.6
func (*Info) GetDescription ¶
func (*Info) GetVersion ¶
func (*Info) MarshalJSON ¶ added in v0.41.0
MarshalJSON marshals the Info to JSON.
func (*Info) MarshalProtoJSON ¶ added in v0.41.0
func (x *Info) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the Info message to JSON.
func (*Info) MarshalProtoText ¶ added in v0.42.0
func (*Info) MarshalToSizedBufferVT ¶ added in v0.10.0
func (*Info) ProtoMessage ¶
func (*Info) ProtoMessage()
func (*Info) UnmarshalJSON ¶ added in v0.41.0
UnmarshalJSON unmarshals the Info from JSON.
func (*Info) UnmarshalProtoJSON ¶ added in v0.41.0
func (x *Info) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the Info message from JSON.