volumepathhandler

package
v0.7.10 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	ErrDeviceNotFound     = "device not found"
	ErrDeviceNotSupported = "device not supported"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockVolumePathHandler

type BlockVolumePathHandler interface {
	// MapDevice creates a symbolic link to block device under specified map path
	MapDevice(devicePath string, mapPath string, linkName string, bindMount bool) error
	// UnmapDevice removes a symbolic link to block device under specified map path
	UnmapDevice(mapPath string, linkName string, bindMount bool) error
	// RemovePath removes a file or directory on specified map path
	RemoveMapPath(mapPath string) error
	// IsSymlinkExist retruns true if specified symbolic link exists
	IsSymlinkExist(mapPath string) (bool, error)
	// IsDeviceBindMountExist retruns true if specified bind mount exists
	IsDeviceBindMountExist(mapPath string) (bool, error)
	// GetDeviceBindMountRefs searches bind mounts under global map path
	GetDeviceBindMountRefs(devPath string, mapPath string) ([]string, error)
	// FindGlobalMapPathUUIDFromPod finds {pod uuid} symbolic link under globalMapPath
	// corresponding to map path symlink, and then return global map path with pod uuid.
	FindGlobalMapPathUUIDFromPod(pluginDir, mapPath string, podUID types.UID) (string, error)
	// AttachFileDevice takes a path to a regular file and makes it available as an
	// attached block device.
	AttachFileDevice(path string) (string, error)
	// DetachFileDevice takes a path to the attached block device and
	// detach it from block device.
	DetachFileDevice(path string) error
	// GetLoopDevice returns the full path to the loop device associated with the given path.
	GetLoopDevice(path string) (string, error)
}

BlockVolumePathHandler defines a set of operations for handling block volume-related operations

func NewBlockVolumePathHandler

func NewBlockVolumePathHandler() BlockVolumePathHandler

NewBlockVolumePathHandler returns a new instance of BlockVolumeHandler.

type VolumePathHandler

type VolumePathHandler struct {
}

VolumePathHandler is path related operation handlers for block volume

func (VolumePathHandler) AttachFileDevice

func (v VolumePathHandler) AttachFileDevice(path string) (string, error)

AttachFileDevice takes a path to a regular file and makes it available as an attached block device.

func (VolumePathHandler) AttachFileDeviceWithOffset

func (v VolumePathHandler) AttachFileDeviceWithOffset(path string, offset int64) (string, error)

AttachFileDevice takes a path to a regular file and makes its content starting at the given offset available as an attached block device.

func (VolumePathHandler) DetachFileDevice

func (v VolumePathHandler) DetachFileDevice(path string) error

DetachFileDevice takes a path to the attached block device and detach it from block device.

func (VolumePathHandler) FindGlobalMapPathUUIDFromPod

func (v VolumePathHandler) FindGlobalMapPathUUIDFromPod(pluginDir, mapPath string, podUID types.UID) (string, error)

FindGlobalMapPathUUIDFromPod finds {pod uuid} bind mount under globalMapPath corresponding to map path symlink, and then return global map path with pod uuid. (See pkg/volume/volume.go for details on a global map path and a pod device map path.) ex. mapPath symlink: pods/{podUid}}/{DefaultKubeletVolumeDevicesDirName}/{escapeQualifiedPluginName}/{volumeName} -> /dev/sdX

globalMapPath/{pod uuid} bind mount: plugins/kubernetes.io/{PluginName}/{DefaultKubeletVolumeDevicesDirName}/{volumePluginDependentPath}/{pod uuid} -> /dev/sdX

func (VolumePathHandler) GetDeviceBindMountRefs

func (v VolumePathHandler) GetDeviceBindMountRefs(devPath string, mapPath string) ([]string, error)

GetDeviceBindMountRefs searches bind mounts under global map path

func (VolumePathHandler) GetLoopDevice

func (v VolumePathHandler) GetLoopDevice(path string) (string, error)

GetLoopDevice returns the full path to the loop device associated with the given path.

func (VolumePathHandler) IsDeviceBindMountExist

func (v VolumePathHandler) IsDeviceBindMountExist(mapPath string) (bool, error)

IsDeviceBindMountExist returns true if specified file exists and the type is device. If file doesn't exist, or file exists but not device, return false with no error. On other cases, return false with error from Lstat().

func (VolumePathHandler) IsSymlinkExist

func (v VolumePathHandler) IsSymlinkExist(mapPath string) (bool, error)

IsSymlinkExist returns true if specified file exists and the type is symbolik link. If file doesn't exist, or file exists but not symbolic link, return false with no error. On other cases, return false with error from Lstat().

func (VolumePathHandler) MapDevice

func (v VolumePathHandler) MapDevice(devicePath string, mapPath string, linkName string, bindMount bool) error

MapDevice creates a symbolic link to block device under specified map path

func (VolumePathHandler) RemoveMapPath

func (v VolumePathHandler) RemoveMapPath(mapPath string) error

RemoveMapPath removes a file or directory on specified map path

func (VolumePathHandler) UnmapDevice

func (v VolumePathHandler) UnmapDevice(mapPath string, linkName string, bindMount bool) error

UnmapDevice removes a symbolic link associated to block device under specified map path

Jump to

Keyboard shortcuts

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