metadata

package
v2.18.0 Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2023 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsAttrUnset

func IsAttrUnset(err error) bool

IsAttrUnset checks the xattr.ENOATTR from the xattr package which redifines it as ENODATA on platforms that do not natively support it (eg. linux) see https://github.com/pkg/xattr/blob/8725d4ccc0fcef59c8d9f0eaf606b3c6f962467a/xattr_linux.go#L19-L22

func IsNotExist

func IsNotExist(err error) bool

IsNotExist checks if there is a os not exists error buried inside the xattr error, as we cannot just use os.IsNotExist().

Types

type Backend

type Backend interface {
	Name() string

	All(ctx context.Context, path string) (map[string][]byte, error)
	Get(ctx context.Context, path, key string) ([]byte, error)

	GetInt64(ctx context.Context, path, key string) (int64, error)
	List(ctx context.Context, path string) (attribs []string, err error)
	Set(ctx context.Context, path, key string, val []byte) error
	SetMultiple(ctx context.Context, path string, attribs map[string][]byte, acquireLock bool) error
	Remove(ctx context.Context, path, key string, acquireLock bool) error

	Purge(path string) error
	Rename(oldPath, newPath string) error
	IsMetaFile(path string) bool
	MetadataPath(path string) string
	LockfilePath(path string) string

	AllWithLockedSource(ctx context.Context, path string, source io.Reader) (map[string][]byte, error)
}

Backend defines the interface for file attribute backends

type MessagePackBackend

type MessagePackBackend struct {
	// contains filtered or unexported fields
}

MessagePackBackend persists the attributes in messagepack format inside the file

func NewMessagePackBackend

func NewMessagePackBackend(rootPath string, o cache.Config) MessagePackBackend

NewMessagePackBackend returns a new MessagePackBackend instance

func (MessagePackBackend) All

func (b MessagePackBackend) All(ctx context.Context, path string) (map[string][]byte, error)

All reads all extended attributes for a node

func (MessagePackBackend) AllWithLockedSource

func (b MessagePackBackend) AllWithLockedSource(ctx context.Context, path string, source io.Reader) (map[string][]byte, error)

AllWithLockedSource reads all extended attributes from the given reader (if possible). The path argument is used for storing the data in the cache

func (MessagePackBackend) Get

func (b MessagePackBackend) Get(ctx context.Context, path, key string) ([]byte, error)

Get an extended attribute value for the given key

func (MessagePackBackend) GetInt64

func (b MessagePackBackend) GetInt64(ctx context.Context, path, key string) (int64, error)

GetInt64 reads a string as int64 from the xattrs

func (MessagePackBackend) IsMetaFile

func (MessagePackBackend) IsMetaFile(path string) bool

IsMetaFile returns whether the given path represents a meta file

func (MessagePackBackend) List

func (b MessagePackBackend) List(ctx context.Context, path string) ([]string, error)

List retrieves a list of names of extended attributes associated with the given path in the file system.

func (MessagePackBackend) LockfilePath added in v2.15.0

func (MessagePackBackend) LockfilePath(path string) string

LockfilePath returns the path of the lock file

func (MessagePackBackend) MetadataPath

func (MessagePackBackend) MetadataPath(path string) string

MetadataPath returns the path of the file holding the metadata for the given path

func (MessagePackBackend) Name

func (MessagePackBackend) Name() string

Name returns the name of the backend

func (MessagePackBackend) Purge

func (b MessagePackBackend) Purge(path string) error

Purge purges the data of a given path

func (MessagePackBackend) Remove

func (b MessagePackBackend) Remove(ctx context.Context, path, key string, acquireLock bool) error

Remove an extended attribute key

func (MessagePackBackend) Rename

func (b MessagePackBackend) Rename(oldPath, newPath string) error

Rename moves the data for a given path to a new path

func (MessagePackBackend) Set

func (b MessagePackBackend) Set(ctx context.Context, path, key string, val []byte) error

Set sets one attribute for the given path

func (MessagePackBackend) SetMultiple

func (b MessagePackBackend) SetMultiple(ctx context.Context, path string, attribs map[string][]byte, acquireLock bool) error

SetMultiple sets a set of attribute for the given path

type NullBackend

type NullBackend struct{}

NullBackend is the default stub backend, used to enforce the configuration of a proper backend

func (NullBackend) All

func (NullBackend) All(ctx context.Context, path string) (map[string][]byte, error)

All reads all extended attributes for a node

func (NullBackend) AllWithLockedSource

func (NullBackend) AllWithLockedSource(ctx context.Context, path string, source io.Reader) (map[string][]byte, error)

AllWithLockedSource reads all extended attributes from the given reader The path argument is used for storing the data in the cache

func (NullBackend) Get

func (NullBackend) Get(ctx context.Context, path, key string) ([]byte, error)

Get an extended attribute value for the given key

func (NullBackend) GetInt64

func (NullBackend) GetInt64(ctx context.Context, path, key string) (int64, error)

GetInt64 reads a string as int64 from the xattrs

func (NullBackend) IsMetaFile

func (NullBackend) IsMetaFile(path string) bool

IsMetaFile returns whether the given path represents a meta file

func (NullBackend) List

func (NullBackend) List(ctx context.Context, path string) ([]string, error)

List retrieves a list of names of extended attributes associated with the given path in the file system.

func (NullBackend) LockfilePath added in v2.15.0

func (NullBackend) LockfilePath(path string) string

LockfilePath returns the path of the lock file

func (NullBackend) MetadataPath

func (NullBackend) MetadataPath(path string) string

MetadataPath returns the path of the file holding the metadata for the given path

func (NullBackend) Name

func (NullBackend) Name() string

Name returns the name of the backend

func (NullBackend) Purge

func (NullBackend) Purge(purges string) error

Purge purges the data of a given path from any cache that might hold it

func (NullBackend) Remove

func (NullBackend) Remove(ctx context.Context, path string, key string, acquireLock bool) error

Remove removes an extended attribute key

func (NullBackend) Rename

func (NullBackend) Rename(oldPath, newPath string) error

Rename moves the data for a given path to a new path

func (NullBackend) Set

func (NullBackend) Set(ctx context.Context, path string, key string, val []byte) error

Set sets one attribute for the given path

func (NullBackend) SetMultiple

func (NullBackend) SetMultiple(ctx context.Context, path string, attribs map[string][]byte, acquireLock bool) error

SetMultiple sets a set of attribute for the given path

type XattrsBackend

type XattrsBackend struct{}

XattrsBackend stores the file attributes in extended attributes

func (XattrsBackend) All

func (b XattrsBackend) All(ctx context.Context, filePath string) (attribs map[string][]byte, err error)

All reads all extended attributes for a node, protected by a shared file lock

func (XattrsBackend) AllWithLockedSource

func (b XattrsBackend) AllWithLockedSource(ctx context.Context, path string, _ io.Reader) (map[string][]byte, error)

AllWithLockedSource reads all extended attributes from the given reader. The path argument is used for storing the data in the cache

func (XattrsBackend) Get

func (b XattrsBackend) Get(ctx context.Context, filePath, key string) ([]byte, error)

Get an extended attribute value for the given key No file locking is involved here as reading a single xattr is considered to be atomic.

func (XattrsBackend) GetInt64

func (b XattrsBackend) GetInt64(ctx context.Context, filePath, key string) (int64, error)

GetInt64 reads a string as int64 from the xattrs

func (XattrsBackend) IsMetaFile

func (XattrsBackend) IsMetaFile(path string) bool

IsMetaFile returns whether the given path represents a meta file

func (XattrsBackend) List

func (XattrsBackend) List(ctx context.Context, filePath string) (attribs []string, err error)

List retrieves a list of names of extended attributes associated with the given path in the file system.

func (XattrsBackend) LockfilePath added in v2.15.0

func (XattrsBackend) LockfilePath(path string) string

LockfilePath returns the path of the lock file

func (XattrsBackend) MetadataPath

func (XattrsBackend) MetadataPath(path string) string

MetadataPath returns the path of the file holding the metadata for the given path

func (XattrsBackend) Name

func (XattrsBackend) Name() string

Name returns the name of the backend

func (XattrsBackend) Purge

func (XattrsBackend) Purge(path string) error

Purge purges the data of a given path

func (XattrsBackend) Remove

func (XattrsBackend) Remove(ctx context.Context, filePath string, key string, acquireLock bool) (err error)

Remove an extended attribute key

func (XattrsBackend) Rename

func (XattrsBackend) Rename(oldPath, newPath string) error

Rename moves the data for a given path to a new path

func (XattrsBackend) Set

func (b XattrsBackend) Set(ctx context.Context, path string, key string, val []byte) (err error)

Set sets one attribute for the given path

func (XattrsBackend) SetMultiple

func (XattrsBackend) SetMultiple(ctx context.Context, path string, attribs map[string][]byte, acquireLock bool) (err error)

SetMultiple sets a set of attribute for the given path

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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