group

package
v0.0.0-...-a355528 Latest Latest
Warning

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

Go to latest
Published: Oct 27, 2017 License: Apache-2.0 Imports: 15 Imported by: 0

README

Scaler controller (container).

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CancelWait

func CancelWait(p group.Plugin)

CancelWait stops the plugin from waiting / retrying to connect

func LazyConnect

func LazyConnect(finder func() (group.Plugin, error), retry time.Duration) group.Plugin

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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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