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

pluginmanager

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2020 License: MPL-2.0 Imports: 4 Imported by: 66

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FingerprintingPluginManager

type FingerprintingPluginManager interface {
	PluginManager

	// WaitForFirstFingerprint returns a channel that is closed once all plugin
	// instances managed by the plugin manager have fingerprinted once. A
	// context can be passed which when done will also close the channel
	WaitForFirstFingerprint(context.Context) <-chan struct{}
}

FingerprintingPluginManager is an interface that exposes fingerprinting coordination for plugin managers

type MockPluginManager

type MockPluginManager struct {
	RunF      func()
	ShutdownF func()
}

func (*MockPluginManager) PluginType

func (m *MockPluginManager) PluginType() string

func (*MockPluginManager) Run

func (m *MockPluginManager) Run()

func (*MockPluginManager) Shutdown

func (m *MockPluginManager) Shutdown()

type PluginGroup

type PluginGroup struct {
	// contains filtered or unexported fields
}

PluginGroup is a utility struct to manage a collectively orchestrate a set of PluginManagers

func New

func New(logger log.Logger) *PluginGroup

New returns an initialized PluginGroup

func (*PluginGroup) RegisterAndRun

func (m *PluginGroup) RegisterAndRun(manager PluginManager) error

RegisterAndRun registers the manager and starts it in a separate goroutine

func (*PluginGroup) Shutdown

func (m *PluginGroup) Shutdown()

Shutdown shutsdown all registered PluginManagers in reverse order of how they were started.

func (*PluginGroup) WaitForFirstFingerprint

func (m *PluginGroup) WaitForFirstFingerprint(ctx context.Context) (<-chan struct{}, error)

Ready returns a channel which will be closed once all plugin managers are ready. A timeout for waiting on each manager is given

type PluginManager

type PluginManager interface {
	// Run starts a plugin manager and should return early
	Run()

	// Shutdown should gracefully shutdown all plugins managed by the manager.
	// It must block until shutdown is complete
	Shutdown()

	// PluginType is the type of plugin which the manager manages
	PluginType() string
}

PluginManager orchestrates the lifecycle of a set of plugins

Directories

Path Synopsis
* csimanager manages locally running CSI Plugins on a Nomad host, and provides a few different interfaces.
* csimanager manages locally running CSI Plugins on a Nomad host, and provides a few different interfaces.

Jump to

Keyboard shortcuts

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