versions

package
v4.2.1 Latest Latest
Warning

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

Go to latest
Published: May 22, 2023 License: AGPL-3.0 Imports: 41 Imported by: 0

Documentation

Overview

Package versions provides a versioning mechanism for files modifications

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DataSourceForPolicy

func DataSourceForPolicy(ctx context.Context, policy *tree.VersioningPolicy) (nodes.LoadedSource, error)

DataSourceForPolicy finds the LoadedSource for a given VersioningPolicy - Uses "DS: default"+"Bucket: versions" for backward compatibility.

func DefaultLocation

func DefaultLocation(originalUUID, versionUUID string) *tree.Node

func DispatchChangeLogsByPeriod

func DispatchChangeLogsByPeriod(pruningPeriods []*pruningPeriod, changesChan chan *tree.ChangeLog) ([]*pruningPeriod, error)

DispatchChangeLogsByPeriod places each change in its corresponding period

func Migrate

func Migrate(f dao.DAO, t dao.DAO, dryRun bool, status chan dao.MigratorStatus) (map[string]int, error)

func NewDAO

func NewDAO(c context.Context, o dao.DAO) (dao.DAO, error)

func ParseDuration

func ParseDuration(duration string) (d time.Duration, e error)

ParseDuration is similar to time.ParseDuration, with specific case for "d" suffix on duration.

func PolicyForNode

func PolicyForNode(ctx context.Context, node *tree.Node) *tree.VersioningPolicy

PolicyForNode checks datasource name and find corresponding VersioningPolicy (if set). Returns nil otherwise.

func PreparePeriods

func PreparePeriods(startTime time.Time, periods []*tree.VersioningKeepPeriod) ([]*pruningPeriod, error)

PreparePeriods computes the actual periods from definitions.

func PruneAllWithMaxSize

func PruneAllWithMaxSize(periods []*pruningPeriod, maxSize int64) (toBeRemoved []*tree.ChangeLog, remaining []*tree.ChangeLog)

PruneAllWithMaxSize checks overall size and removes older versions. It should be called after pruning by periods.

Types

type BoltStore

type BoltStore struct {
	boltdb.DAO
	// For Testing purpose : delete file after closing
	DeleteOnClose bool
	// Path to the DB file
	DbPath string
}

func NewBoltStore

func NewBoltStore(dao boltdb.DAO, fileName string, deleteOnClose ...bool) (*BoltStore, error)

func (*BoltStore) Close

func (b *BoltStore) Close() error

func (*BoltStore) DeleteVersionsForNode

func (b *BoltStore) DeleteVersionsForNode(nodeUuid string, versions ...*tree.ChangeLog) error

DeleteVersionsForNode deletes whole node bucket at once.

func (*BoltStore) DeleteVersionsForNodes

func (b *BoltStore) DeleteVersionsForNodes(nodeUuid []string) error

DeleteVersionsForNodes delete versions in a batch

func (*BoltStore) GetLastVersion

func (b *BoltStore) GetLastVersion(nodeUuid string) (log *tree.ChangeLog, err error)

GetLastVersion retrieves the last version registered for this node.

func (*BoltStore) GetVersion

func (b *BoltStore) GetVersion(nodeUuid string, versionId string) (*tree.ChangeLog, error)

GetVersion retrieves a specific version from the node bucket.

func (*BoltStore) GetVersions

func (b *BoltStore) GetVersions(nodeUuid string) (chan *tree.ChangeLog, error)

GetVersions returns all versions from the node bucket, in reverse order (last inserted first).

func (*BoltStore) ListAllVersionedNodesUuids

func (b *BoltStore) ListAllVersionedNodesUuids() (chan string, chan bool, chan error)

ListAllVersionedNodesUuids lists all nodes uuids

func (*BoltStore) StoreVersion

func (b *BoltStore) StoreVersion(nodeUuid string, log *tree.ChangeLog) error

StoreVersion stores a version in the node bucket.

type DAO

type DAO interface {
	dao.DAO
	GetLastVersion(nodeUuid string) (*tree.ChangeLog, error)
	GetVersions(nodeUuid string) (chan *tree.ChangeLog, error)
	GetVersion(nodeUuid string, versionId string) (*tree.ChangeLog, error)
	StoreVersion(nodeUuid string, log *tree.ChangeLog) error
	DeleteVersionsForNode(nodeUuid string, versions ...*tree.ChangeLog) error
	DeleteVersionsForNodes(nodeUuid []string) error
	ListAllVersionedNodesUuids() (chan string, chan bool, chan error)
}

type OnDeleteVersionsAction

type OnDeleteVersionsAction struct {
	common.RuntimeHolder
	Handler nodes.Handler
	Pool    nodes.SourcesPool
	// contains filtered or unexported fields
}

func (*OnDeleteVersionsAction) CreateParents

func (c *OnDeleteVersionsAction) CreateParents(ctx context.Context, dirPath string) error

func (*OnDeleteVersionsAction) GetDescription

func (c *OnDeleteVersionsAction) GetDescription(lang ...string) actions.ActionDescription

func (*OnDeleteVersionsAction) GetName

func (c *OnDeleteVersionsAction) GetName() string

GetName returns the Unique identifier.

func (*OnDeleteVersionsAction) GetParametersForm

func (c *OnDeleteVersionsAction) GetParametersForm() *forms.Form

func (*OnDeleteVersionsAction) Init

func (c *OnDeleteVersionsAction) Init(job *jobs.Job, action *jobs.Action) error

Init passes the parameters to a newly created PruneVersionsAction.

func (*OnDeleteVersionsAction) Run

Run processes the actual action code.

type PruneVersionsAction

type PruneVersionsAction struct {
	common.RuntimeHolder
	Handler nodes.Handler
	Pool    nodes.SourcesPool
}

func (*PruneVersionsAction) GetDescription

func (c *PruneVersionsAction) GetDescription(lang ...string) actions.ActionDescription

func (*PruneVersionsAction) GetName

func (c *PruneVersionsAction) GetName() string

GetName returns the Unique identifier.

func (*PruneVersionsAction) GetParametersForm

func (c *PruneVersionsAction) GetParametersForm() *forms.Form

func (*PruneVersionsAction) Init

func (c *PruneVersionsAction) Init(job *jobs.Job, action *jobs.Action) error

Init passes the parameters to a newly created PruneVersionsAction.

func (*PruneVersionsAction) Run

Run processes the actual action code.

type VersionAction

type VersionAction struct {
	common.RuntimeHolder
}

func (*VersionAction) GetDescription

func (c *VersionAction) GetDescription(lang ...string) actions.ActionDescription

func (*VersionAction) GetName

func (c *VersionAction) GetName() string

GetName returns the Unique identifier for this VersionAction

func (*VersionAction) GetParametersForm

func (c *VersionAction) GetParametersForm() *forms.Form

func (*VersionAction) Init

func (c *VersionAction) Init(job *jobs.Job, action *jobs.Action) error

Init sets this VersionAction parameters.

func (*VersionAction) Run

Run processes the actual action code

Directories

Path Synopsis
Package grpc is in charge of storing versions metadata
Package grpc is in charge of storing versions metadata
Package lang provides i18n strings for versions service
Package lang provides i18n strings for versions service

Jump to

Keyboard shortcuts

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