Documentation ¶
Index ¶
- func SecretaryFinder(controllerUUID string) func(string) (Secretary, error)
- type LeadershipSecretary
- type Logger
- type Manager
- func (manager *Manager) Checker(namespace, modelUUID string) (lease.Checker, error)
- func (manager *Manager) Claimer(namespace, modelUUID string) (lease.Claimer, error)
- func (manager *Manager) Kill()
- func (manager *Manager) Pinner(namespace, modelUUID string) (lease.Pinner, error)
- func (manager *Manager) Reader(namespace, modelUUID string) (lease.Reader, error)
- func (manager *Manager) Report() map[string]interface{}
- func (manager *Manager) Revoker(namespace, modelUUID string) (lease.Revoker, error)
- func (manager *Manager) Wait() error
- type ManagerConfig
- type Secretary
- type SingularSecretary
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type LeadershipSecretary ¶
type LeadershipSecretary struct{}
LeadershipSecretary implements Secretary; it checks that leases are application names, and holders are unit names.
func (LeadershipSecretary) CheckDuration ¶
func (LeadershipSecretary) CheckDuration(duration time.Duration) error
CheckDuration is part of the lease.Secretary interface.
func (LeadershipSecretary) CheckHolder ¶
func (LeadershipSecretary) CheckHolder(name string) error
CheckHolder is part of the lease.Secretary interface.
func (LeadershipSecretary) CheckLease ¶
func (LeadershipSecretary) CheckLease(key lease.Key) error
CheckLease is part of the lease.Secretary interface.
type Logger ¶
type Logger interface { Tracef(string, ...interface{}) Debugf(string, ...interface{}) Infof(string, ...interface{}) Warningf(string, ...interface{}) Errorf(string, ...interface{}) }
Logger represents the logging methods we use from a loggo.Logger.
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager implements worker.Worker and can be bound to get lease.Checkers and lease.Claimers.
func NewDeadManager ¶
NewDeadManager returns a manager that's already dead and always returns the given error.
func NewManager ¶
func NewManager(config ManagerConfig) (*Manager, error)
NewManager returns a new *Manager configured as supplied. The caller takes responsibility for killing, and handling errors from, the returned Worker.
type ManagerConfig ¶
type ManagerConfig struct { // Secretary determines validation given a namespace. The // secretary returned is responsible for validating lease names // and holder names for that namespace. Secretary func(namespace string) (Secretary, error) // Store is responsible for recording, retrieving, and expiring leases. Store lease.Store // Logger is used to report debugging/status information as the // manager runs. Logger Logger // Clock is responsible for reporting the passage of time. Clock clock.Clock // MaxSleep is the longest time the Manager should sleep before // refreshing its store's leases and checking for expiries. MaxSleep time.Duration // EntityUUID is the entity that we are running this Manager for. Used for // logging purposes. EntityUUID string // LogDir is the directory to write a debugging log file in the // case that the worker times out waiting to shut down. LogDir string PrometheusRegisterer prometheus.Registerer }
ManagerConfig contains the resources and information required to create a Manager.
func (ManagerConfig) Validate ¶
func (config ManagerConfig) Validate() error
Validate returns an error if the configuration contains invalid information or missing resources.
type Secretary ¶
type Secretary interface { // CheckLease returns an error if the supplied lease name is not valid. CheckLease(key lease.Key) error // CheckHolder returns an error if the supplied holder name is not valid. CheckHolder(name string) error // CheckDuration returns an error if the supplied duration is not valid. CheckDuration(duration time.Duration) error }
Secretary is responsible for validating the sanity of lease and holder names before bothering the manager with them.
type SingularSecretary ¶
type SingularSecretary struct {
ControllerUUID string
}
SingularSecretary implements Secretary to restrict claims to either a lease for the controller or the specific model it's asking for, holdable only by machine-tag strings.
func (SingularSecretary) CheckDuration ¶
func (s SingularSecretary) CheckDuration(duration time.Duration) error
CheckDuration is part of the lease.Secretary interface.
func (SingularSecretary) CheckHolder ¶
func (s SingularSecretary) CheckHolder(name string) error
CheckHolder is part of the lease.Secretary interface.
func (SingularSecretary) CheckLease ¶
func (s SingularSecretary) CheckLease(key lease.Key) error
CheckLease is part of the lease.Secretary interface.