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.