Documentation ¶
Index ¶
- Variables
- func CAASManifolds(config ManifoldsConfig) dependency.Manifolds
- func IAASManifolds(config ManifoldsConfig) dependency.Manifolds
- func IgnoreErrRemoved(err error) error
- func IsFatal(err error) bool
- func LifeFilter(err error) error
- func WorstError(err, _ error) error
- func WrapAgent(a agent.Agent, controllerUUID, modelUUID string) (agent.Agent, error)
- type ManifoldsConfig
Constants ¶
This section is empty.
Variables ¶
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 CAASManifolds ¶
func CAASManifolds(config ManifoldsConfig) dependency.Manifolds
CAASManifolds returns a set of interdependent dependency manifolds that will run together to administer a CAAS model, as configured.
func IAASManifolds ¶
func IAASManifolds(config ManifoldsConfig) dependency.Manifolds
IAASManifolds returns a set of interdependent dependency manifolds that will run together to administer an IAAS model, as configured.
func IgnoreErrRemoved ¶
IgnoreErrRemoved returns nil if passed an error caused by ErrRemoved, and otherwise returns the original error.
func IsFatal ¶
IsFatal will probably be helpful when configuring a dependency.Engine to run the result of Manifolds.
func LifeFilter ¶
LifeFilter is used with the lifeflag manifolds -- which do not depend on runFlag -- to return appropriate errors for consumption by the enclosing dependency.Engine (and/or its IsFatal check).
func WorstError ¶
WorstError will probably be helpful when configuring a dependency.Engine to run the result of Manifolds.
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 Authority pki.Authority // 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 // LoggingContext holds the model writers so that the loggers // for the workers running on behalf of other models get their logs // written into the model's logging collection rather than the controller's. LoggingContext *loggo.Context // HTTP server mux for registering caas admission controllers Mux *apiserverhttp.Mux // 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 // StatusHistoryPruner* values control status-history pruning // behaviour. StatusHistoryPrunerInterval time.Duration // ActionPrunerInterval controls the rate at which the action pruner // worker is run. ActionPrunerInterval time.Duration // NewEnvironFunc is a function opens a provider "environment" // (typically environs.New). NewEnvironFunc environs.NewEnvironFunc // NewContainerBrokerFunc is a function opens a CAAS provider. NewContainerBrokerFunc caas.NewContainerBrokerFunc // NewMigrationMaster is called to create a new migrationmaster // worker. NewMigrationMaster func(migrationmaster.Config) (worker.Worker, error) }
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.