syncapi

package
v1.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2025 License: GPL-3.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const SyncProtocolVersion = 1

Variables

View Source
var ErrNotBackrestURI = errors.New("not a backrest URI")

Functions

func CreateRemoteRepoURI

func CreateRemoteRepoURI(instanceUrl string) (string, error)

func InstanceForBackrestURI

func InstanceForBackrestURI(repoUri string) (string, error)

func IsBackrestRemoteRepoURI

func IsBackrestRemoteRepoURI(repoUri string) bool

func RepoForBackrestURI

func RepoForBackrestURI(repoUri string) (string, error)

Types

type BackrestSyncHandler

type BackrestSyncHandler struct {
	v1connect.UnimplementedBackrestSyncServiceHandler
	// contains filtered or unexported fields
}

func NewBackrestSyncHandler

func NewBackrestSyncHandler(mgr *SyncManager) *BackrestSyncHandler

func (*BackrestSyncHandler) Sync

type BackrestSyncStateHandler added in v1.9.0

type BackrestSyncStateHandler struct {
	v1connect.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

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 (*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        v1.SyncConnectionState
	ConnectionStateMessage string

	// Plans and repos available on this peer
	KnownRepos map[string]struct{}
	KnownPlans map[string]struct{}

	// Partial configuration available for this peer
	Config *v1.RemoteConfig
}

func (*PeerState) Clone added in v1.9.0

func (ps *PeerState) Clone() *PeerState

type PeerStateManager added in v1.9.0

type PeerStateManager interface {
	GetPeerState(keyID string) *PeerState
	GetAll() []*PeerState
	SetPeerState(keyID string, state *PeerState)
	OnStateChanged() eventemitter.Receiver[*PeerState]
	Close() error
}

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 *sqlitex.Pool) (*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   v1.SyncConnectionState
	Message error
}

func NewSyncErrorAuth added in v1.9.0

func NewSyncErrorAuth(message error) *SyncError

func NewSyncErrorConnected added in v1.9.0

func NewSyncErrorConnected(message error) *SyncError

func NewSyncErrorDisconnected added in v1.9.0

func NewSyncErrorDisconnected(message error) *SyncError

func NewSyncErrorInternal added in v1.9.0

func NewSyncErrorInternal(message error) *SyncError

func NewSyncErrorPending added in v1.9.0

func NewSyncErrorPending(message error) *SyncError

func NewSyncErrorProtocol added in v1.9.0

func NewSyncErrorProtocol(message error) *SyncError

func NewSyncErrorRetryWait added in v1.9.0

func NewSyncErrorRetryWait(message error) *SyncError

func NewSyncErrorUnknown added in v1.9.0

func NewSyncErrorUnknown(message error) *SyncError

func (*SyncError) Error added in v1.9.0

func (e *SyncError) Error() string

func (*SyncError) Unwrap added in v1.9.0

func (e *SyncError) Unwrap() error

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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL