package dir

import "github.com/gravitational/teleport/lib/backend/dir"

dir package implements backend.Backend interface using the filesystem. The filesystem needs to be POSIX compliant and support BSD locks (flock).

Index

Functions

func GetName

func GetName() string

GetName returns the name of this backend.

func New

func New(params backend.Params) (backend.Backend, error)

New creates a new instance of a directory based backend that implements backend.Backend.

Types

type Backend

type Backend struct {
	// InternalClock is a test-friendly source of current time
	InternalClock clockwork.Clock
	// contains filtered or unexported fields
}

Backend implements backend.Backend interface using a regular POSIX-style filesystem

func (*Backend) AcquireLock

func (bk *Backend) AcquireLock(token string, ttl time.Duration) (err error)

AcquireLock grabs a lock that will be released automatically in TTL.

func (*Backend) Clock

func (b *Backend) Clock() clockwork.Clock

Clock returns the clock used by this backend.

func (*Backend) Close

func (bk *Backend) Close() error

Close releases the resources taken up the backend.

func (*Backend) CompareAndSwapVal

func (bk *Backend) CompareAndSwapVal(bucket []string, key string, val []byte, prevVal []byte, ttl time.Duration) error

CompareAndSwapVal compares and swap values in atomic operation

func (*Backend) CreateVal

func (bk *Backend) CreateVal(bucket []string, key string, val []byte, ttl time.Duration) error

CreateVal creates a key/value pair with the given TTL in the bucket. If the key already exists in the bucket, trace.AlreadyExists is returned.

func (*Backend) DeleteBucket

func (bk *Backend) DeleteBucket(parent []string, bucket string) error

DeleteBucket deletes the bucket by a given path.

func (*Backend) DeleteKey

func (bk *Backend) DeleteKey(bucket []string, key string) error

DeleteKey deletes a key in a bucket.

func (*Backend) GetItems

func (bk *Backend) GetItems(bucket []string, opts ...backend.OpOption) ([]backend.Item, error)

GetItems returns all items (key/value pairs) in a given bucket.

func (*Backend) GetKeys

func (bk *Backend) GetKeys(bucket []string, opts ...backend.OpOption) ([]string, error)

GetKeys returns a list of keys for a given bucket.

func (*Backend) GetVal

func (bk *Backend) GetVal(bucket []string, key string) ([]byte, error)

GetVal return a value for a given key in the bucket

func (*Backend) ReleaseLock

func (bk *Backend) ReleaseLock(token string) (err error)

ReleaseLock forces lock release before TTL.

func (*Backend) UpsertItems

func (bk *Backend) UpsertItems(bucket []string, newItems []backend.Item) error

UpsertItems inserts (or updates if it already exists) all passed in backend.Items with the given TTL.

func (*Backend) UpsertVal

func (bk *Backend) UpsertVal(bucket []string, key string, val []byte, ttl time.Duration) error

UpsertVal inserts (or updates if it already exists) the value for a key with the given TTL.

Source Files

doc.go impl.go migrate.go

Version
v3.2.17+incompatible (latest)
Published
Feb 4, 2021
Platform
linux/amd64
Imports
16 packages
Last checked
1 month ago

Tools for package owners.