model

package
v0.0.0-...-2608902 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2016 License: AGPL-3.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrRemoved = errors.New("model removed")

ErrRemoved may be returned by some worker started from Manifolds to indicate that the model under management no longer exists.

Functions

func IgnoreErrRemoved

func IgnoreErrRemoved(err error) error

IgnoreErrRemoved returns nil if passed an error caused by ErrRemoved, and otherwise returns the original error.

func IsFatal

func IsFatal(err error) bool

IsFatal will probably be helpful when configuring a dependency.Engine to run the result of Manifolds.

func Manifolds

func Manifolds(config ManifoldsConfig) dependency.Manifolds

Manifolds returns a set of interdependent dependency manifolds that will run together to administer a model, as configured.

func WorstError

func WorstError(err, _ error) error

WorstError will probably be helpful when configuring a dependency.Engine to run the result of Manifolds.

func WrapAgent

func WrapAgent(a agent.Agent, uuid string) (agent.Agent, error)

WrapAgent wraps an agent.Agent (expected to be a machine agent, fwiw) such that its references the supplied model rather than the controller model; its config is immutable; and it doesn't use OldPassword.

It's a strong sign that the agent package needs some work...

Types

type ManifoldsConfig

type ManifoldsConfig struct {

	// Agent identifies, and exposes configuration for, the controller
	// machine running these manifolds and the model the manifolds
	// should administer.
	//
	// You should almost certainly set this value to one created by
	// model.WrapAgent.
	Agent coreagent.Agent

	// AgentConfigChanged will be set whenever the agent's api config
	// is updated
	AgentConfigChanged *voyeur.Value

	// Clock supplies timing services to any manifolds that need them.
	// Only a few workers have been converted to use them fo far.
	Clock clock.Clock

	// RunFlagDuration defines for how long this controller will ask
	// for model administration rights; most of the workers controlled
	// by this agent will only be started when the run flag is known
	// to be held.
	RunFlagDuration time.Duration

	// CharmRevisionUpdateInterval determines how often the charm-
	// revision worker will check for new revisions of known charms.
	CharmRevisionUpdateInterval time.Duration

	// EntityStatusHistory* values control status-history pruning
	// behaviour per entity.
	EntityStatusHistoryCount    uint
	EntityStatusHistoryInterval time.Duration

	// SpacesImportedGate will be unlocked when spaces are known to
	// have been imported.
	SpacesImportedGate gate.Lock
}

ManifoldsConfig holds the dependencies and configuration options for a model agent: that is, for the set of interdependent workers that observe and manipulate a single model.

Jump to

Keyboard shortcuts

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