Documentation
¶
Index ¶
- Constants
- Variables
- func ContextWithPeer(ctx context.Context, peer *v1.Multihost_Peer) context.Context
- func CreateRemoteRepoURI(instanceUrl string) (string, error)
- func InstanceForBackrestURI(repoUri string) (string, error)
- func IsBackrestRemoteRepoURI(repoUri string) bool
- func PeerFromContext(ctx context.Context) *v1.Multihost_Peer
- func RepoForBackrestURI(repoUri string) (string, error)
- type BackrestSyncHandler
- type BackrestSyncStateHandler
- type InMemoryPeerStateManager
- func (m *InMemoryPeerStateManager) Close() error
- func (m *InMemoryPeerStateManager) GetAll() []*PeerState
- func (m *InMemoryPeerStateManager) GetPeerState(keyID string) *PeerState
- func (m *InMemoryPeerStateManager) OnStateChanged() eventemitter.Receiver[*PeerState]
- func (m *InMemoryPeerStateManager) SetPeerState(keyID string, state *PeerState)
- type PeerState
- type PeerStateManager
- type SqlitePeerStateManager
- func (m *SqlitePeerStateManager) Close() error
- func (m *SqlitePeerStateManager) GetAll() []*PeerState
- func (m *SqlitePeerStateManager) GetPeerState(keyID string) *PeerState
- func (m *SqlitePeerStateManager) OnStateChanged() eventemitter.Receiver[*PeerState]
- func (m *SqlitePeerStateManager) SetPeerState(keyID string, state *PeerState)
- type SyncClient
- type SyncError
- func NewSyncErrorAuth(message error) *SyncError
- func NewSyncErrorConnected(message error) *SyncError
- func NewSyncErrorDisconnected(message error) *SyncError
- func NewSyncErrorInternal(message error) *SyncError
- func NewSyncErrorPending(message error) *SyncError
- func NewSyncErrorProtocol(message error) *SyncError
- func NewSyncErrorRetryWait(message error) *SyncError
- func NewSyncErrorUnknown(message error) *SyncError
- type SyncManager
Constants ¶
View Source
const PeerContextKey peerContextKey = "peer"
View Source
const SyncProtocolVersion = 1
Variables ¶
View Source
var ErrNotBackrestURI = errors.New("not a backrest URI")
Functions ¶
func ContextWithPeer ¶ added in v1.11.0
func CreateRemoteRepoURI ¶
func InstanceForBackrestURI ¶
func IsBackrestRemoteRepoURI ¶
func PeerFromContext ¶ added in v1.11.0
func PeerFromContext(ctx context.Context) *v1.Multihost_Peer
func RepoForBackrestURI ¶
Types ¶
type BackrestSyncHandler ¶
type BackrestSyncHandler struct {
v1syncconnect.UnimplementedBackrestSyncServiceHandler
// contains filtered or unexported fields
}
func NewBackrestSyncHandler ¶
func NewBackrestSyncHandler(mgr *SyncManager) *BackrestSyncHandler
func (*BackrestSyncHandler) Sync ¶
func (h *BackrestSyncHandler) Sync(ctx context.Context, stream *connect.BidiStream[v1sync.SyncStreamItem, v1sync.SyncStreamItem]) error
type BackrestSyncStateHandler ¶ added in v1.9.0
type BackrestSyncStateHandler struct {
v1syncconnect.UnimplementedBackrestSyncStateServiceHandler
// contains filtered or unexported fields
}
func NewBackrestSyncStateHandler ¶ added in v1.9.0
func NewBackrestSyncStateHandler(mgr *SyncManager) *BackrestSyncStateHandler
func (*BackrestSyncStateHandler) GetPeerSyncStatesStream ¶ added in v1.9.0
func (h *BackrestSyncStateHandler) GetPeerSyncStatesStream(ctx context.Context, req *connect.Request[v1sync.SyncStateStreamRequest], stream *connect.ServerStream[v1sync.PeerState]) error
type InMemoryPeerStateManager ¶ added in v1.9.0
type InMemoryPeerStateManager struct {
// contains filtered or unexported fields
}
func NewInMemoryPeerStateManager ¶ added in v1.9.0
func NewInMemoryPeerStateManager() *InMemoryPeerStateManager
func (*InMemoryPeerStateManager) Close ¶ added in v1.9.0
func (m *InMemoryPeerStateManager) Close() error
func (*InMemoryPeerStateManager) GetAll ¶ added in v1.9.0
func (m *InMemoryPeerStateManager) GetAll() []*PeerState
func (*InMemoryPeerStateManager) GetPeerState ¶ added in v1.9.0
func (m *InMemoryPeerStateManager) GetPeerState(keyID string) *PeerState
func (*InMemoryPeerStateManager) OnStateChanged ¶ added in v1.9.0
func (m *InMemoryPeerStateManager) OnStateChanged() eventemitter.Receiver[*PeerState]
func (*InMemoryPeerStateManager) SetPeerState ¶ added in v1.9.0
func (m *InMemoryPeerStateManager) SetPeerState(keyID string, state *PeerState)
type PeerState ¶ added in v1.9.0
type PeerState struct {
InstanceID string
KeyID string
LastHeartbeat time.Time
ConnectionState v1sync.ConnectionState
ConnectionStateMessage string
// Plans and repos available on this peer
KnownRepos map[string]*v1sync.RepoMetadata
KnownPlans map[string]*v1sync.PlanMetadata
// Partial configuration available for this peer
Config *v1sync.RemoteConfig
}
type PeerStateManager ¶ added in v1.9.0
type SqlitePeerStateManager ¶ added in v1.9.0
type SqlitePeerStateManager struct {
// contains filtered or unexported fields
}
func NewSqlitePeerStateManager ¶ added in v1.9.0
func NewSqlitePeerStateManager(dbpool *sql.DB) (*SqlitePeerStateManager, error)
func (*SqlitePeerStateManager) Close ¶ added in v1.9.0
func (m *SqlitePeerStateManager) Close() error
func (*SqlitePeerStateManager) GetAll ¶ added in v1.9.0
func (m *SqlitePeerStateManager) GetAll() []*PeerState
func (*SqlitePeerStateManager) GetPeerState ¶ added in v1.9.0
func (m *SqlitePeerStateManager) GetPeerState(keyID string) *PeerState
func (*SqlitePeerStateManager) OnStateChanged ¶ added in v1.9.0
func (m *SqlitePeerStateManager) OnStateChanged() eventemitter.Receiver[*PeerState]
func (*SqlitePeerStateManager) SetPeerState ¶ added in v1.9.0
func (m *SqlitePeerStateManager) SetPeerState(keyID string, state *PeerState)
type SyncClient ¶
type SyncClient struct {
// contains filtered or unexported fields
}
func NewSyncClient ¶
func NewSyncClient( mgr *SyncManager, snapshot syncConfigSnapshot, peer *v1.Multihost_Peer, oplog *oplog.OpLog, ) (*SyncClient, error)
func (*SyncClient) RunSync ¶
func (c *SyncClient) RunSync(ctx context.Context)
type SyncError ¶ added in v1.9.0
type SyncError struct {
State v1sync.ConnectionState
Message error
}
func NewSyncErrorAuth ¶ added in v1.9.0
func NewSyncErrorConnected ¶ added in v1.9.0
func NewSyncErrorDisconnected ¶ added in v1.9.0
func NewSyncErrorInternal ¶ added in v1.9.0
func NewSyncErrorPending ¶ added in v1.9.0
func NewSyncErrorProtocol ¶ added in v1.9.0
func NewSyncErrorRetryWait ¶ added in v1.9.0
func NewSyncErrorUnknown ¶ added in v1.9.0
type SyncManager ¶
type SyncManager struct {
// contains filtered or unexported fields
}
func NewSyncManager ¶
func NewSyncManager(configMgr *config.ConfigManager, oplog *oplog.OpLog, orchestrator *orchestrator.Orchestrator, peerStateManager PeerStateManager) *SyncManager
func (*SyncManager) GetSyncClients ¶
func (m *SyncManager) GetSyncClients() map[string]*SyncClient
GetSyncClients returns a copy of the sync clients map. This makes the map safe to read from concurrently.
func (*SyncManager) RunSync ¶
func (m *SyncManager) RunSync(ctx context.Context)
Note: top level function will be called holding the lock, must kick off goroutines and then return.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.