hostutil

package
v1.16.0 Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2019 License: Apache-2.0 Imports: 11 Imported by: 46

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FakeHostUtil

type FakeHostUtil struct {
	MountPoints []mount.MountPoint
	Filesystem  map[string]FileType
	// contains filtered or unexported fields
}

FakeHostUtil is a fake HostUtils implementation for testing

func NewFakeHostUtil

func NewFakeHostUtil(fs map[string]FileType) *FakeHostUtil

NewFakeHostUtil returns a struct that implements the HostUtils interface for testing TODO: no callers were initializing the struct with any MountPoints. Check if those are still being used by any callers and if MountPoints still need to be a part of the struct.

func (*FakeHostUtil) DeviceOpened

func (hu *FakeHostUtil) DeviceOpened(pathname string) (bool, error)

DeviceOpened checks if block device referenced by pathname is in use by checking if is listed as a device in the in-memory mountpoint table.

func (hu *FakeHostUtil) EvalHostSymlinks(pathname string) (string, error)

EvalHostSymlinks returns the path name after evaluating symlinks. No-op for testing

func (*FakeHostUtil) GetDeviceNameFromMount

func (hu *FakeHostUtil) GetDeviceNameFromMount(mounter mount.Interface, mountPath, pluginMountDir string) (string, error)

GetDeviceNameFromMount given a mount point, find the volume id

func (*FakeHostUtil) GetFileType

func (hu *FakeHostUtil) GetFileType(pathname string) (FileType, error)

GetFileType checks for file/directory/socket/block/character devices. Defaults to Directory if otherwise unspecified.

func (*FakeHostUtil) GetMode

func (hu *FakeHostUtil) GetMode(pathname string) (os.FileMode, error)

GetMode returns permissions of pathname. Not implemented for testing

func (*FakeHostUtil) GetOwner

func (hu *FakeHostUtil) GetOwner(pathname string) (int64, int64, error)

GetOwner returns the integer ID for the user and group of the given path Not implemented for testing

func (*FakeHostUtil) GetSELinuxSupport

func (hu *FakeHostUtil) GetSELinuxSupport(pathname string) (bool, error)

GetSELinuxSupport tests if pathname is on a mount that supports SELinux. Not implemented for testing

func (*FakeHostUtil) MakeRShared

func (hu *FakeHostUtil) MakeRShared(path string) error

MakeRShared checks if path is shared and bind-mounts it as rshared if needed. No-op for testing

func (*FakeHostUtil) PathExists

func (hu *FakeHostUtil) PathExists(pathname string) (bool, error)

PathExists checks if pathname exists.

func (*FakeHostUtil) PathIsDevice

func (hu *FakeHostUtil) PathIsDevice(pathname string) (bool, error)

PathIsDevice always returns true

type FileType

type FileType string

FileType enumerates the known set of possible file types.

const (
	// FileTypeBlockDev defines a constant for the block device FileType.
	FileTypeBlockDev FileType = "BlockDevice"
	// FileTypeCharDev defines a constant for the character device FileType.
	FileTypeCharDev FileType = "CharDevice"
	// FileTypeDirectory defines a constant for the directory FileType.
	FileTypeDirectory FileType = "Directory"
	// FileTypeFile defines a constant for the file FileType.
	FileTypeFile FileType = "File"
	// FileTypeSocket defines a constant for the socket FileType.
	FileTypeSocket FileType = "Socket"
	// FileTypeUnknown defines a constant for an unknown FileType.
	FileTypeUnknown FileType = ""
)

type HostUtil

type HostUtil struct{}

HostUtil is an HostUtils implementation that allows compilation on unsupported platforms

func NewHostUtil

func NewHostUtil() *HostUtil

NewHostUtil returns a struct that implements the HostUtils interface on unsupported platforms

func (*HostUtil) DeviceOpened

func (hu *HostUtil) DeviceOpened(pathname string) (bool, error)

DeviceOpened always returns an error on unsupported platforms

func (hu *HostUtil) EvalHostSymlinks(pathname string) (string, error)

EvalHostSymlinks always returns an error on unsupported platforms

func (*HostUtil) GetDeviceNameFromMount

func (hu *HostUtil) GetDeviceNameFromMount(mounter mount.Interface, mountPath, pluginMountDir string) (string, error)

GetDeviceNameFromMount always returns an error on unsupported platforms

func (*HostUtil) GetFileType

func (hu *HostUtil) GetFileType(pathname string) (FileType, error)

GetFileType always returns an error on unsupported platforms

func (*HostUtil) GetMode

func (hu *HostUtil) GetMode(pathname string) (os.FileMode, error)

GetMode always returns an error on unsupported platforms

func (*HostUtil) GetOwner

func (hu *HostUtil) GetOwner(pathname string) (int64, int64, error)

GetOwner always returns an error on unsupported platforms

func (*HostUtil) GetSELinuxSupport

func (hu *HostUtil) GetSELinuxSupport(pathname string) (bool, error)

GetSELinuxSupport always returns an error on unsupported platforms

func (*HostUtil) MakeDir

func (hu *HostUtil) MakeDir(pathname string) error

MakeDir always returns an error on unsupported platforms

func (*HostUtil) MakeFile

func (hu *HostUtil) MakeFile(pathname string) error

MakeFile always returns an error on unsupported platforms

func (*HostUtil) MakeRShared

func (hu *HostUtil) MakeRShared(path string) error

MakeRShared always returns an error on unsupported platforms

func (*HostUtil) PathExists

func (hu *HostUtil) PathExists(pathname string) (bool, error)

PathExists always returns an error on unsupported platforms

func (*HostUtil) PathIsDevice

func (hu *HostUtil) PathIsDevice(pathname string) (bool, error)

PathIsDevice always returns an error on unsupported platforms

type HostUtils

type HostUtils interface {
	// DeviceOpened determines if the device (e.g. /dev/sdc) is in use elsewhere
	// on the system, i.e. still mounted.
	DeviceOpened(pathname string) (bool, error)
	// PathIsDevice determines if a path is a device.
	PathIsDevice(pathname string) (bool, error)
	// GetDeviceNameFromMount finds the device name by checking the mount path
	// to get the global mount path within its plugin directory.
	GetDeviceNameFromMount(mounter mount.Interface, mountPath, pluginMountDir string) (string, error)
	// MakeRShared checks that given path is on a mount with 'rshared' mount
	// propagation. If not, it bind-mounts the path as rshared.
	MakeRShared(path string) error
	// GetFileType checks for file/directory/socket/block/character devices.
	GetFileType(pathname string) (FileType, error)
	// PathExists tests if the given path already exists
	// Error is returned on any other error than "file not found".
	PathExists(pathname string) (bool, error)
	// EvalHostSymlinks returns the path name after evaluating symlinks.
	EvalHostSymlinks(pathname string) (string, error)
	// GetOwner returns the integer ID for the user and group of the given path
	GetOwner(pathname string) (int64, int64, error)
	// GetSELinuxSupport returns true if given path is on a mount that supports
	// SELinux.
	GetSELinuxSupport(pathname string) (bool, error)
	// GetMode returns permissions of the path.
	GetMode(pathname string) (os.FileMode, error)
}

HostUtils defines the set of methods for interacting with paths on a host.

Jump to

Keyboard shortcuts

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