Documentation ¶
Index ¶
- Constants
- type GetSettingsFn
- type LeaderCheckFn
- type LeadershipService
- type LeadershipSettingsAccessor
- func (lsa *LeadershipSettingsAccessor) Merge(bulkArgs params.MergeLeadershipSettingsBulkParams) (params.ErrorResults, error)
- func (lsa *LeadershipSettingsAccessor) Read(bulkArgs params.Entities) (params.GetLeadershipSettingsBulkResults, error)
- func (lsa *LeadershipSettingsAccessor) WatchLeadershipSettings(bulkArgs params.Entities) (params.NotifyWatchResults, error)
- type MergeSettingsChunkFn
- type RegisterWatcherFn
Constants ¶
const ( // FacadeName is the string-representation of this API used both // to register the service, and for the client to resolve the // service endpoint. FacadeName = "LeadershipService" // MinLeaseRequest is the shortest duration for which we will accept // a leadership claim. MinLeaseRequest = 5 * time.Second // MaxLeaseRequest is the longest duration for which we will accept // a leadership claim. MaxLeaseRequest = 5 * time.Minute )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GetSettingsFn ¶
GetSettingsFn declares a function-type which will return leadership settings for the given service ID.
type LeaderCheckFn ¶
type LeaderCheckFn func(serviceId, unitId string) leadership.Token
LeaderCheckFn returns a Token whose Check method will return an error if the unit is not leader of the service.
type LeadershipService ¶
type LeadershipService interface { // ClaimLeadership makes a leadership claim with the given parameters. ClaimLeadership(params params.ClaimLeadershipBulkParams) (params.ClaimLeadershipBulkResults, error) // BlockUntilLeadershipReleased blocks the caller until leadership is // released for the given service. BlockUntilLeadershipReleased(ApplicationTag names.ApplicationTag) (params.ErrorResult, error) }
LeadershipService implements a variant of leadership.Claimer for consumption over the API.
func NewLeadershipService ¶
func NewLeadershipService( claimer leadership.Claimer, authorizer facade.Authorizer, ) (LeadershipService, error)
NewLeadershipService constructs a new LeadershipService.
func NewLeadershipServiceFacade ¶
func NewLeadershipServiceFacade( state *state.State, resources facade.Resources, authorizer facade.Authorizer, ) (LeadershipService, error)
NewLeadershipServiceFacade constructs a new LeadershipService and presents a signature that can be used with RegisterStandardFacade.
type LeadershipSettingsAccessor ¶
type LeadershipSettingsAccessor struct {
// contains filtered or unexported fields
}
LeadershipSettingsAccessor provides a type which can read, write, and watch leadership settings.
func NewLeadershipSettingsAccessor ¶
func NewLeadershipSettingsAccessor( authorizer facade.Authorizer, registerWatcherFn RegisterWatcherFn, getSettingsFn GetSettingsFn, leaderCheckFn LeaderCheckFn, mergeSettingsChunkFn MergeSettingsChunkFn, ) *LeadershipSettingsAccessor
NewLeadershipSettingsAccessor creates a new LeadershipSettingsAccessor.
func (*LeadershipSettingsAccessor) Merge ¶
func (lsa *LeadershipSettingsAccessor) Merge(bulkArgs params.MergeLeadershipSettingsBulkParams) (params.ErrorResults, error)
Merge merges in the provided leadership settings. Only leaders for the given service may perform this operation.
func (*LeadershipSettingsAccessor) Read ¶
func (lsa *LeadershipSettingsAccessor) Read(bulkArgs params.Entities) (params.GetLeadershipSettingsBulkResults, error)
Read reads leadership settings for the provided service ID. Any unit of the service may perform this operation.
func (*LeadershipSettingsAccessor) WatchLeadershipSettings ¶
func (lsa *LeadershipSettingsAccessor) WatchLeadershipSettings(bulkArgs params.Entities) (params.NotifyWatchResults, error)
WatchLeadershipSettings will block the caller until leadership settings for the given service ID change.
type MergeSettingsChunkFn ¶
type MergeSettingsChunkFn func(token leadership.Token, serviceId string, settings map[string]string) error
MergeSettingsChunk declares a function-type which will write the provided settings chunk into the greater leadership settings for the provided service ID, so long as the supplied Token remains valid.
type RegisterWatcherFn ¶
SettingsChangeNotifierFn declares a function-type which will return a channel that can be blocked on to be notified of setting changes for the provided document key.