checker

package
v0.14.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package checker defines the framework for creating and restoring snapshots with a data integrity check

Index

Constants

View Source
const (
	DeletedSnapshotsIdxName = "deleted-snapshots-idx"
	LiveSnapshotsIdxName    = "live-snapshots-idx"
	AllSnapshotsIdxName     = "all-snapshots-idx"
)

Index names for categorizing snapshot lookups.

Variables

This section is empty.

Functions

This section is empty.

Types

type Checker added in v0.6.0

type Checker struct {
	RestoreDir string

	RecoveryMode bool
	DeleteLimit  int

	SnapIDIndex snapmeta.Index // +checklocksignore
	// contains filtered or unexported fields
}

Checker is an object that can take snapshots and restore them, performing a validation for data consistency.

func NewChecker added in v0.6.0

func NewChecker(snapIssuer robustness.Snapshotter, snapmetaStore robustness.Store, restoreDir string) (*Checker, error)

NewChecker instantiates a new Checker, returning its pointer. A temporary directory is created to mount restored data.

func (*Checker) Cleanup added in v0.6.0

func (chk *Checker) Cleanup()

Cleanup cleans up the Checker's temporary restore data directory.

func (*Checker) DeleteSnapshot added in v0.6.0

func (chk *Checker) DeleteSnapshot(ctx context.Context, snapID string, opts map[string]string) error

DeleteSnapshot performs the Snapshotter's DeleteSnapshot action, and marks the snapshot with the given snapshot ID as deleted.

func (*Checker) GetLiveSnapIDs added in v0.6.0

func (chk *Checker) GetLiveSnapIDs() []string

GetLiveSnapIDs gets the list of snapshot IDs being tracked by the checker's snapshot store that do not have a deletion time associated with them.

func (*Checker) GetSnapIDs added in v0.6.0

func (chk *Checker) GetSnapIDs() []string

GetSnapIDs gets the list of snapshot IDs being tracked by the checker's snapshot store.

func (*Checker) GetSnapshotMetadata added in v0.6.0

func (chk *Checker) GetSnapshotMetadata(ctx context.Context, snapID string) (*SnapshotMetadata, error)

GetSnapshotMetadata gets the metadata associated with the given snapshot ID.

func (*Checker) IsSnapshotIDDeleted added in v0.6.0

func (chk *Checker) IsSnapshotIDDeleted(ctx context.Context, snapID string) (bool, error)

IsSnapshotIDDeleted reports whether the metadata associated with the provided snapshot ID has it marked as deleted.

func (*Checker) RestoreSnapshot added in v0.6.0

func (chk *Checker) RestoreSnapshot(ctx context.Context, snapID string, reportOut io.Writer, opts map[string]string) error

RestoreSnapshot restores a snapshot to the Checker's temporary restore directory using the Checker's Snapshotter, and performs a data consistency check on the resulting tree using the saved snapshot data.

func (*Checker) RestoreSnapshotToPath added in v0.6.0

func (chk *Checker) RestoreSnapshotToPath(ctx context.Context, snapID, destPath string, reportOut io.Writer, opts map[string]string) error

RestoreSnapshotToPath restores a snapshot to the requested path using the Checker's Snapshotter, and performs a data consistency check on the resulting tree using the saved snapshot data.

func (*Checker) RestoreVerifySnapshot added in v0.6.0

func (chk *Checker) RestoreVerifySnapshot(ctx context.Context, snapID, destPath string, ssMeta *SnapshotMetadata, reportOut io.Writer, opts map[string]string) error

RestoreVerifySnapshot restores a snapshot and verifies its integrity against the metadata provided.

func (*Checker) TakeSnapshot added in v0.6.0

func (chk *Checker) TakeSnapshot(ctx context.Context, sourceDir string, opts map[string]string) (snapID string, err error)

TakeSnapshot gathers state information on the requested snapshot path, then performs the snapshot action defined by the Checker's Snapshotter.

func (*Checker) VerifySnapshotMetadata added in v0.6.0

func (chk *Checker) VerifySnapshotMetadata(ctx context.Context) error

VerifySnapshotMetadata compares the list of live snapshot IDs present in the Checker's metadata against a list of live snapshot IDs in the connected repository. This should not be called concurrently, as there is no thread safety guaranteed.

type SnapshotMetadata added in v0.6.0

type SnapshotMetadata struct {
	SnapID         string    `json:"snapID"`
	SnapStartTime  time.Time `json:"snapStartTime"`
	SnapEndTime    time.Time `json:"snapEndTime"`
	DeletionTime   time.Time `json:"deletionTime"`
	ValidationData []byte    `json:"validationData"`
}

SnapshotMetadata holds metadata associated with a given snapshot.

func (*SnapshotMetadata) IsDeleted added in v0.8.0

func (ssMeta *SnapshotMetadata) IsDeleted() bool

IsDeleted returns true if the SnapshotMetadata references a snapshot ID that has been deleted.

Jump to

Keyboard shortcuts

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