Documentation ¶
Overview ¶
Package snapshot manages metadata about snapshots stored in repository.
Index ¶
- Constants
- 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.Repository, man *Manifest) (manifest.ID, error)
- type DirEntry
- type DirManifest
- type EntryType
- type HasDirEntry
- type Manifest
- 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 ¶
This section is empty.
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 ¶
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 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 { Content content.Stats `json:"content,omitempty"` TotalDirectoryCount int `json:"dirCount"` TotalFileCount int `json:"fileCount"` TotalFileSize int64 `json:"totalSize"` ExcludedFileCount int `json:"excludedFileCount"` ExcludedTotalFileSize int64 `json:"excludedTotalSize"` ExcludedDirCount int `json:"excludedDirCount"` CachedFiles int `json:"cachedFiles"` NonCachedFiles int `json:"nonCachedFiles"` ReadErrors int `json:"readErrors"` }
Stats keeps track of snapshot generation statistics.
func (*Stats) AddExcluded ¶
AddExcluded adds the information about excluded file to the statistics.
Directories ¶
Path | Synopsis |
---|---|
Package gc implements garbage collection of contents that are no longer referenced through snapshots.
|
Package gc implements garbage collection of contents that are no longer referenced through snapshots. |
Package policy implements management of snapshot policies.
|
Package policy implements management of snapshot policies. |
Package snapshotfs implements virtual filesystem on top of snapshots in repo.Repository.
|
Package snapshotfs implements virtual filesystem on top of snapshots in repo.Repository. |