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.