juju: github.com/wallyworld/juju/worker/lease/manifold Index | Files

package manifold

import "github.com/wallyworld/juju/worker/lease/manifold"

Index

Package Files

manifold.go

Constants

const (
    // MaxSleep is the longest the manager will sleep before checking
    // whether any leases should be expired. If it can see a lease
    // expiring sooner than that it will still wake up earlier.
    MaxSleep = time.Minute

    // ForwardTimeout is how long the store should wait for a response
    // after sending a lease operation over the hub before deciding a
    // a response is never coming back (for example if we send the
    // request during a raft-leadership election). This should be long
    // enough that we can be very confident the request was missed.
    ForwardTimeout = 5 * time.Second
)

func Manifold Uses

func Manifold(config ManifoldConfig) dependency.Manifold

Manifold builds a dependency.Manifold for running a lease manager.

func NewStore Uses

func NewStore(config raftlease.StoreConfig) *raftlease.Store

NewStore is a shim to make a raftlease.Store for testability.

func NewWorker Uses

func NewWorker(config lease.ManagerConfig) (worker.Worker, error)

NewWorker wraps NewManager to return worker.Worker for testability.

type ManifoldConfig Uses

type ManifoldConfig struct {
    AgentName      string
    ClockName      string
    CentralHubName string
    StateName      string

    FSM                  *raftlease.FSM
    RequestTopic         string
    Logger               lease.Logger
    LogDir               string
    PrometheusRegisterer prometheus.Registerer
    NewWorker            func(lease.ManagerConfig) (worker.Worker, error)
    NewStore             func(raftlease.StoreConfig) *raftlease.Store
}

ManifoldConfig holds the resources needed to start the lease manager in a dependency engine.

func (ManifoldConfig) Validate Uses

func (c ManifoldConfig) Validate() error

Validate checks that the config has all the required values.

Package manifold imports 16 packages (graph). Updated 2020-05-02. Refresh now. Tools for package owners.