Documentation
¶
Index ¶
- func CancelWait(p group.Plugin)
- func LazyConnect(finder func() (group.Plugin, error), retry time.Duration) group.Plugin
- func NewGroupPlugin(instancePlugins InstancePluginLookup, flavorPlugins FlavorPluginLookup, ...) group.Plugin
- type FlavorPluginLookup
- type InstancePluginLookup
- type Scaled
- type Supervisor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CancelWait ¶
CancelWait stops the plugin from waiting / retrying to connect
func LazyConnect ¶
LazyConnect returns a Plugin that defers connection to actual method invocation and can optionally block until the connection is made.
func NewGroupPlugin ¶
func NewGroupPlugin( instancePlugins InstancePluginLookup, flavorPlugins FlavorPluginLookup, pollInterval time.Duration, maxParallelNum uint) group.Plugin
NewGroupPlugin creates a new group plugin.
Types ¶
type FlavorPluginLookup ¶
type FlavorPluginLookup func(plugin_base.Name) (flavor.Plugin, error)
FlavorPluginLookup helps with looking up a flavor plugin by name
type InstancePluginLookup ¶
type InstancePluginLookup func(plugin_base.Name) (instance.Plugin, error)
InstancePluginLookup helps with looking up an instance plugin by name
type Scaled ¶
type Scaled interface {
// CreateOne creates a single instance in the scaled group. Parameters may be provided to customize behavior
// of the instance.
CreateOne(id *instance.LogicalID)
// Health inspects the current health state of an instance.
Health(inst instance.Description) flavor.Health
// Destroy destroys a single instance.
Destroy(inst instance.Description, ctx instance.Context) error
// List returns all instances in the group.
List() ([]instance.Description, error)
// Label makes sure all instances in the group are labelled.
Label() error
}
Scaled is a collection of instances that can be scaled up and down.
type Supervisor ¶
type Supervisor interface {
util.RunStop
ID() group.ID
Size() uint
PlanUpdate(scaled Scaled, settings groupSettings, newSettings groupSettings) (updatePlan, error)
}
Supervisor watches over a group of instances.
func NewQuorum ¶
func NewQuorum(id group.ID, scaled Scaled, logicalIDs []instance.LogicalID, pollInterval time.Duration) Supervisor
NewQuorum creates a supervisor for a group of instances operating in a quorum.
func NewScalingGroup ¶
func NewScalingGroup(id group.ID, scaled Scaled, size uint, pollInterval time.Duration, maxParallelNum uint) Supervisor
NewScalingGroup creates a supervisor that monitors a group of instances on a provisioner, attempting to maintain a desired size.