juju: github.com/juju/juju/worker/featureflag Index | Files

package featureflag

import "github.com/juju/juju/worker/featureflag"


Package Files

flag.go manifold.go


var ErrRefresh = errors.New("feature flag changed, restart worker")

ErrRefresh indicates that the flag's Check result is no longer valid, and a new featureflag.Worker must be started to get a valid result.

func Manifold Uses

func Manifold(config ManifoldConfig) dependency.Manifold

Manifold returns a dependency.Manifold that will run a FlagWorker and expose it to clients as a engine.Flag resource.

func NewWorker Uses

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

NewWorker creates a feature flag worker with the specified config.

type Config Uses

type Config struct {
    Source   ConfigSource
    Logger   loggo.Logger
    FlagName string
    Invert   bool

Config holds the information needed by the featureflag worker.

func (Config) Value Uses

func (config Config) Value() (bool, error)

Value returns whether the feature flag is set (inverted if necessary).

type ConfigSource Uses

type ConfigSource interface {
    WatchControllerConfig() state.NotifyWatcher
    ControllerConfig() (controller.Config, error)

ConfigSource lets us get notifications of changes to controller configuration, and then get the changed config. (Primary implementation is State.)

type ManifoldConfig Uses

type ManifoldConfig struct {
    StateName string

    FlagName  string
    Invert    bool
    Logger    loggo.Logger
    NewWorker func(Config) (worker.Worker, error)

ManifoldConfig holds the information necessary to run a featureflag.Worker in a dependency.Engine.

func (ManifoldConfig) Validate Uses

func (config ManifoldConfig) Validate() error

Validate validates the manifold configuration.

type Worker Uses

type Worker struct {
    // contains filtered or unexported fields

Worker implements worker.Worker and util.Flag, representing controller ownership of a model, such that the Flag's validity is tied to the Worker's lifetime.

func (*Worker) Check Uses

func (flag *Worker) Check() bool

Check is part of the util.Flag interface.

Check returns whether the feature flag is set (or the not set, if Invert was set).

The validity of this result is tied to the lifetime of the Worker; once the worker has stopped, no inferences may be drawn from any Check result.

func (*Worker) Kill Uses

func (flag *Worker) Kill()

Kill is part of the worker.Worker interface.

func (*Worker) Wait Uses

func (flag *Worker) Wait() error

Wait is part of the worker.Worker interface.

Package featureflag imports 10 packages (graph) and is imported by 4 packages. Updated 2018-11-17. Refresh now. Tools for package owners.