store

package
v0.0.0-...-6ef0dbd Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsInUse

func IsInUse(err error) bool

IsInUse returns a boolean indicating whether the error indicates that a volume is in use

func IsNameConflict

func IsNameConflict(err error) bool

IsNameConflict returns a boolean indicating whether the error indicates that a volume name is already taken

func IsNotExist

func IsNotExist(err error) bool

IsNotExist returns a boolean indicating whether the error indicates that the volume does not exist

Types

type OpErr

type OpErr struct {
	// Err is the error that occurred during the operation.
	Err error
	// Op is the operation which caused the error, such as "create", or "list".
	Op string
	// Name is the name of the resource being requested for this op, typically the volume name or the driver name.
	Name string
	// Refs is the list of references associated with the resource.
	Refs []string
}

OpErr is the error type returned by functions in the store package. It describes the operation, volume name, and error.

func (*OpErr) Error

func (e *OpErr) Error() string

Error satisfies the built-in error interface type.

type VolumeStore

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

VolumeStore is a struct that stores the list of volumes available and keeps track of their usage counts

func New

func New(rootPath string) (*VolumeStore, error)

New initializes a VolumeStore to keep reference counting of volumes in the system.

func (*VolumeStore) Create

func (s *VolumeStore) Create(name, driverName string, opts, labels map[string]string) (volume.Volume, error)

Create creates a volume with the given name and driver.

func (*VolumeStore) CreateWithRef

func (s *VolumeStore) CreateWithRef(name, driverName, ref string, opts, labels map[string]string) (volume.Volume, error)

CreateWithRef creates a volume with the given name and driver and stores the ref This is just like Create() except we store the reference while holding the lock. This ensures there's no race between creating a volume and then storing a reference.

func (*VolumeStore) Dereference

func (s *VolumeStore) Dereference(v volume.Volume, ref string)

Dereference removes the specified reference to the volume

func (*VolumeStore) FilterByDriver

func (s *VolumeStore) FilterByDriver(name string) ([]volume.Volume, error)

FilterByDriver returns the available volumes filtered by driver name

func (*VolumeStore) FilterByUsed

func (s *VolumeStore) FilterByUsed(vols []volume.Volume, used bool) []volume.Volume

FilterByUsed returns the available volumes filtered by if they are in use or not. `used=true` returns only volumes that are being used, while `used=false` returns only volumes that are not being used.

func (*VolumeStore) Get

func (s *VolumeStore) Get(name string) (volume.Volume, error)

Get looks if a volume with the given name exists and returns it if so

func (*VolumeStore) GetWithRef

func (s *VolumeStore) GetWithRef(name, driverName, ref string) (volume.Volume, error)

GetWithRef gets a volume with the given name from the passed in driver and stores the ref This is just like Get(), but we store the reference while holding the lock. This makes sure there are no races between checking for the existence of a volume and adding a reference for it

func (*VolumeStore) List

func (s *VolumeStore) List() ([]volume.Volume, []string, error)

List proxies to all registered volume drivers to get the full list of volumes If a driver returns a volume that has name which conflicts with another volume from a different driver, the first volume is chosen and the conflicting volume is dropped.

func (*VolumeStore) Refs

func (s *VolumeStore) Refs(v volume.Volume) []string

Refs gets the current list of refs for the given volume

func (*VolumeStore) Remove

func (s *VolumeStore) Remove(v volume.Volume) error

Remove removes the requested volume. A volume is not removed if it has any refs

Jump to

Keyboard shortcuts

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