Documentation ¶
Index ¶
- type Advertisement
- type CampaignOptions
- type Configuration
- type ElectionConfiguration
- type ElectionOptions
- type HeartbeatGen
- type HeartbeatService
- type KVGen
- type LeaderGen
- type LeaderService
- type Metadata
- type MockAdvertisement
- func (_m *MockAdvertisement) EXPECT() *_MockAdvertisementRecorder
- func (_m *MockAdvertisement) Health() func() error
- func (_m *MockAdvertisement) PlacementInstance() placement.Instance
- func (_m *MockAdvertisement) ServiceID() ServiceID
- func (_m *MockAdvertisement) SetHealth(health func() error) Advertisement
- func (_m *MockAdvertisement) SetPlacementInstance(p placement.Instance) Advertisement
- func (_m *MockAdvertisement) SetServiceID(service ServiceID) Advertisement
- type MockCampaignOptions
- type MockElectionOptions
- func (_m *MockElectionOptions) EXPECT() *_MockElectionOptionsRecorder
- func (_m *MockElectionOptions) LeaderTimeout() time.Duration
- func (_m *MockElectionOptions) ResignTimeout() time.Duration
- func (_m *MockElectionOptions) SetLeaderTimeout(t time.Duration) ElectionOptions
- func (_m *MockElectionOptions) SetResignTimeout(t time.Duration) ElectionOptions
- func (_m *MockElectionOptions) SetTTLSecs(ttl int) ElectionOptions
- func (_m *MockElectionOptions) TTLSecs() int
- type MockHeartbeatService
- func (_m *MockHeartbeatService) Delete(instance string) error
- func (_m *MockHeartbeatService) EXPECT() *_MockHeartbeatServiceRecorder
- func (_m *MockHeartbeatService) Get() ([]string, error)
- func (_m *MockHeartbeatService) GetInstances() ([]placement.Instance, error)
- func (_m *MockHeartbeatService) Heartbeat(instance placement.Instance, ttl time.Duration) error
- func (_m *MockHeartbeatService) Watch() (watch.Watch, error)
- type MockLeaderService
- func (_m *MockLeaderService) Campaign(electionID string, opts CampaignOptions) (<-chan campaign.Status, error)
- func (_m *MockLeaderService) Close() error
- func (_m *MockLeaderService) EXPECT() *_MockLeaderServiceRecorder
- func (_m *MockLeaderService) Leader(electionID string) (string, error)
- func (_m *MockLeaderService) Observe(electionID string) (<-chan string, error)
- func (_m *MockLeaderService) Resign(electionID string) error
- type MockMetadata
- func (_m *MockMetadata) EXPECT() *_MockMetadataRecorder
- func (_m *MockMetadata) HeartbeatInterval() time.Duration
- func (_m *MockMetadata) LivenessInterval() time.Duration
- func (_m *MockMetadata) Port() uint32
- func (_m *MockMetadata) Proto() (*metadatapb.Metadata, error)
- func (_m *MockMetadata) SetHeartbeatInterval(h time.Duration) Metadata
- func (_m *MockMetadata) SetLivenessInterval(l time.Duration) Metadata
- func (_m *MockMetadata) SetPort(p uint32) Metadata
- func (_m *MockMetadata) String() string
- type MockNamespaceOptions
- func (_m *MockNamespaceOptions) EXPECT() *_MockNamespaceOptionsRecorder
- func (_m *MockNamespaceOptions) MetadataNamespace() string
- func (_m *MockNamespaceOptions) PlacementNamespace() string
- func (_m *MockNamespaceOptions) SetMetadataNamespace(v string) NamespaceOptions
- func (_m *MockNamespaceOptions) SetPlacementNamespace(v string) NamespaceOptions
- type MockOptions
- func (_m *MockOptions) EXPECT() *_MockOptionsRecorder
- func (_m *MockOptions) HeartbeatGen() HeartbeatGen
- func (_m *MockOptions) InitTimeout() time.Duration
- func (_m *MockOptions) InstrumentsOptions() instrument.Options
- func (_m *MockOptions) KVGen() KVGen
- func (_m *MockOptions) LeaderGen() LeaderGen
- func (_m *MockOptions) NamespaceOptions() NamespaceOptions
- func (_m *MockOptions) SetHeartbeatGen(gen HeartbeatGen) Options
- func (_m *MockOptions) SetInitTimeout(t time.Duration) Options
- func (_m *MockOptions) SetInstrumentsOptions(iopts instrument.Options) Options
- func (_m *MockOptions) SetKVGen(gen KVGen) Options
- func (_m *MockOptions) SetLeaderGen(gen LeaderGen) Options
- func (_m *MockOptions) SetNamespaceOptions(opts NamespaceOptions) Options
- func (_m *MockOptions) Validate() error
- type MockOverrideOptions
- type MockQueryOptions
- type MockService
- func (_m *MockService) EXPECT() *_MockServiceRecorder
- func (_m *MockService) Instance(instanceID string) (ServiceInstance, error)
- func (_m *MockService) Instances() []ServiceInstance
- func (_m *MockService) Replication() ServiceReplication
- func (_m *MockService) SetInstances(insts []ServiceInstance) Service
- func (_m *MockService) SetReplication(r ServiceReplication) Service
- func (_m *MockService) SetSharding(s ServiceSharding) Service
- func (_m *MockService) Sharding() ServiceSharding
- type MockServiceID
- func (_m *MockServiceID) EXPECT() *_MockServiceIDRecorder
- func (_m *MockServiceID) Environment() string
- func (_m *MockServiceID) Equal(value ServiceID) bool
- func (_m *MockServiceID) Name() string
- func (_m *MockServiceID) SetEnvironment(env string) ServiceID
- func (_m *MockServiceID) SetName(s string) ServiceID
- func (_m *MockServiceID) SetZone(zone string) ServiceID
- func (_m *MockServiceID) String() string
- func (_m *MockServiceID) Zone() string
- type MockServiceInstance
- func (_m *MockServiceInstance) EXPECT() *_MockServiceInstanceRecorder
- func (_m *MockServiceInstance) Endpoint() string
- func (_m *MockServiceInstance) InstanceID() string
- func (_m *MockServiceInstance) ServiceID() ServiceID
- func (_m *MockServiceInstance) SetEndpoint(e string) ServiceInstance
- func (_m *MockServiceInstance) SetInstanceID(id string) ServiceInstance
- func (_m *MockServiceInstance) SetServiceID(service ServiceID) ServiceInstance
- func (_m *MockServiceInstance) SetShards(s shard.Shards) ServiceInstance
- func (_m *MockServiceInstance) Shards() shard.Shards
- type MockServiceReplication
- type MockServiceSharding
- type MockServices
- func (_m *MockServices) Advertise(ad Advertisement) error
- func (_m *MockServices) EXPECT() *_MockServicesRecorder
- func (_m *MockServices) HeartbeatService(service ServiceID) (HeartbeatService, error)
- func (_m *MockServices) LeaderService(service ServiceID, opts ElectionOptions) (LeaderService, error)
- func (_m *MockServices) Metadata(sid ServiceID) (Metadata, error)
- func (_m *MockServices) PlacementService(sid ServiceID, popts placement.Options) (placement.Service, error)
- func (_m *MockServices) Query(service ServiceID, opts QueryOptions) (Service, error)
- func (_m *MockServices) SetMetadata(sid ServiceID, m Metadata) error
- func (_m *MockServices) Unadvertise(service ServiceID, id string) error
- func (_m *MockServices) Watch(service ServiceID, opts QueryOptions) (Watch, error)
- type MockWatch
- type NamespaceOptions
- type NamespacesConfiguration
- type Options
- type OverrideConfiguration
- type OverrideOptions
- type QueryOptions
- type Service
- type ServiceID
- type ServiceIDConfiguration
- type ServiceInstance
- type ServiceReplication
- type ServiceSharding
- type Services
- type Watch
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Advertisement ¶
type Advertisement interface { // the service being advertised. ServiceID() ServiceID // sets the service being advertised. SetServiceID(service ServiceID) Advertisement // optional health function, return an error to indicate unhealthy. Health() func() error // sets the health function for the advertised instance. SetHealth(health func() error) Advertisement // PlacementInstance returns the placement instance associated with this advertisement, which // contains the ID of the instance advertising and all other relevant fields. PlacementInstance() placement.Instance // SetPlacementInstance sets the Instance that is advertising. SetPlacementInstance(p placement.Instance) Advertisement }
Advertisement advertises the availability of a given instance of a service.
func NewAdvertisement ¶
func NewAdvertisement() Advertisement
NewAdvertisement creates a new Advertisement.
type CampaignOptions ¶
type CampaignOptions interface { // LeaderValue allows the user to override the value a campaign announces // (that is, the value an observer sees upon calling Leader()). This // defaults to the hostname of the caller. LeaderValue() string SetLeaderValue(v string) CampaignOptions }
CampaignOptions provide the ability to override campaign defaults.
func NewCampaignOptions ¶
func NewCampaignOptions() (CampaignOptions, error)
NewCampaignOptions returns an empty CampaignOptions.
type Configuration ¶
Configuration is the config for service options.
func (Configuration) NewOptions ¶
func (cfg Configuration) NewOptions() Options
NewOptions creates an Option.
type ElectionConfiguration ¶
type ElectionConfiguration struct { LeaderTimeout *time.Duration `yaml:"leaderTimeout"` ResignTimeout *time.Duration `yaml:"resignTimeout"` TTLSeconds *int `yaml:"TTLSeconds"` }
ElectionConfiguration is for configuring election timeouts and TTLs
func (ElectionConfiguration) NewOptions ¶
func (cfg ElectionConfiguration) NewOptions() ElectionOptions
NewOptions creates an ElectionOptions.
type ElectionOptions ¶
type ElectionOptions interface { // Duration after which a call to Leader() will timeout if no response // returned from etcd. Defaults to 30 seconds. LeaderTimeout() time.Duration SetLeaderTimeout(t time.Duration) ElectionOptions // Duration after which a call to Resign() will timeout if no response // returned from etcd. Defaults to 30 seconds. ResignTimeout() time.Duration SetResignTimeout(t time.Duration) ElectionOptions // TTL returns the TTL used for campaigns. By default (ttl == 0), etcd will // set the TTL to 60s. TTLSecs() int SetTTLSecs(ttl int) ElectionOptions }
ElectionOptions configure specific election-scoped options.
func NewElectionOptions ¶
func NewElectionOptions() ElectionOptions
NewElectionOptions returns an empty ElectionOptions.
type HeartbeatGen ¶
type HeartbeatGen func(sid ServiceID) (HeartbeatService, error)
HeartbeatGen generates a heartbeat store for a given zone.
type HeartbeatService ¶
type HeartbeatService interface { // Heartbeat sends heartbeat for a service instance with a ttl. Heartbeat(instance placement.Instance, ttl time.Duration) error // Get gets healthy instances for a service. Get() ([]string, error) // GetInstances returns a deserialized list of healthy Instances. GetInstances() ([]placement.Instance, error) // Delete deletes the heartbeat for a service instance. Delete(instance string) error // Watch watches the heartbeats for a service. Watch() (xwatch.Watch, error) }
HeartbeatService manages heartbeating instances.
type LeaderGen ¶
type LeaderGen func(sid ServiceID, opts ElectionOptions) (LeaderService, error)
LeaderGen generates a leader service instance for a given service.
type LeaderService ¶
type LeaderService interface { // Close closes the election service client entirely. No more campaigns can be // started and any outstanding campaigns are closed. Close() error // Campaign proposes that the caller become the leader for a specified // election, with its leadership being refreshed on an interval according to // the ElectionOptions the service was created with. It returns a read-only // channel of campaign status events that is closed when the user resigns // leadership or the campaign is invalidated due to background session // expiration (i.e. failing to refresh etcd leadership lease). The caller // MUST consume this channel until it is closed or risk goroutine leaks. // Users are encouraged to read the package docs of services/leader for // advice on proper usage and common gotchas. // // The leader will announce its hostname to observers unless opts is non-nil // and opts.LeaderValue() is non-empty. Campaign(electionID string, opts CampaignOptions) (<-chan campaign.Status, error) // Resign gives up leadership of a specified election if the caller is the // current leader (if the caller is not the leader an error is returned). Resign(electionID string) error // Leader returns the current leader of a specified election (if there is no // leader then leader.ErrNoLeader is returned). Leader(electionID string) (string, error) // Observe returns a channel on which leader updates for a specified election // will be returned. If no one is campaigning for the given election the call // will still succeed and the channel will receive its first update when an // election is started. Observe(electionID string) (<-chan string, error) }
LeaderService provides access to etcd-backed leader elections.
type Metadata ¶
type Metadata interface { // String returns a description of the metadata. String() string // Port returns the port to be used to contact the service. Port() uint32 // SetPort sets the port. SetPort(p uint32) Metadata // LivenessInterval is the ttl interval for an instance to be considered as healthy. LivenessInterval() time.Duration // SetLivenessInterval sets the LivenessInterval. SetLivenessInterval(l time.Duration) Metadata // HeartbeatInterval is the interval for heatbeats. HeartbeatInterval() time.Duration // SetHeartbeatInterval sets the HeartbeatInterval. SetHeartbeatInterval(h time.Duration) Metadata // Proto returns the proto representation for the Metadata. Proto() (*metadatapb.Metadata, error) }
Metadata contains the metadata for a service.
func NewMetadataFromProto ¶
func NewMetadataFromProto(m *metadatapb.Metadata) (Metadata, error)
NewMetadataFromProto converts a Metadata proto message to an instance of Metadata.
type MockAdvertisement ¶
type MockAdvertisement struct {
// contains filtered or unexported fields
}
Mock of Advertisement interface
func NewMockAdvertisement ¶
func NewMockAdvertisement(ctrl *gomock.Controller) *MockAdvertisement
func (*MockAdvertisement) EXPECT ¶
func (_m *MockAdvertisement) EXPECT() *_MockAdvertisementRecorder
func (*MockAdvertisement) Health ¶
func (_m *MockAdvertisement) Health() func() error
func (*MockAdvertisement) PlacementInstance ¶
func (_m *MockAdvertisement) PlacementInstance() placement.Instance
func (*MockAdvertisement) ServiceID ¶
func (_m *MockAdvertisement) ServiceID() ServiceID
func (*MockAdvertisement) SetHealth ¶
func (_m *MockAdvertisement) SetHealth(health func() error) Advertisement
func (*MockAdvertisement) SetPlacementInstance ¶
func (_m *MockAdvertisement) SetPlacementInstance(p placement.Instance) Advertisement
func (*MockAdvertisement) SetServiceID ¶
func (_m *MockAdvertisement) SetServiceID(service ServiceID) Advertisement
type MockCampaignOptions ¶
type MockCampaignOptions struct {
// contains filtered or unexported fields
}
Mock of CampaignOptions interface
func NewMockCampaignOptions ¶
func NewMockCampaignOptions(ctrl *gomock.Controller) *MockCampaignOptions
func (*MockCampaignOptions) EXPECT ¶
func (_m *MockCampaignOptions) EXPECT() *_MockCampaignOptionsRecorder
func (*MockCampaignOptions) LeaderValue ¶
func (_m *MockCampaignOptions) LeaderValue() string
func (*MockCampaignOptions) SetLeaderValue ¶
func (_m *MockCampaignOptions) SetLeaderValue(v string) CampaignOptions
type MockElectionOptions ¶
type MockElectionOptions struct {
// contains filtered or unexported fields
}
Mock of ElectionOptions interface
func NewMockElectionOptions ¶
func NewMockElectionOptions(ctrl *gomock.Controller) *MockElectionOptions
func (*MockElectionOptions) EXPECT ¶
func (_m *MockElectionOptions) EXPECT() *_MockElectionOptionsRecorder
func (*MockElectionOptions) LeaderTimeout ¶
func (_m *MockElectionOptions) LeaderTimeout() time.Duration
func (*MockElectionOptions) ResignTimeout ¶
func (_m *MockElectionOptions) ResignTimeout() time.Duration
func (*MockElectionOptions) SetLeaderTimeout ¶
func (_m *MockElectionOptions) SetLeaderTimeout(t time.Duration) ElectionOptions
func (*MockElectionOptions) SetResignTimeout ¶
func (_m *MockElectionOptions) SetResignTimeout(t time.Duration) ElectionOptions
func (*MockElectionOptions) SetTTLSecs ¶
func (_m *MockElectionOptions) SetTTLSecs(ttl int) ElectionOptions
func (*MockElectionOptions) TTLSecs ¶
func (_m *MockElectionOptions) TTLSecs() int
type MockHeartbeatService ¶
type MockHeartbeatService struct {
// contains filtered or unexported fields
}
Mock of HeartbeatService interface
func NewMockHeartbeatService ¶
func NewMockHeartbeatService(ctrl *gomock.Controller) *MockHeartbeatService
func (*MockHeartbeatService) Delete ¶
func (_m *MockHeartbeatService) Delete(instance string) error
func (*MockHeartbeatService) EXPECT ¶
func (_m *MockHeartbeatService) EXPECT() *_MockHeartbeatServiceRecorder
func (*MockHeartbeatService) Get ¶
func (_m *MockHeartbeatService) Get() ([]string, error)
func (*MockHeartbeatService) GetInstances ¶
func (_m *MockHeartbeatService) GetInstances() ([]placement.Instance, error)
type MockLeaderService ¶
type MockLeaderService struct {
// contains filtered or unexported fields
}
Mock of LeaderService interface
func NewMockLeaderService ¶
func NewMockLeaderService(ctrl *gomock.Controller) *MockLeaderService
func (*MockLeaderService) Campaign ¶
func (_m *MockLeaderService) Campaign(electionID string, opts CampaignOptions) (<-chan campaign.Status, error)
func (*MockLeaderService) Close ¶
func (_m *MockLeaderService) Close() error
func (*MockLeaderService) EXPECT ¶
func (_m *MockLeaderService) EXPECT() *_MockLeaderServiceRecorder
func (*MockLeaderService) Leader ¶
func (_m *MockLeaderService) Leader(electionID string) (string, error)
func (*MockLeaderService) Observe ¶
func (_m *MockLeaderService) Observe(electionID string) (<-chan string, error)
func (*MockLeaderService) Resign ¶
func (_m *MockLeaderService) Resign(electionID string) error
type MockMetadata ¶
type MockMetadata struct {
// contains filtered or unexported fields
}
Mock of Metadata interface
func NewMockMetadata ¶
func NewMockMetadata(ctrl *gomock.Controller) *MockMetadata
func (*MockMetadata) EXPECT ¶
func (_m *MockMetadata) EXPECT() *_MockMetadataRecorder
func (*MockMetadata) HeartbeatInterval ¶
func (_m *MockMetadata) HeartbeatInterval() time.Duration
func (*MockMetadata) LivenessInterval ¶
func (_m *MockMetadata) LivenessInterval() time.Duration
func (*MockMetadata) Port ¶
func (_m *MockMetadata) Port() uint32
func (*MockMetadata) Proto ¶
func (_m *MockMetadata) Proto() (*metadatapb.Metadata, error)
func (*MockMetadata) SetHeartbeatInterval ¶
func (_m *MockMetadata) SetHeartbeatInterval(h time.Duration) Metadata
func (*MockMetadata) SetLivenessInterval ¶
func (_m *MockMetadata) SetLivenessInterval(l time.Duration) Metadata
func (*MockMetadata) SetPort ¶
func (_m *MockMetadata) SetPort(p uint32) Metadata
func (*MockMetadata) String ¶
func (_m *MockMetadata) String() string
type MockNamespaceOptions ¶
type MockNamespaceOptions struct {
// contains filtered or unexported fields
}
Mock of NamespaceOptions interface
func NewMockNamespaceOptions ¶
func NewMockNamespaceOptions(ctrl *gomock.Controller) *MockNamespaceOptions
func (*MockNamespaceOptions) EXPECT ¶
func (_m *MockNamespaceOptions) EXPECT() *_MockNamespaceOptionsRecorder
func (*MockNamespaceOptions) MetadataNamespace ¶
func (_m *MockNamespaceOptions) MetadataNamespace() string
func (*MockNamespaceOptions) PlacementNamespace ¶
func (_m *MockNamespaceOptions) PlacementNamespace() string
func (*MockNamespaceOptions) SetMetadataNamespace ¶
func (_m *MockNamespaceOptions) SetMetadataNamespace(v string) NamespaceOptions
func (*MockNamespaceOptions) SetPlacementNamespace ¶
func (_m *MockNamespaceOptions) SetPlacementNamespace(v string) NamespaceOptions
type MockOptions ¶
type MockOptions struct {
// contains filtered or unexported fields
}
Mock of Options interface
func NewMockOptions ¶
func NewMockOptions(ctrl *gomock.Controller) *MockOptions
func (*MockOptions) EXPECT ¶
func (_m *MockOptions) EXPECT() *_MockOptionsRecorder
func (*MockOptions) HeartbeatGen ¶
func (_m *MockOptions) HeartbeatGen() HeartbeatGen
func (*MockOptions) InitTimeout ¶
func (_m *MockOptions) InitTimeout() time.Duration
func (*MockOptions) InstrumentsOptions ¶
func (_m *MockOptions) InstrumentsOptions() instrument.Options
func (*MockOptions) KVGen ¶
func (_m *MockOptions) KVGen() KVGen
func (*MockOptions) LeaderGen ¶
func (_m *MockOptions) LeaderGen() LeaderGen
func (*MockOptions) NamespaceOptions ¶
func (_m *MockOptions) NamespaceOptions() NamespaceOptions
func (*MockOptions) SetHeartbeatGen ¶
func (_m *MockOptions) SetHeartbeatGen(gen HeartbeatGen) Options
func (*MockOptions) SetInitTimeout ¶
func (_m *MockOptions) SetInitTimeout(t time.Duration) Options
func (*MockOptions) SetInstrumentsOptions ¶
func (_m *MockOptions) SetInstrumentsOptions(iopts instrument.Options) Options
func (*MockOptions) SetKVGen ¶
func (_m *MockOptions) SetKVGen(gen KVGen) Options
func (*MockOptions) SetLeaderGen ¶
func (_m *MockOptions) SetLeaderGen(gen LeaderGen) Options
func (*MockOptions) SetNamespaceOptions ¶
func (_m *MockOptions) SetNamespaceOptions(opts NamespaceOptions) Options
func (*MockOptions) Validate ¶
func (_m *MockOptions) Validate() error
type MockOverrideOptions ¶
type MockOverrideOptions struct {
// contains filtered or unexported fields
}
Mock of OverrideOptions interface
func NewMockOverrideOptions ¶
func NewMockOverrideOptions(ctrl *gomock.Controller) *MockOverrideOptions
func (*MockOverrideOptions) EXPECT ¶
func (_m *MockOverrideOptions) EXPECT() *_MockOverrideOptionsRecorder
func (*MockOverrideOptions) NamespaceOptions ¶
func (_m *MockOverrideOptions) NamespaceOptions() NamespaceOptions
func (*MockOverrideOptions) SetNamespaceOptions ¶
func (_m *MockOverrideOptions) SetNamespaceOptions(opts NamespaceOptions) OverrideOptions
type MockQueryOptions ¶
type MockQueryOptions struct {
// contains filtered or unexported fields
}
Mock of QueryOptions interface
func NewMockQueryOptions ¶
func NewMockQueryOptions(ctrl *gomock.Controller) *MockQueryOptions
func (*MockQueryOptions) EXPECT ¶
func (_m *MockQueryOptions) EXPECT() *_MockQueryOptionsRecorder
func (*MockQueryOptions) IncludeUnhealthy ¶
func (_m *MockQueryOptions) IncludeUnhealthy() bool
func (*MockQueryOptions) SetIncludeUnhealthy ¶
func (_m *MockQueryOptions) SetIncludeUnhealthy(h bool) QueryOptions
type MockService ¶
type MockService struct {
// contains filtered or unexported fields
}
Mock of Service interface
func NewMockService ¶
func NewMockService(ctrl *gomock.Controller) *MockService
func (*MockService) EXPECT ¶
func (_m *MockService) EXPECT() *_MockServiceRecorder
func (*MockService) Instance ¶
func (_m *MockService) Instance(instanceID string) (ServiceInstance, error)
func (*MockService) Instances ¶
func (_m *MockService) Instances() []ServiceInstance
func (*MockService) Replication ¶
func (_m *MockService) Replication() ServiceReplication
func (*MockService) SetInstances ¶
func (_m *MockService) SetInstances(insts []ServiceInstance) Service
func (*MockService) SetReplication ¶
func (_m *MockService) SetReplication(r ServiceReplication) Service
func (*MockService) SetSharding ¶
func (_m *MockService) SetSharding(s ServiceSharding) Service
func (*MockService) Sharding ¶
func (_m *MockService) Sharding() ServiceSharding
type MockServiceID ¶
type MockServiceID struct {
// contains filtered or unexported fields
}
Mock of ServiceID interface
func NewMockServiceID ¶
func NewMockServiceID(ctrl *gomock.Controller) *MockServiceID
func (*MockServiceID) EXPECT ¶
func (_m *MockServiceID) EXPECT() *_MockServiceIDRecorder
func (*MockServiceID) Environment ¶
func (_m *MockServiceID) Environment() string
func (*MockServiceID) Equal ¶
func (_m *MockServiceID) Equal(value ServiceID) bool
func (*MockServiceID) Name ¶
func (_m *MockServiceID) Name() string
func (*MockServiceID) SetEnvironment ¶
func (_m *MockServiceID) SetEnvironment(env string) ServiceID
func (*MockServiceID) SetName ¶
func (_m *MockServiceID) SetName(s string) ServiceID
func (*MockServiceID) SetZone ¶
func (_m *MockServiceID) SetZone(zone string) ServiceID
func (*MockServiceID) String ¶
func (_m *MockServiceID) String() string
func (*MockServiceID) Zone ¶
func (_m *MockServiceID) Zone() string
type MockServiceInstance ¶
type MockServiceInstance struct {
// contains filtered or unexported fields
}
Mock of ServiceInstance interface
func NewMockServiceInstance ¶
func NewMockServiceInstance(ctrl *gomock.Controller) *MockServiceInstance
func (*MockServiceInstance) EXPECT ¶
func (_m *MockServiceInstance) EXPECT() *_MockServiceInstanceRecorder
func (*MockServiceInstance) Endpoint ¶
func (_m *MockServiceInstance) Endpoint() string
func (*MockServiceInstance) InstanceID ¶
func (_m *MockServiceInstance) InstanceID() string
func (*MockServiceInstance) ServiceID ¶
func (_m *MockServiceInstance) ServiceID() ServiceID
func (*MockServiceInstance) SetEndpoint ¶
func (_m *MockServiceInstance) SetEndpoint(e string) ServiceInstance
func (*MockServiceInstance) SetInstanceID ¶
func (_m *MockServiceInstance) SetInstanceID(id string) ServiceInstance
func (*MockServiceInstance) SetServiceID ¶
func (_m *MockServiceInstance) SetServiceID(service ServiceID) ServiceInstance
func (*MockServiceInstance) SetShards ¶
func (_m *MockServiceInstance) SetShards(s shard.Shards) ServiceInstance
func (*MockServiceInstance) Shards ¶
func (_m *MockServiceInstance) Shards() shard.Shards
type MockServiceReplication ¶
type MockServiceReplication struct {
// contains filtered or unexported fields
}
Mock of ServiceReplication interface
func NewMockServiceReplication ¶
func NewMockServiceReplication(ctrl *gomock.Controller) *MockServiceReplication
func (*MockServiceReplication) EXPECT ¶
func (_m *MockServiceReplication) EXPECT() *_MockServiceReplicationRecorder
func (*MockServiceReplication) Replicas ¶
func (_m *MockServiceReplication) Replicas() int
func (*MockServiceReplication) SetReplicas ¶
func (_m *MockServiceReplication) SetReplicas(r int) ServiceReplication
type MockServiceSharding ¶
type MockServiceSharding struct {
// contains filtered or unexported fields
}
Mock of ServiceSharding interface
func NewMockServiceSharding ¶
func NewMockServiceSharding(ctrl *gomock.Controller) *MockServiceSharding
func (*MockServiceSharding) EXPECT ¶
func (_m *MockServiceSharding) EXPECT() *_MockServiceShardingRecorder
func (*MockServiceSharding) IsSharded ¶
func (_m *MockServiceSharding) IsSharded() bool
func (*MockServiceSharding) NumShards ¶
func (_m *MockServiceSharding) NumShards() int
func (*MockServiceSharding) SetIsSharded ¶
func (_m *MockServiceSharding) SetIsSharded(s bool) ServiceSharding
func (*MockServiceSharding) SetNumShards ¶
func (_m *MockServiceSharding) SetNumShards(n int) ServiceSharding
type MockServices ¶
type MockServices struct {
// contains filtered or unexported fields
}
Mock of Services interface
func NewMockServices ¶
func NewMockServices(ctrl *gomock.Controller) *MockServices
func (*MockServices) Advertise ¶
func (_m *MockServices) Advertise(ad Advertisement) error
func (*MockServices) EXPECT ¶
func (_m *MockServices) EXPECT() *_MockServicesRecorder
func (*MockServices) HeartbeatService ¶
func (_m *MockServices) HeartbeatService(service ServiceID) (HeartbeatService, error)
func (*MockServices) LeaderService ¶
func (_m *MockServices) LeaderService(service ServiceID, opts ElectionOptions) (LeaderService, error)
func (*MockServices) PlacementService ¶
func (*MockServices) Query ¶
func (_m *MockServices) Query(service ServiceID, opts QueryOptions) (Service, error)
func (*MockServices) SetMetadata ¶
func (_m *MockServices) SetMetadata(sid ServiceID, m Metadata) error
func (*MockServices) Unadvertise ¶
func (_m *MockServices) Unadvertise(service ServiceID, id string) error
func (*MockServices) Watch ¶
func (_m *MockServices) Watch(service ServiceID, opts QueryOptions) (Watch, error)
type MockWatch ¶
type MockWatch struct {
// contains filtered or unexported fields
}
Mock of Watch interface
func NewMockWatch ¶
func NewMockWatch(ctrl *gomock.Controller) *MockWatch
type NamespaceOptions ¶
type NamespaceOptions interface { // PlacementNamespace is the custom namespace for placement. PlacementNamespace() string // SetPlacementNamespace sets the custom namespace for placement. SetPlacementNamespace(v string) NamespaceOptions // MetadataNamespace is the custom namespace for metadata. MetadataNamespace() string // SetMetadataNamespace sets the custom namespace for metadata. SetMetadataNamespace(v string) NamespaceOptions }
NamespaceOptions are options to provide custom namespaces in service discovery service. TODO(cw): Provide overrides for leader service and heartbeat service.
func NewNamespaceOptions ¶
func NewNamespaceOptions() NamespaceOptions
NewNamespaceOptions constructs a new NamespaceOptions.
type NamespacesConfiguration ¶
type NamespacesConfiguration struct { Placement string `yaml:"placement"` Metadata string `yaml:"metadata"` }
NamespacesConfiguration configs the NamespaceOptions.
func (NamespacesConfiguration) NewOptions ¶
func (cfg NamespacesConfiguration) NewOptions() NamespaceOptions
NewOptions creates a new NamespaceOptions.
type Options ¶
type Options interface { // InitTimeout is the max time to wait on a new service watch for a valid initial value. // If the value is set to 0, then no wait will be done and the watch could return empty value. InitTimeout() time.Duration // SetInitTimeout sets the InitTimeout. SetInitTimeout(t time.Duration) Options // KVGen is the function to generate a kv store for a given zone. KVGen() KVGen // SetKVGen sets the KVGen. SetKVGen(gen KVGen) Options // HeartbeatGen is the function to generate a heartbeat store for a given zone. HeartbeatGen() HeartbeatGen // SetHeartbeatGen sets the HeartbeatGen. SetHeartbeatGen(gen HeartbeatGen) Options // LeaderGen is the function to generate a leader service instance for a // given service. LeaderGen() LeaderGen // SetLeaderGen sets the leader generation function. SetLeaderGen(gen LeaderGen) Options // InstrumentsOptions is the instrument options. InstrumentsOptions() instrument.Options // SetInstrumentsOptions sets the InstrumentsOptions. SetInstrumentsOptions(iopts instrument.Options) Options // NamespaceOptions is the custom namespaces. NamespaceOptions() NamespaceOptions // SetNamespaceOptions sets the NamespaceOptions. SetNamespaceOptions(opts NamespaceOptions) Options // Validate validates the Options. Validate() error }
Options are options for the client of Services.
type OverrideConfiguration ¶
type OverrideConfiguration struct {
Namespaces NamespacesConfiguration `yaml:"namespaces"`
}
OverrideConfiguration configs the override options.
func (OverrideConfiguration) NewOptions ¶
func (cfg OverrideConfiguration) NewOptions() OverrideOptions
NewOptions creates a new override options.
type OverrideOptions ¶
type OverrideOptions interface { // NamespaceOptions is the namespace options. NamespaceOptions() NamespaceOptions // SetNamespaceOptions sets namespace options. SetNamespaceOptions(opts NamespaceOptions) OverrideOptions }
OverrideOptions configs the override for service discovery.
func NewOverrideOptions ¶
func NewOverrideOptions() OverrideOptions
NewOverrideOptions constructs a new OverrideOptions.
type QueryOptions ¶
type QueryOptions interface { // IncludeUnhealthy decides whether unhealthy instances should be returned. IncludeUnhealthy() bool // SetIncludeUnhealthy sets the value of IncludeUnhealthy. SetIncludeUnhealthy(h bool) QueryOptions }
QueryOptions are options to service discovery queries.
func NewQueryOptions ¶
func NewQueryOptions() QueryOptions
NewQueryOptions creates new QueryOptions.
type Service ¶
type Service interface { // Instance returns the service instance with the instance id. Instance(instanceID string) (ServiceInstance, error) // Instances returns the service instances. Instances() []ServiceInstance // SetInstances sets the service instances. SetInstances(insts []ServiceInstance) Service // Replication returns the service replication description or nil if none. Replication() ServiceReplication // SetReplication sets the service replication description or nil if none. SetReplication(r ServiceReplication) Service // Sharding returns the service sharding description or nil if none. Sharding() ServiceSharding // SetSharding sets the service sharding description or nil if none SetSharding(s ServiceSharding) Service }
Service describes the metadata and instances of a service.
func NewServiceFromPlacement ¶
NewServiceFromPlacement creates a Service from the placement and service ID.
func NewServiceFromProto ¶
func NewServiceFromProto( p *placementpb.Placement, sid ServiceID, ) (Service, error)
NewServiceFromProto takes the data from a placement and a service id and returns the corresponding Service object.
type ServiceID ¶
type ServiceID interface { // Name returns the service name of the ServiceID. Name() string // SetName sets the service name of the ServiceID. SetName(s string) ServiceID // Environment returns the environment of the ServiceID. Environment() string // SetEnvironment sets the environment of the ServiceID. SetEnvironment(env string) ServiceID // Zone returns the zone of the ServiceID. Zone() string // SetZone sets the zone of the ServiceID. SetZone(zone string) ServiceID // Equal retruns if the service IDs are equivalent. Equal(value ServiceID) bool // String returns a description of the ServiceID. String() string }
ServiceID contains the fields required to id a service.
type ServiceIDConfiguration ¶
type ServiceIDConfiguration struct { Name string `yaml:"name"` Environment string `yaml:"environment"` Zone string `yaml:"zone"` }
ServiceIDConfiguration is for configuring serviceID.
func (ServiceIDConfiguration) NewServiceID ¶
func (cfg ServiceIDConfiguration) NewServiceID() ServiceID
NewServiceID creates a ServiceID.
type ServiceInstance ¶
type ServiceInstance interface { // ServiceID returns the service id of the instance. ServiceID() ServiceID // SetServiceID sets the service id of the instance. SetServiceID(service ServiceID) ServiceInstance // InstanceID returns the id of the instance. InstanceID() string // SetInstanceID sets the id of the instance. SetInstanceID(id string) ServiceInstance // Endpoint returns the endpoint of the instance. Endpoint() string // SetEndpoint sets the endpoint of the instance. SetEndpoint(e string) ServiceInstance // Shards returns the shards of the instance. Shards() shard.Shards // SetShards sets the shards of the instance. SetShards(s shard.Shards) ServiceInstance }
ServiceInstance is a single instance of a service.
func NewServiceInstance ¶
func NewServiceInstance() ServiceInstance
NewServiceInstance creates a new ServiceInstance.
func NewServiceInstanceFromPlacementInstance ¶
func NewServiceInstanceFromPlacementInstance( instance placement.Instance, sid ServiceID, ) ServiceInstance
NewServiceInstanceFromPlacementInstance creates a new service instance from placement instance.
func NewServiceInstanceFromProto ¶
func NewServiceInstanceFromProto( instance *placementpb.Instance, sid ServiceID, ) (ServiceInstance, error)
NewServiceInstanceFromProto creates a new service instance from proto.
type ServiceReplication ¶
type ServiceReplication interface { // Replicas is the count of replicas. Replicas() int // SetReplicas sets the count of replicas. SetReplicas(r int) ServiceReplication }
ServiceReplication describes the replication of a service.
func NewServiceReplication ¶
func NewServiceReplication() ServiceReplication
NewServiceReplication creates a new ServiceReplication.
type ServiceSharding ¶
type ServiceSharding interface { // NumShards is the number of shards to use for sharding. NumShards() int // SetNumShards sets the number of shards to use for sharding. SetNumShards(n int) ServiceSharding // IsSharded() returns whether this service is sharded. IsSharded() bool // SetIsSharded sets IsSharded. SetIsSharded(s bool) ServiceSharding }
ServiceSharding describes the sharding of a service.
func NewServiceSharding ¶
func NewServiceSharding() ServiceSharding
NewServiceSharding creates a new ServiceSharding.
type Services ¶
type Services interface { // Advertise advertises the availability of an instance of a service. Advertise(ad Advertisement) error // Unadvertise indicates a given instance is no longer available. Unadvertise(service ServiceID, id string) error // Query returns the topology for a given service. Query(service ServiceID, opts QueryOptions) (Service, error) // Watch returns a watch on metadata and a list of available instances for a given service. Watch(service ServiceID, opts QueryOptions) (Watch, error) // Metadata returns the metadata for a given service. Metadata(sid ServiceID) (Metadata, error) // SetMetadata sets the metadata for a given service. SetMetadata(sid ServiceID, m Metadata) error // PlacementService returns a client of placement.Service. PlacementService(sid ServiceID, popts placement.Options) (placement.Service, error) // HeartbeatService returns a heartbeat store for the given service. HeartbeatService(service ServiceID) (HeartbeatService, error) // LeaderService returns an instance of a leader service for the given // service ID. LeaderService(service ServiceID, opts ElectionOptions) (LeaderService, error) }
Services provides access to the service topology.
func NewServices ¶
NewServices returns a client of Services.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
heartbeat
|
|
Package leader provides functionality for etcd-backed leader elections.
|
Package leader provides functionality for etcd-backed leader elections. |
campaign
Package campaign encapsulates the state of a campaign.
|
Package campaign encapsulates the state of a campaign. |
election
Package election provides a wrapper around a subset of the Election functionality of etcd's concurrency package with error handling for common failure scenarios such as lease expiration.
|
Package election provides a wrapper around a subset of the Election functionality of etcd's concurrency package with error handling for common failure scenarios such as lease expiration. |