testing

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2022 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const ExpectProvisionFailureKey = "expect-provision-failure"

A hook specified in storage class to indicate it's provisioning is expected to fail.

Variables

This section is empty.

Functions

func CreateTestPVC

func CreateTestPVC(capacity string, accessModes []v1.PersistentVolumeAccessMode) *v1.PersistentVolumeClaim

CreateTestPVC returns a provisionable PVC for tests

func FindEmptyDirectoryUsageOnTmpfs

func FindEmptyDirectoryUsageOnTmpfs() (*resource.Quantity, error)

FindEmptyDirectoryUsageOnTmpfs finds the expected usage of an empty directory existing on a tmpfs filesystem on this system.

func GetTestVolumePluginMgr

func GetTestVolumePluginMgr(
	t *testing.T) (*VolumePluginMgr, *FakeVolumePlugin)

GetTestVolumePluginMgr creates, initializes, and returns a test volume plugin manager and fake volume plugin using a fake volume host.

func MetricsEqualIgnoreTimestamp

func MetricsEqualIgnoreTimestamp(a *Metrics, b *Metrics) bool

func NewBlockVolumePathHandler

func NewBlockVolumePathHandler() volumepathhandler.BlockVolumePathHandler

NewDeviceHandler Create a new IoHandler implementation

func NewFakeFileVolumePlugin

func NewFakeFileVolumePlugin() []VolumePlugin

func NewFakeVolumeHost

func NewFakeVolumeHost(rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin) *fakeVolumeHost

func NewFakeVolumeHostWithCSINodeName

func NewFakeVolumeHostWithCSINodeName(rootDir string, kubeClient clientset.Interface, csiClient csiclientset.Interface, plugins []VolumePlugin, nodeName string) *fakeVolumeHost

func NewFakeVolumeHostWithCloudProvider

func NewFakeVolumeHostWithCloudProvider(rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, cloud cloudprovider.Interface) *fakeVolumeHost

func NewFakeVolumeHostWithMounterFSType

func NewFakeVolumeHostWithMounterFSType(rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, pathToTypeMap map[string]mount.FileType) *fakeVolumeHost

func NewFakeVolumeHostWithNodeLabels

func NewFakeVolumeHostWithNodeLabels(rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, labels map[string]string) *fakeVolumeHost

func ProbeVolumePlugins

func ProbeVolumePlugins(config VolumeConfig) []VolumePlugin

func VerifyAttachCallCount

func VerifyAttachCallCount(
	expectedAttachCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifyAttachCallCount ensures that at least one of the Attachers for this plugin has the expectedAttachCallCount number of calls. Otherwise it returns an error.

func VerifyDetachCallCount

func VerifyDetachCallCount(
	expectedDetachCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifyDetachCallCount ensures that at least one of the Attachers for this plugin has the expectedDetachCallCount number of calls. Otherwise it returns an error.

func VerifyGetGlobalMapPathCallCount

func VerifyGetGlobalMapPathCallCount(
	expectedGlobalMapPathCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifyGetGlobalMapPathCallCount ensures that at least one of the Mappers for this plugin has the expectedGlobalMapPathCallCount number of calls. Otherwise it returns an error.

func VerifyGetMapDeviceCallCount

func VerifyGetMapDeviceCallCount(
	expectedMapDeviceCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifyGetMapDeviceCallCount ensures that at least one of the Mappers for this plugin has the expectedMapDeviceCallCount number of calls. Otherwise it returns an error.

func VerifyGetPodDeviceMapPathCallCount

func VerifyGetPodDeviceMapPathCallCount(
	expectedPodDeviceMapPathCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifyGetPodDeviceMapPathCallCount ensures that at least one of the Mappers for this plugin has the expectedPodDeviceMapPathCallCount number of calls. Otherwise it returns an error.

func VerifyMountDeviceCallCount

func VerifyMountDeviceCallCount(
	expectedMountDeviceCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifyMountDeviceCallCount ensures that at least one of the Mounters for this plugin has the expectedMountDeviceCallCount number of calls. Otherwise it returns an error.

func VerifySetUpCallCount

func VerifySetUpCallCount(
	expectedSetUpCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifySetUpCallCount ensures that at least one of the Mounters for this plugin has the expectedSetUpCallCount number of calls. Otherwise it returns an error.

func VerifySetUpDeviceCallCount

func VerifySetUpDeviceCallCount(
	expectedSetUpDeviceCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifySetUpDeviceCallCount ensures that at least one of the Mappers for this plugin has the expectedSetUpDeviceCallCount number of calls. Otherwise it returns an error.

func VerifyTearDownCallCount

func VerifyTearDownCallCount(
	expectedTearDownCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifyTearDownCallCount ensures that at least one of the Unounters for this plugin has the expectedTearDownCallCount number of calls. Otherwise it returns an error.

func VerifyTearDownDeviceCallCount

func VerifyTearDownDeviceCallCount(
	expectedTearDownDeviceCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifyTearDownDeviceCallCount ensures that at least one of the Unmappers for this plugin has the expectedTearDownDeviceCallCount number of calls. Otherwise it returns an error.

func VerifyWaitForAttachCallCount

func VerifyWaitForAttachCallCount(
	expectedWaitForAttachCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

VerifyWaitForAttachCallCount ensures that at least one of the Mounters for this plugin has the expectedWaitForAttachCallCount number of calls. Otherwise it returns an error.

func VerifyZeroAttachCalls

func VerifyZeroAttachCalls(fakeVolumePlugin *FakeVolumePlugin) error

VerifyZeroAttachCalls ensures that all of the Attachers for this plugin have a zero AttachCallCount. Otherwise it returns an error.

func VerifyZeroDetachCallCount

func VerifyZeroDetachCallCount(fakeVolumePlugin *FakeVolumePlugin) error

VerifyZeroDetachCallCount ensures that all Detachers for this plugin have a zero DetachCallCount. Otherwise it returns an error.

func VerifyZeroMountDeviceCallCount

func VerifyZeroMountDeviceCallCount(fakeVolumePlugin *FakeVolumePlugin) error

VerifyZeroMountDeviceCallCount ensures that all Attachers for this plugin have a zero MountDeviceCallCount. Otherwise it returns an error.

func VerifyZeroSetUpCallCount

func VerifyZeroSetUpCallCount(fakeVolumePlugin *FakeVolumePlugin) error

VerifyZeroSetUpCallCount ensures that all Mounters for this plugin have a zero SetUpCallCount. Otherwise it returns an error.

func VerifyZeroTearDownCallCount

func VerifyZeroTearDownCallCount(fakeVolumePlugin *FakeVolumePlugin) error

VerifyZeroTearDownCallCount ensures that all Mounters for this plugin have a zero TearDownCallCount. Otherwise it returns an error.

func VerifyZeroTearDownDeviceCallCount

func VerifyZeroTearDownDeviceCallCount(fakeVolumePlugin *FakeVolumePlugin) error

VerifyZeroTearDownDeviceCallCount ensures that all Mappers for this plugin have a zero TearDownDeviceCallCount. Otherwise it returns an error.

func VerifyZeroWaitForAttachCallCount

func VerifyZeroWaitForAttachCallCount(fakeVolumePlugin *FakeVolumePlugin) error

VerifyZeroWaitForAttachCallCount ensures that all Attachers for this plugin have a zero WaitForAttachCallCount. Otherwise it returns an error.

Types

type FakeDeleter

type FakeDeleter struct {
	MetricsNil
	// contains filtered or unexported fields
}

func (*FakeDeleter) Delete

func (fd *FakeDeleter) Delete() error

func (*FakeDeleter) GetPath

func (fd *FakeDeleter) GetPath() string

type FakeFileVolumePlugin

type FakeFileVolumePlugin struct {
}

func (*FakeFileVolumePlugin) CanSupport

func (plugin *FakeFileVolumePlugin) CanSupport(spec *Spec) bool

func (*FakeFileVolumePlugin) ConstructVolumeSpec

func (plugin *FakeFileVolumePlugin) ConstructVolumeSpec(volumeName, mountPath string) (*Spec, error)

func (*FakeFileVolumePlugin) GetPluginName

func (plugin *FakeFileVolumePlugin) GetPluginName() string

func (*FakeFileVolumePlugin) GetVolumeName

func (plugin *FakeFileVolumePlugin) GetVolumeName(spec *Spec) (string, error)

func (*FakeFileVolumePlugin) Init

func (plugin *FakeFileVolumePlugin) Init(host VolumeHost) error

func (*FakeFileVolumePlugin) NewMounter

func (plugin *FakeFileVolumePlugin) NewMounter(spec *Spec, podRef *v1.Pod, opts VolumeOptions) (Mounter, error)

func (*FakeFileVolumePlugin) NewUnmounter

func (plugin *FakeFileVolumePlugin) NewUnmounter(name string, podUID types.UID) (Unmounter, error)

func (*FakeFileVolumePlugin) RequiresRemount

func (plugin *FakeFileVolumePlugin) RequiresRemount() bool

func (*FakeFileVolumePlugin) SupportsBulkVolumeVerification

func (plugin *FakeFileVolumePlugin) SupportsBulkVolumeVerification() bool

func (*FakeFileVolumePlugin) SupportsMountOption

func (plugin *FakeFileVolumePlugin) SupportsMountOption() bool

type FakeProvisioner

type FakeProvisioner struct {
	Options               VolumeOptions
	Host                  VolumeHost
	ProvisionDelaySeconds int
}

func (*FakeProvisioner) Provision

func (fc *FakeProvisioner) Provision(selectedNode *v1.Node, allowedTopologies []v1.TopologySelectorTerm) (*v1.PersistentVolume, error)

type FakeVolume

type FakeVolume struct {
	sync.RWMutex
	PodUID  types.UID
	VolName string
	Plugin  *FakeVolumePlugin
	MetricsNil

	SetUpCallCount              int
	TearDownCallCount           int
	AttachCallCount             int
	DetachCallCount             int
	WaitForAttachCallCount      int
	MountDeviceCallCount        int
	UnmountDeviceCallCount      int
	GetDeviceMountPathCallCount int
	SetUpDeviceCallCount        int
	TearDownDeviceCallCount     int
	MapDeviceCallCount          int
	GlobalMapPathCallCount      int
	PodDeviceMapPathCallCount   int
}

func (*FakeVolume) Attach

func (fv *FakeVolume) Attach(spec *Spec, nodeName types.NodeName) (string, error)

func (*FakeVolume) CanMount

func (fv *FakeVolume) CanMount() error

func (*FakeVolume) Detach

func (fv *FakeVolume) Detach(volumeName string, nodeName types.NodeName) error

func (*FakeVolume) GetAttachCallCount

func (fv *FakeVolume) GetAttachCallCount() int

func (*FakeVolume) GetAttributes

func (_ *FakeVolume) GetAttributes() Attributes

func (*FakeVolume) GetDetachCallCount

func (fv *FakeVolume) GetDetachCallCount() int

func (*FakeVolume) GetDeviceMountPath

func (fv *FakeVolume) GetDeviceMountPath(spec *Spec) (string, error)

func (*FakeVolume) GetGlobalMapPath

func (fv *FakeVolume) GetGlobalMapPath(spec *Spec) (string, error)

Block volume support

func (*FakeVolume) GetGlobalMapPathCallCount

func (fv *FakeVolume) GetGlobalMapPathCallCount() int

Block volume support

func (*FakeVolume) GetMapDeviceCallCount

func (fv *FakeVolume) GetMapDeviceCallCount() int

Block volume support

func (*FakeVolume) GetMountDeviceCallCount

func (fv *FakeVolume) GetMountDeviceCallCount() int

func (*FakeVolume) GetPath

func (fv *FakeVolume) GetPath() string

func (*FakeVolume) GetPodDeviceMapPath

func (fv *FakeVolume) GetPodDeviceMapPath() (string, string)

Block volume support

func (*FakeVolume) GetPodDeviceMapPathCallCount

func (fv *FakeVolume) GetPodDeviceMapPathCallCount() int

Block volume support

func (*FakeVolume) GetSetUpCallCount

func (fv *FakeVolume) GetSetUpCallCount() int

func (*FakeVolume) GetSetUpDeviceCallCount

func (fv *FakeVolume) GetSetUpDeviceCallCount() int

Block volume support

func (*FakeVolume) GetTearDownCallCount

func (fv *FakeVolume) GetTearDownCallCount() int

func (*FakeVolume) GetTearDownDeviceCallCount

func (fv *FakeVolume) GetTearDownDeviceCallCount() int

Block volume support

func (*FakeVolume) GetWaitForAttachCallCount

func (fv *FakeVolume) GetWaitForAttachCallCount() int

func (*FakeVolume) MapDevice

func (fv *FakeVolume) MapDevice(devicePath, globalMapPath, volumeMapPath, volumeMapName string, pod types.UID) error

Block volume support

func (*FakeVolume) MountDevice

func (fv *FakeVolume) MountDevice(spec *Spec, devicePath string, deviceMountPath string) error

func (*FakeVolume) SetUp

func (fv *FakeVolume) SetUp(fsGroup *int64) error

func (*FakeVolume) SetUpAt

func (fv *FakeVolume) SetUpAt(dir string, fsGroup *int64) error

func (*FakeVolume) SetUpDevice

func (fv *FakeVolume) SetUpDevice() (string, error)

Block volume support

func (*FakeVolume) TearDown

func (fv *FakeVolume) TearDown() error

func (*FakeVolume) TearDownAt

func (fv *FakeVolume) TearDownAt(dir string) error

func (*FakeVolume) TearDownDevice

func (fv *FakeVolume) TearDownDevice(mapPath string, devicePath string) error

Block volume support

func (*FakeVolume) UnmountDevice

func (fv *FakeVolume) UnmountDevice(globalMountPath string) error

func (*FakeVolume) VolumesAreAttached

func (fv *FakeVolume) VolumesAreAttached(spec []*Spec, nodeName types.NodeName) (map[*Spec]bool, error)

func (*FakeVolume) WaitForAttach

func (fv *FakeVolume) WaitForAttach(spec *Spec, devicePath string, pod *v1.Pod, spectimeout time.Duration) (string, error)

type FakeVolumePathHandler

type FakeVolumePathHandler struct {
	sync.RWMutex
}

func (*FakeVolumePathHandler) AttachFileDevice

func (fv *FakeVolumePathHandler) AttachFileDevice(path string) (string, error)

func (*FakeVolumePathHandler) FindGlobalMapPathUUIDFromPod

func (fv *FakeVolumePathHandler) FindGlobalMapPathUUIDFromPod(pluginDir, mapPath string, podUID types.UID) (string, error)

func (*FakeVolumePathHandler) GetDeviceSymlinkRefs

func (fv *FakeVolumePathHandler) GetDeviceSymlinkRefs(devPath string, mapPath string) ([]string, error)

func (*FakeVolumePathHandler) GetLoopDevice

func (fv *FakeVolumePathHandler) GetLoopDevice(path string) (string, error)

func (*FakeVolumePathHandler) IsSymlinkExist

func (fv *FakeVolumePathHandler) IsSymlinkExist(mapPath string) (bool, error)

func (*FakeVolumePathHandler) MapDevice

func (fv *FakeVolumePathHandler) MapDevice(devicePath string, mapDir string, linkName string) error

func (*FakeVolumePathHandler) RemoveLoopDevice

func (fv *FakeVolumePathHandler) RemoveLoopDevice(device string) error

func (*FakeVolumePathHandler) RemoveMapPath

func (fv *FakeVolumePathHandler) RemoveMapPath(mapPath string) error

func (*FakeVolumePathHandler) UnmapDevice

func (fv *FakeVolumePathHandler) UnmapDevice(mapDir string, linkName string) error

type FakeVolumePlugin

type FakeVolumePlugin struct {
	sync.RWMutex
	PluginName             string
	Host                   VolumeHost
	Config                 VolumeConfig
	LastProvisionerOptions VolumeOptions
	NewAttacherCallCount   int
	NewDetacherCallCount   int
	VolumeLimits           map[string]int64
	VolumeLimitsError      error
	LimitKey               string
	ProvisionDelaySeconds  int

	Mounters             []*FakeVolume
	Unmounters           []*FakeVolume
	Attachers            []*FakeVolume
	Detachers            []*FakeVolume
	BlockVolumeMappers   []*FakeVolume
	BlockVolumeUnmappers []*FakeVolume
}

FakeVolumePlugin is useful for testing. It tries to be a fully compliant plugin, but all it does is make empty directories. Use as:

volume.RegisterPlugin(&FakePlugin{"fake-name"})

func (*FakeVolumePlugin) CanSupport

func (plugin *FakeVolumePlugin) CanSupport(spec *Spec) bool

func (*FakeVolumePlugin) ConstructBlockVolumeSpec

func (plugin *FakeVolumePlugin) ConstructBlockVolumeSpec(podUID types.UID, volumeName, mountPath string) (*Spec, error)

Block volume support

func (*FakeVolumePlugin) ConstructVolumeSpec

func (plugin *FakeVolumePlugin) ConstructVolumeSpec(volumeName, mountPath string) (*Spec, error)

func (*FakeVolumePlugin) ExpandVolumeDevice

func (plugin *FakeVolumePlugin) ExpandVolumeDevice(spec *Spec, newSize resource.Quantity, oldSize resource.Quantity) (resource.Quantity, error)

Expandable volume support

func (*FakeVolumePlugin) GetAccessModes

func (plugin *FakeVolumePlugin) GetAccessModes() []v1.PersistentVolumeAccessMode

func (*FakeVolumePlugin) GetAttachers

func (plugin *FakeVolumePlugin) GetAttachers() (Attachers []*FakeVolume)

func (*FakeVolumePlugin) GetBlockVolumeMapper

func (plugin *FakeVolumePlugin) GetBlockVolumeMapper() (BlockVolumeMappers []*FakeVolume)

Block volume support

func (*FakeVolumePlugin) GetBlockVolumeUnmapper

func (plugin *FakeVolumePlugin) GetBlockVolumeUnmapper() (BlockVolumeUnmappers []*FakeVolume)

Block volume support

func (*FakeVolumePlugin) GetDetachers

func (plugin *FakeVolumePlugin) GetDetachers() (Detachers []*FakeVolume)

func (*FakeVolumePlugin) GetDeviceMountRefs

func (plugin *FakeVolumePlugin) GetDeviceMountRefs(deviceMountPath string) ([]string, error)

func (*FakeVolumePlugin) GetMounters

func (plugin *FakeVolumePlugin) GetMounters() (Mounters []*FakeVolume)

func (*FakeVolumePlugin) GetNewAttacherCallCount

func (plugin *FakeVolumePlugin) GetNewAttacherCallCount() int

func (*FakeVolumePlugin) GetNewDetacherCallCount

func (plugin *FakeVolumePlugin) GetNewDetacherCallCount() int

func (*FakeVolumePlugin) GetPluginName

func (plugin *FakeVolumePlugin) GetPluginName() string

func (*FakeVolumePlugin) GetUnmounters

func (plugin *FakeVolumePlugin) GetUnmounters() (Unmounters []*FakeVolume)

func (*FakeVolumePlugin) GetVolumeLimits

func (plugin *FakeVolumePlugin) GetVolumeLimits() (map[string]int64, error)

func (*FakeVolumePlugin) GetVolumeName

func (plugin *FakeVolumePlugin) GetVolumeName(spec *Spec) (string, error)

func (*FakeVolumePlugin) Init

func (plugin *FakeVolumePlugin) Init(host VolumeHost) error

func (*FakeVolumePlugin) NewAttacher

func (plugin *FakeVolumePlugin) NewAttacher() (Attacher, error)

func (*FakeVolumePlugin) NewBlockVolumeMapper

func (plugin *FakeVolumePlugin) NewBlockVolumeMapper(spec *Spec, pod *v1.Pod, opts VolumeOptions) (BlockVolumeMapper, error)

Block volume support

func (*FakeVolumePlugin) NewBlockVolumeUnmapper

func (plugin *FakeVolumePlugin) NewBlockVolumeUnmapper(volName string, podUID types.UID) (BlockVolumeUnmapper, error)

Block volume support

func (*FakeVolumePlugin) NewDeleter

func (plugin *FakeVolumePlugin) NewDeleter(spec *Spec) (Deleter, error)

func (*FakeVolumePlugin) NewDetacher

func (plugin *FakeVolumePlugin) NewDetacher() (Detacher, error)

func (*FakeVolumePlugin) NewDeviceMounter

func (plugin *FakeVolumePlugin) NewDeviceMounter() (DeviceMounter, error)

func (*FakeVolumePlugin) NewDeviceUnmounter

func (plugin *FakeVolumePlugin) NewDeviceUnmounter() (DeviceUnmounter, error)

func (*FakeVolumePlugin) NewMounter

func (plugin *FakeVolumePlugin) NewMounter(spec *Spec, pod *v1.Pod, opts VolumeOptions) (Mounter, error)

func (*FakeVolumePlugin) NewProvisioner

func (plugin *FakeVolumePlugin) NewProvisioner(options VolumeOptions) (Provisioner, error)

func (*FakeVolumePlugin) NewUnmounter

func (plugin *FakeVolumePlugin) NewUnmounter(volName string, podUID types.UID) (Unmounter, error)

func (*FakeVolumePlugin) Recycle

func (plugin *FakeVolumePlugin) Recycle(pvName string, spec *Spec, eventRecorder recyclerclient.RecycleEventRecorder) error

func (*FakeVolumePlugin) RequiresFSResize

func (plugin *FakeVolumePlugin) RequiresFSResize() bool

func (*FakeVolumePlugin) RequiresRemount

func (plugin *FakeVolumePlugin) RequiresRemount() bool

func (*FakeVolumePlugin) SupportsBulkVolumeVerification

func (plugin *FakeVolumePlugin) SupportsBulkVolumeVerification() bool

func (*FakeVolumePlugin) SupportsMountOption

func (plugin *FakeVolumePlugin) SupportsMountOption() bool

func (*FakeVolumePlugin) VolumeLimitKey

func (plugin *FakeVolumePlugin) VolumeLimitKey(spec *Spec) string

type MockVolume

type MockVolume struct {
	mock.Mock
}

func (*MockVolume) GetMetrics

func (_m *MockVolume) GetMetrics() (*Metrics, error)

GetMetrics provides a mock function with given fields:

func (*MockVolume) GetPath

func (_m *MockVolume) GetPath() string

GetPath provides a mock function with given fields:

Jump to

Keyboard shortcuts

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