Documentation ¶
Overview ¶
Package snapshot manages metadata about snapshots stored in repository.
Index ¶
- Constants
- Variables
- func GroupBySource(manifests []*Manifest) [][]*Manifest
- func ListSnapshotManifests(ctx context.Context, rep repo.Repository, src *SourceInfo) ([]manifest.ID, error)
- func SaveSnapshot(ctx context.Context, rep repo.RepositoryWriter, man *Manifest) (manifest.ID, error)
- type DirEntry
- type DirManifest
- type EntryType
- type HasDirEntry
- type Manifest
- func FindSnapshotsByRootObjectID(ctx context.Context, rep repo.Repository, rootID object.ID) ([]*Manifest, error)
- func ListSnapshots(ctx context.Context, rep repo.Repository, si SourceInfo) ([]*Manifest, error)
- func LoadSnapshot(ctx context.Context, rep repo.Repository, manifestID manifest.ID) (*Manifest, error)
- func LoadSnapshots(ctx context.Context, rep repo.Repository, manifestIDs []manifest.ID) ([]*Manifest, error)
- func SortByTime(manifests []*Manifest, reverse bool) []*Manifest
- type Permissions
- type SourceInfo
- type Stats
Constants ¶
const ManifestType = "snapshot"
ManifestType is the value of the "type" label for snapshot manifests.
Variables ¶
var ErrSnapshotNotFound = errors.Errorf("snapshot not found")
ErrSnapshotNotFound is returned when a snapshot is not found.
Functions ¶
func GroupBySource ¶
GroupBySource returns a slice of slices, such that each result item contains manifests from a single source.
func ListSnapshotManifests ¶
func ListSnapshotManifests(ctx context.Context, rep repo.Repository, src *SourceInfo) ([]manifest.ID, error)
ListSnapshotManifests returns the list of snapshot manifests for a given source or all sources if nil.
func SaveSnapshot ¶
func SaveSnapshot(ctx context.Context, rep repo.RepositoryWriter, man *Manifest) (manifest.ID, error)
SaveSnapshot persists given snapshot manifest and returns manifest ID.
Types ¶
type DirEntry ¶
type DirEntry struct { Name string `json:"name,omitempty"` Type EntryType `json:"type,omitempty"` Permissions Permissions `json:"mode,omitempty"` FileSize int64 `json:"size,omitempty"` ModTime time.Time `json:"mtime,omitempty"` UserID uint32 `json:"uid,omitempty"` GroupID uint32 `json:"gid,omitempty"` ObjectID object.ID `json:"obj,omitempty"` DirSummary *fs.DirectorySummary `json:"summ,omitempty"` }
DirEntry represents a directory entry as stored in JSON stream.
type DirManifest ¶
type DirManifest struct { StreamType string `json:"stream"` // legacy Entries []*DirEntry `json:"entries"` Summary *fs.DirectorySummary `json:"summary"` }
DirManifest represents serialized contents of a directory. The entries are sorted lexicographically and summary only refers to properties of entries, so directory with the same contents always serializes to exactly the same JSON.
type HasDirEntry ¶ added in v0.4.0
type HasDirEntry interface {
DirEntry() *DirEntry
}
HasDirEntry is implemented by objects that have a DirEntry associated with them.
type Manifest ¶
type Manifest struct { ID manifest.ID `json:"-"` Source SourceInfo `json:"source"` Description string `json:"description"` StartTime time.Time `json:"startTime"` EndTime time.Time `json:"endTime"` Stats Stats `json:"stats"` IncompleteReason string `json:"incomplete,omitempty"` RootEntry *DirEntry `json:"rootEntry"` RetentionReasons []string `json:"-"` }
Manifest represents information about a single point-in-time filesystem snapshot.
func FindSnapshotsByRootObjectID ¶ added in v0.7.2
func FindSnapshotsByRootObjectID(ctx context.Context, rep repo.Repository, rootID object.ID) ([]*Manifest, error)
FindSnapshotsByRootObjectID returns the list of matching snapshots for a given rootID.
func ListSnapshots ¶
func ListSnapshots(ctx context.Context, rep repo.Repository, si SourceInfo) ([]*Manifest, error)
ListSnapshots lists all snapshots for a given source.
func LoadSnapshot ¶ added in v0.4.0
func LoadSnapshot(ctx context.Context, rep repo.Repository, manifestID manifest.ID) (*Manifest, error)
LoadSnapshot loads and parses a snapshot with a given ID.
func LoadSnapshots ¶
func LoadSnapshots(ctx context.Context, rep repo.Repository, manifestIDs []manifest.ID) ([]*Manifest, error)
LoadSnapshots efficiently loads and parses a given list of snapshot IDs.
func SortByTime ¶
SortByTime returns a slice of manifests sorted by start time.
func (*Manifest) RootObjectID ¶
RootObjectID returns the ID of a root object.
type Permissions ¶
type Permissions int
Permissions encapsulates UNIX permissions for a filesystem entry.
func (Permissions) MarshalJSON ¶
func (p Permissions) MarshalJSON() ([]byte, error)
MarshalJSON emits permissions as octal string.
func (*Permissions) UnmarshalJSON ¶
func (p *Permissions) UnmarshalJSON(b []byte) error
UnmarshalJSON parses octal permissions string from JSON.
type SourceInfo ¶
type SourceInfo struct { Host string `json:"host"` UserName string `json:"userName"` Path string `json:"path"` }
SourceInfo represents the information about snapshot source.
func ListSources ¶
func ListSources(ctx context.Context, rep repo.Repository) ([]SourceInfo, error)
ListSources lists all snapshot sources in a given repository.
func ParseSourceInfo ¶
func ParseSourceInfo(path, hostname, username string) (SourceInfo, error)
ParseSourceInfo parses a given path in the context of given hostname and username and returns SourceInfo. The path may be bare (in which case it's interpreted as local path and canonicalized) or may be 'username@host:path' where path, username and host are not processed.
func (SourceInfo) String ¶
func (ssi SourceInfo) String() string
type Stats ¶
type Stats struct { // keep all int64 aligned because they will be atomically updated TotalFileSize int64 `json:"totalSize"` ExcludedTotalFileSize int64 `json:"excludedTotalSize"` // keep all int32 aligned because they will be atomically updated TotalFileCount int32 `json:"fileCount"` CachedFiles int32 `json:"cachedFiles"` NonCachedFiles int32 `json:"nonCachedFiles"` TotalDirectoryCount int32 `json:"dirCount"` ExcludedFileCount int32 `json:"excludedFileCount"` ExcludedDirCount int32 `json:"excludedDirCount"` IgnoredErrorCount int32 `json:"ignoredErrorCount"` ErrorCount int32 `json:"errorCount"` }
Stats keeps track of snapshot generation statistics.
func (*Stats) AddExcluded ¶
AddExcluded adds the information about excluded file to the statistics.
Directories ¶
Path | Synopsis |
---|---|
Package policy implements management of snapshot policies.
|
Package policy implements management of snapshot policies. |
Package restore manages restoring filesystem snapshots.
|
Package restore manages restoring filesystem snapshots. |
Package snapshotfs implements virtual filesystem on top of snapshots in repo.Repository.
|
Package snapshotfs implements virtual filesystem on top of snapshots in repo.Repository. |
Package snapshotgc implements garbage collection of contents that are no longer referenced through snapshots.
|
Package snapshotgc implements garbage collection of contents that are no longer referenced through snapshots. |
Package snapshotmaintenance provides helpers to run snapshot GC and low-level repository snapshotmaintenance.
|
Package snapshotmaintenance provides helpers to run snapshot GC and low-level repository snapshotmaintenance. |