Documentation ¶
Overview ¶
Package control PluginManger manages loading, unloading, and swapping of plugins
Index ¶
- Constants
- Variables
- func MonitorDurationOption(v time.Duration) monitorOption
- func New(opts ...PluginControlOpt) *pluginControl
- func NewConfig() *config
- func OptSetPluginConfig(cf *pluginConfig) pluginManagerOpt
- type MTTrie
- func (mtt MTTrie) Add(mt *metricType)
- func (m *MTTrie) DeleteByPlugin(lp *loadedPlugin)
- func (mtt MTTrie) Fetch(ns []string) ([]*metricType, error)
- func (mtt MTTrie) Get(ns []string) ([]*metricType, error)
- func (mtt MTTrie) Remove(ns []string) error
- func (m *MTTrie) RemoveMetric(mt metricType)
- func (m *MTTrie) String() string
- type PluginControlOpt
Constants ¶
const ( // DefaultClientTimeout - default timeout for a client connection attempt DefaultClientTimeout = time.Second * 3 // DefaultHealthCheckTimeout - default timeout for a health check DefaultHealthCheckTimeout = time.Second * 1 // DefaultHealthCheckFailureLimit - how any consecutive health check timeouts must occur to trigger a failure DefaultHealthCheckFailureLimit = 3 )
const ( // PluginTrustDisabled - enum representing plugin trust disabled PluginTrustDisabled int = iota // PluginTrustEnabled - enum representing plugin trust enabled PluginTrustEnabled // PluginTrustWarn - enum representing plugin trust warning PluginTrustWarn )
const ( // MonitorStopped - enum representation of monitor stopped state MonitorStopped monitorState = iota - 1 // default is stopped // MonitorStarted - enum representation of monitor started state MonitorStarted // DefaultMonitorDuration - the default monitor duration. DefaultMonitorDuration = time.Second * 1 )
const ( // DetectedState is the detected state of a plugin DetectedState pluginState = "detected" // LoadingState is the loading state of a plugin LoadingState pluginState = "loading" // LoadedState is the loaded state of a plugin LoadedState pluginState = "loaded" // UnloadedState is the unloaded state of a plugin UnloadedState pluginState = "unloaded" )
const ( // HandlerRegistrationName is the registered name of the control runner HandlerRegistrationName = "control.runner" // PluginRunning is the running state of a plugin PluginRunning availablePluginState = iota - 1 // Default value (0) is Running // PluginStopped is the stopped state of a plugin PluginStopped // PluginDisabled is the disabled state of a plugin PluginDisabled )
Variables ¶
var ( ErrPoolNotFound = errors.New("plugin pool not found") ErrPoolEmpty = errors.New("plugin pool is empty") ErrBadKey = errors.New("bad key") ErrBadType = errors.New("bad plugin type") ErrBadStrategy = errors.New("bad strategy") )
var ( // ErrLoadedPluginNotFound - error message when a loaded plugin is not found ErrLoadedPluginNotFound = errors.New("Loaded plugin not found") // ErrControllerNotStarted - error message when the Controller was not started ErrControllerNotStarted = errors.New("Must start Controller before calling Load()") )
var ( // ErrPluginNotFound - error message when a plugin is not found ErrPluginNotFound = errors.New("plugin not found") // ErrPluginAlreadyLoaded - error message when a plugin is already loaded ErrPluginAlreadyLoaded = errors.New("plugin is already loaded") // ErrPluginNotInLoadedState - error message when a plugin must ne in a loaded state ErrPluginNotInLoadedState = errors.New("Plugin must be in a LoadedState") )
var ErrNotFound = errors.New("metric not found")
ErrNotFound is returned when Get cannot find the given namespace
Functions ¶
func MonitorDurationOption ¶
MonitorDurationOption sets monitor's duration to v.
func New ¶
func New(opts ...PluginControlOpt) *pluginControl
New returns a new pluginControl instance
func NewConfig ¶
func NewConfig() *config
NewConfig returns a reference to a global config type for the snap daemon by using a newly created empty plugin config.
func OptSetPluginConfig ¶
func OptSetPluginConfig(cf *pluginConfig) pluginManagerOpt
OptSetPluginConfig sets the config on the plugin manager
Types ¶
type MTTrie ¶
type MTTrie struct {
// contains filtered or unexported fields
}
MTTrie struct representing the root in the trie
func (MTTrie) Add ¶
func (mtt MTTrie) Add(mt *metricType)
Add adds a node with the given namespace with the given MetricType
func (*MTTrie) DeleteByPlugin ¶
func (m *MTTrie) DeleteByPlugin(lp *loadedPlugin)
DeleteByPlugin removes all metrics from the catalog if they match a loadedPlugin
func (MTTrie) Fetch ¶
Fetch collects all children below a given namespace and concatenates their metric types into a single slice
func (MTTrie) Get ¶
Get works like fetch, but only returns the MT at the given node and does not gather the node's children.
func (*MTTrie) RemoveMetric ¶
func (m *MTTrie) RemoveMetric(mt metricType)
RemoveMetric removes a specific metric by namespace and version from the tree
type PluginControlOpt ¶
type PluginControlOpt func(*pluginControl)
PluginControlOpt is used to set optional parameters on the pluginControl struct
func CacheExpiration ¶
func CacheExpiration(t time.Duration) PluginControlOpt
CacheExpiration is the PluginControlOpt which sets the global metric cache TTL
func MaxRunningPlugins ¶
func MaxRunningPlugins(m int) PluginControlOpt
MaxRunningPlugins sets the maximum number of plugins to run per pool
func OptSetConfig ¶
func OptSetConfig(cfg *config) PluginControlOpt
OptSetConfig sets the plugin control configuration.