Documentation
¶
Overview ¶
Package registry provides the main glue between services
It wraps micro registry (running services declared to the discovery server) into a more generic registry where all actual plugins are self-declared.
Package registry provides the main glue between services ¶
It wraps micro registry (running services declared to the discovery server) into a more generic registry where all actual plugins are self-declared.
Package registry provides the main glue between services ¶
It wraps micro registry (running services declared to the discovery server) into a more generic registry where all actual plugins are self-declared.
- Copyright (c) 2019-2021. Abstrium SAS <team (at) pydio.com>
- This file is part of Pydio Cells. *
- Pydio Cells is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version. *
- Pydio Cells is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details. *
- You should have received a copy of the GNU Affero General Public License
- along with Pydio Cells. If not, see <http://www.gnu.org/licenses/>. *
- The latest code can be found at <https://pydio.com>.
Index ¶
- Variables
- func BuildServiceMeta() map[string]string
- func FixedInstanceSelector(srvName string, targetAddress string) selector.SelectOption
- func GetClient(name string) (string, client.Client)
- func GetPeers() map[string]*Peer
- func GetProcesses() map[string]*Process
- func Init(opts ...Option)
- func NewMockFromMicroService(rs *registry.Service) *mockService
- func PeerClientSelector(srvName string, targetPeer string) selector.SelectOption
- func ShortRequestTimeout() client.CallOption
- func Watch() (registry.Watcher, error)
- type Nodes
- type Option
- type Options
- type Peer
- type Process
- type RegisterOption
- type RegisterOptions
- type Registry
- type Service
- func GetRunningService(name string) ([]Service, error)
- func ListRunningServices() ([]Service, error)
- func ListServices(withExcluded ...bool) ([]Service, error)
- func ListServicesWithFilter(fn func(Service) bool) ([]Service, error)
- func ListServicesWithMicroMeta(metaName string, metaValue ...string) ([]Service, error)
Constants ¶
This section is empty.
Variables ¶
var ( // Default registry Default = NewRegistry() )
var (
ProcessStartTags []string
)
Functions ¶
func FixedInstanceSelector ¶
func FixedInstanceSelector(srvName string, targetAddress string) selector.SelectOption
FixedInstanceSelector creates a Selector Filter to restrict call to a given PeerAddress
func GetClient ¶
GetClient returns the default client for the service name
func PeerClientSelector ¶
func PeerClientSelector(srvName string, targetPeer string) selector.SelectOption
PeerClientSelector creates a Selector Filter to restrict call to a given PeerAddress
func ShortRequestTimeout ¶
func ShortRequestTimeout() client.CallOption
ShortRequestTimeout returns a 1s RequestTimeout option
Types ¶
type Nodes ¶
Nodes wraps an array of registry nodes
type Options ¶
type Options struct { Name string PollInterval time.Duration // Other options for implementations of the interface // can be stored in a context Context context.Context }
Options defines options to the Registry itself
type Peer ¶
type Peer struct {
// contains filtered or unexported fields
}
func (*Peer) Add ¶
Add returns if the service was already registered
func (*Peer) Delete ¶
Delete returns if the services existed before or not
type Process ¶
type RegisterOption ¶
type RegisterOption func(*RegisterOptions)
RegisterOption is a gateway to setting RegisterOptions to a Registry Entry
func RegisterDependencies ¶
func RegisterDependencies(d ...string) RegisterOption
RegisterDependencies adds dependencies between services to the registry entry
func RegisterFlags ¶
func RegisterFlags(f ...*pflag.Flag) RegisterOption
RegisterFlags adds flags to the registry entry service
type RegisterOptions ¶
type RegisterOptions struct { Dependencies []string Flags []*pflag.Flag // Other options for implementations of the interface // can be stored in a context Context context.Context }
RegisterOptions defines different options for the Register entry
type Registry ¶
type Registry interface { Init(...Option) Register(Service, ...RegisterOption) error Deregister(Service) error GetServiceByName(string) Service GetServicesByName(string) []Service GetPeers() map[string]*Peer GetPeer(*registry.Node) *Peer GetCurrentProcess() *Process GetCurrentChildrenProcesses() []*Process GetProcesses() map[string]*Process GetProcess(*registry.Node) *Process ListServices(withExcluded ...bool) ([]Service, error) ListServicesWithFilter(func(Service) bool) ([]Service, error) GetRunningService(string) ([]Service, error) ListRunningServices() ([]Service, error) ListServicesWithMicroMeta(string, ...string) ([]Service, error) Filter(func(Service) bool) error Watch() (registry.Watcher, error) String() string Options() Options BeforeInit() error AfterInit() error }
Registry provides an interface for service discovery and an abstraction over varying implementations {consul, etcd, zookeeper, ...}
type Service ¶
type Service interface { Start(context.Context) Stop() IsRunning() bool IsExcluded() bool SetExcluded(ex bool) Check(context.Context) error Name() string ID() string Address() string Regexp() *regexp.Regexp Version() string Description() string Tags() []string GetDependencies() []Service AddDependency(string) SetRunningNodes([]*registry.Node) RunningNodes() []*registry.Node DAO() interface{} IsGeneric() bool IsGRPC() bool IsREST() bool RequiresFork() bool ForkStart(ctx context.Context, retries ...int) MustBeUnique() bool AutoStart() bool MatchesRegexp(string) bool BeforeInit() error AfterInit() error }
Service defines the primary functions a service must be able to answer to for the registry
func GetRunningService ¶
GetRunningService returns the list of services that are started in the system
func ListRunningServices ¶
ListRunningServices returns the list of services that are started in the system
func ListServices ¶
ListServices returns the list of services that are started in the system
func ListServicesWithFilter ¶
ListServicesWithFilter returns the list of services that are started in the system
Source Files
¶
- ctl.go
- mock-service.go
- options.go
- peer.go
- process.go
- registry.go
- running.go
- selectors.go
- service-meta.go
- services.go
- utils.go