juju: github.com/juju/juju/worker/raft/raftflag Index | Files

package raftflag

import "github.com/juju/juju/worker/raft/raftflag"

Index

Package Files

flag.go manifold.go

Variables

var ErrRefresh = errors.New("raft leadership changed, restart worker")

ErrRefresh indicates that the flag's Check result is no longer valid, and a new raftflag.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)

type Config Uses

type Config struct {
    Raft *raft.Raft
}

Config holds a raftflag.Worker's dependencies and resources.

func (Config) Validate Uses

func (config Config) Validate() error

Validate returns an error if the config cannot be expected to run a raftflag.Worker.

type ManifoldConfig Uses

type ManifoldConfig struct {
    RaftName string

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

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

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 true if the flag indicates that the controller agent is the current raft leader.

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 raftflag imports 7 packages (graph) and is imported by 3 packages. Updated 2018-08-31. Refresh now. Tools for package owners.