Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrChanged = errors.New("migration flag value changed")

ErrChanged indicates that a Worker has stopped because its Check result is no longer valid.

Functions

func IsTerminal

func IsTerminal(phase migration.Phase) bool

IsTerminal returns true when the given phase means a migration has finished (successfully or otherwise).

func Manifold

func Manifold(config ManifoldConfig) dependency.Manifold

Manifold packages a Worker for use in a dependency.Engine.

func NewWorker

func NewWorker(config Config) (worker.Worker, error)

NewWorker creates a *Worker and returns it as a worker.Worker.

Types

type Config

type Config struct {
	Facade Facade
	Model  string
	Check  Predicate
}

Config holds the dependencies and configuration for a Worker.

func (Config) Validate

func (config Config) Validate() error

Validate returns an error if the config cannot be expected to drive a functional Worker.

type Facade

type Facade interface {
	Watch(uuid string) (watcher.NotifyWatcher, error)
	Phase(uuid string) (migration.Phase, error)
}

Facade exposes controller functionality required by a Worker.

func NewFacade

func NewFacade(apiCaller base.APICaller) (Facade, error)

NewFacade creates a *migrationflag.Facade and returns it as a Facade.

type ManifoldConfig

type ManifoldConfig struct {
	APICallerName string
	Check         Predicate

	NewFacade func(base.APICaller) (Facade, error)
	NewWorker func(Config) (worker.Worker, error)
}

ManifoldConfig holds the dependencies and configuration for a Worker manifold.

type Predicate

type Predicate func(migration.Phase) bool

Predicate defines a predicate.

type Worker

type Worker struct {
	// contains filtered or unexported fields
}

Worker implements worker.Worker and util.Flag, and exits with ErrChanged whenever the result of its configured Check of the Model's migration phase changes.

func New

func New(config Config) (*Worker, error)

New returns a Worker that tracks the result of the configured Check on the Model's migration phase, as exposed by the Facade.

func (*Worker) Check

func (w *Worker) Check() bool

Check is part of the util.Flag interface.

func (*Worker) Kill

func (w *Worker) Kill()

Kill is part of the worker.Worker interface.

func (*Worker) Wait

func (w *Worker) Wait() error

Wait is part of the worker.Worker interface.