controller

package
v0.8.7 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2022 License: Apache-2.0 Imports: 8 Imported by: 46

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConstructOpts

type ConstructOpts struct {
	// Logger is the root logger to use.
	Logger *logrus.Entry
}

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 NewInfo

func NewInfo(id string, version semver.Version, descrip string) Info

NewInfo constructs a new Info object.

func (*Info) Descriptor

func (*Info) Descriptor() ([]byte, []int)

func (*Info) GetDescription

func (m *Info) GetDescription() string

func (*Info) GetId

func (m *Info) GetId() string

func (*Info) GetVersion

func (m *Info) GetVersion() string

func (*Info) ProtoMessage

func (*Info) ProtoMessage()

func (*Info) Reset

func (m *Info) Reset()

func (*Info) String

func (m *Info) String() string

func (*Info) XXX_DiscardUnknown

func (m *Info) XXX_DiscardUnknown()

func (*Info) XXX_Marshal

func (m *Info) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Info) XXX_Merge

func (m *Info) XXX_Merge(src proto.Message)

func (*Info) XXX_Size

func (m *Info) XXX_Size() int

func (*Info) XXX_Unmarshal

func (m *Info) XXX_Unmarshal(b []byte) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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