Documentation
¶
Index ¶
- Constants
- Variables
- func ChainMiddlewareRead(m []Middleware) func(io.Reader) (io.Reader, error)
- func ChainMiddlewareWrite(m []Middleware) func(io.Writer) (io.Writer, error)
- type BackupCreate
- type BackupDelete
- type BackupListUsecase
- type BackupRecord
- type BackupRecordWithKey
- type BackupRepository
- type BackupRequest
- type BackupRestore
- type BackupState
- type BackupStateRepo
- type BackupSyncUsecase
- type BackupType
- type BackupUsecase
- type Commander
- type DeleteParameters
- type DeleteResult
- type DownloadParameters
- type FilterCriteria
- type ListParameters
- type LogDriver
- type LogLevel
- type LogRepository
- type Middleware
- type Nower
- type ReceiveParameters
- type RenderDriver
- type RenderRepository
- type RestoreParams
- type SendParameters
- type SnapshotNamestrategy
- type SnapshotRepository
- type SnapshotUsecase
- type StorageDriver
- type TrimLocalParameters
- type TrimRemoteParameters
- type TrimUsecase
- type UploadParameters
- type UploadResponse
- type VolumeRepository
- type VolumeUsecase
- type ZfsDriver
- type ZfsSnapshot
- type ZfsSnapshotWithType
- type ZfsVolume
Constants ¶
View Source
const StateFileName = ".backupstate.yaml"
Variables ¶
View Source
var DefaultVolumeGroup = "default"
View Source
var ErrNoLocalTrimPolicy = errors.New("no local trim policy configured")
View Source
var ErrNoRemoteTrimPolicy = errors.New("no remote trim policy configured")
View Source
var ErrNotFound = errors.New("object not found")
Functions ¶
func ChainMiddlewareRead ¶
func ChainMiddlewareWrite ¶
Types ¶
type BackupCreate ¶
type BackupCreate struct { Snapshot ZfsSnapshot PreviousSnapshot *ZfsSnapshot ProxyReaderFunc func(r io.Reader) (io.Reader, error) }
type BackupDelete ¶
type BackupDelete struct {
BlobKey string
}
type BackupListUsecase ¶
type BackupRecord ¶
type BackupRecord struct { Type BackupType `yaml:"type"` ParentBackupKey string `yaml:"parent-backup-key"` Size *int64 `yaml:"size,omitempty"` }
type BackupRecordWithKey ¶
type BackupRecordWithKey struct { BackupRecord Key string }
func (*BackupRecordWithKey) GetFileName ¶
func (b *BackupRecordWithKey) GetFileName() string
type BackupRepository ¶
type BackupRepository interface { Create(ctx context.Context, p *BackupCreate) (*UploadResponse, error) Restore(ctx context.Context, p *BackupRestore) error Delete(ctx context.Context, bd *BackupDelete) error }
type BackupRequest ¶
type BackupRequest struct { Snapshot *ZfsSnapshot IsHead bool Type BackupType }
type BackupRestore ¶
type BackupState ¶
type BackupState struct { Head string `yaml:"head"` Backups map[string]BackupRecord `yaml:"backups"` }
func (*BackupState) DeleteBackup ¶
func (b *BackupState) DeleteBackup(key string)
func (*BackupState) GetRecordByKey ¶
func (b *BackupState) GetRecordByKey(key string) (r *BackupRecordWithKey, err error)
func (*BackupState) VisitParent ¶
func (b *BackupState) VisitParent(startNode *BackupRecordWithKey, f func(r *BackupRecordWithKey) bool) error
type BackupStateRepo ¶
type BackupStateRepo interface { Download(ctx context.Context, key string) (*BackupState, error) DownloadOrDefault(ctx context.Context, key string) (*BackupState, error) UpdateState(ctx context.Context, stateFileKey string, f func(state *BackupState) error) error Upload(ctx context.Context, key string, state *BackupState) error }
type BackupSyncUsecase ¶
type BackupSyncUsecase interface { Backup(ctx context.Context, groupName string) error CalcSnapsToBackup(bs *BackupState, snaps []*ZfsSnapshot) ([]*BackupRequest, error) }
type BackupType ¶
type BackupType int
const ( Unknown BackupType = iota Full Incremental )
func StringToBackupType ¶
func StringToBackupType(str string) BackupType
func (BackupType) String ¶
func (s BackupType) String() string
type BackupUsecase ¶
type DeleteParameters ¶
type DeleteResult ¶
type DeleteResult struct { Delete []*BackupRecordWithKey DependentsKeys map[string]bool }
type DownloadParameters ¶
type FilterCriteria ¶
type ListParameters ¶
type LogRepository ¶
type LogRepository interface { LogDriver }
type Middleware ¶
type ReceiveParameters ¶
type ReceiveParameters struct {
TargetName string
}
type RenderDriver ¶
type RenderRepository ¶
type RestoreParams ¶
type SendParameters ¶
type SnapshotNamestrategy ¶
type SnapshotRepository ¶
type SnapshotRepository interface { Create(v *ZfsVolume) (string, error) CreateWithType(v *ZfsVolume, t BackupType) (string, error) List() ([]*ZfsSnapshot, error) ListFilter(filter *FilterCriteria) ([]*ZfsSnapshot, error) GetType(zfsEntity string) (BackupType, error) Delete(snap *ZfsSnapshot) error }
type SnapshotUsecase ¶
type StorageDriver ¶
type StorageDriver interface { Delete(ctx context.Context, dp *DeleteParameters) error Upload(ctx context.Context, up *UploadParameters, reader io.Reader) (*UploadResponse, error) Download(ctx context.Context, dp *DownloadParameters, writer io.Writer) error }
type TrimLocalParameters ¶
type TrimRemoteParameters ¶
type TrimUsecase ¶
type TrimUsecase interface { TrimRemote(ctx context.Context, pa *TrimRemoteParameters) error TrimLocal(_ context.Context, pa *TrimLocalParameters) error }
type UploadParameters ¶
type UploadResponse ¶
type UploadResponse struct {
Size int64
}
type VolumeRepository ¶
type VolumeUsecase ¶
type ZfsDriver ¶
type ZfsDriver interface { Send(p *SendParameters) *exec.Cmd Snapshot(name string) *exec.Cmd List(p *ListParameters) *exec.Cmd Receive(p *ReceiveParameters) *exec.Cmd GetField(fieldName string, zfsEntity string) *exec.Cmd SetField(fieldName, value, zfsEntity string) error Destroy(zfsEntity string) error }
type ZfsSnapshot ¶
func NewZfsSnapshot ¶
func NewZfsSnapshot(fullName string) *ZfsSnapshot
func (ZfsSnapshot) FullName ¶
func (z ZfsSnapshot) FullName() string
func (ZfsSnapshot) NormalizedFullPath ¶
func (z ZfsSnapshot) NormalizedFullPath() string
type ZfsSnapshotWithType ¶
type ZfsSnapshotWithType struct { ZfsSnapshot Type BackupType }
Source Files
¶
Click to show internal directories.
Click to hide internal directories.