Documentation ¶
Overview ¶
Package consultopo implements topo.Server with consul as the backend.
Index ¶
- Variables
- func VersionFromInt(version int64) topo.Version
- type ClientAuthCred
- type ConsulVersion
- type Factory
- type Server
- func (s *Server) Close()
- func (s *Server) Create(ctx context.Context, filePath string, contents []byte) (topo.Version, error)
- func (s *Server) Delete(ctx context.Context, filePath string, version topo.Version) error
- func (s *Server) Get(ctx context.Context, filePath string) ([]byte, topo.Version, error)
- func (s *Server) List(ctx context.Context, filePathPrefix string) ([]topo.KVInfo, error)
- func (s *Server) ListDir(ctx context.Context, dirPath string, full bool) ([]topo.DirEntry, error)
- func (s *Server) Lock(ctx context.Context, dirPath, contents string) (topo.LockDescriptor, error)
- func (s *Server) NewLeaderParticipation(name, id string) (topo.LeaderParticipation, error)
- func (s *Server) TryLock(ctx context.Context, dirPath, contents string) (topo.LockDescriptor, error)
- func (s *Server) Update(ctx context.Context, filePath string, contents []byte, version topo.Version) (topo.Version, error)
- func (s *Server) Watch(ctx context.Context, filePath string) (*topo.WatchData, <-chan *topo.WatchData, error)
- func (s *Server) WatchRecursive(_ context.Context, path string) ([]*topo.WatchDataRecursive, <-chan *topo.WatchDataRecursive, error)
Constants ¶
This section is empty.
Variables ¶
var ( // ErrBadResponse is returned from this package if the // response from the consul server does not contain the data // that the API promises. The consul client unmarshals JSON // from the server into a Response struct that uses pointers, // so we need to check for nil pointers, or else a misbehaving // consul could cause us to panic. ErrBadResponse = errors.New("consul request returned success, but response is missing required data") )
Errors specific to this package.
Functions ¶
func VersionFromInt ¶
VersionFromInt is used by old-style functions to create a proper Version: if version is -1, returns nil. Otherwise returns the ConsulVersion object.
Types ¶
type ClientAuthCred ¶
type ClientAuthCred struct { // ACLToken when provided, the client will use this token when making requests to the Consul server. ACLToken string `json:"acl_token,omitempty"` }
ClientAuthCred credential to use for consul clusters
type ConsulVersion ¶
type ConsulVersion uint64
ConsulVersion is consul's idea of a version. It implements topo.Version. We use the native consul version type, uint64.
func (ConsulVersion) String ¶
func (v ConsulVersion) String() string
String is part of the topo.Version interface.
type Factory ¶
type Factory struct{}
Factory is the consul topo.Factory implementation.
func (Factory) HasGlobalReadOnlyCell ¶
HasGlobalReadOnlyCell is part of the topo.Factory interface.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server is the implementation of topo.Server for consul.
func (*Server) Close ¶
func (s *Server) Close()
Close implements topo.Server.Close. It will nil out the global and cells fields, so any attempt to re-use this server will panic.
func (*Server) Create ¶
func (s *Server) Create(ctx context.Context, filePath string, contents []byte) (topo.Version, error)
Create is part of the topo.Conn interface.
func (*Server) NewLeaderParticipation ¶ added in v0.13.0
func (s *Server) NewLeaderParticipation(name, id string) (topo.LeaderParticipation, error)
NewLeaderParticipation is part of the topo.Server interface
func (*Server) TryLock ¶ added in v0.16.0
func (s *Server) TryLock(ctx context.Context, dirPath, contents string) (topo.LockDescriptor, error)
TryLock is part of the topo.Conn interface.
func (*Server) Update ¶
func (s *Server) Update(ctx context.Context, filePath string, contents []byte, version topo.Version) (topo.Version, error)
Update is part of the topo.Conn interface.
func (*Server) Watch ¶
func (s *Server) Watch(ctx context.Context, filePath string) (*topo.WatchData, <-chan *topo.WatchData, error)
Watch is part of the topo.Conn interface.
func (*Server) WatchRecursive ¶ added in v0.15.0
func (s *Server) WatchRecursive(_ context.Context, path string) ([]*topo.WatchDataRecursive, <-chan *topo.WatchDataRecursive, error)
WatchRecursive is part of the topo.Conn interface.