testing

package
v1.25.1-rc.0 Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2022 License: Apache-2.0 Imports: 36 Imported by: 3

Documentation

Index

Constants

View Source
const (
	// A hook specified in storage class to indicate it's provisioning
	// is expected to fail.
	ExpectProvisionFailureKey = "expect-provision-failure"
	// The node is marked as uncertain. The attach operation will fail and return timeout error
	// for the first attach call. The following call will return successfully.
	UncertainAttachNode = "uncertain-attach-node"
	// The detach operation will keep failing on the node.
	FailDetachNode = "fail-detach-node"
	// The node is marked as timeout. The attach operation will always fail and return timeout error
	// but the operation is actually succeeded.
	TimeoutAttachNode = "timeout-attach-node"
	// The node is marked as multi-attach which means it is allowed to attach the volume to multiple nodes.
	MultiAttachNode = "multi-attach-node"
	// TimeoutOnSetupVolumeName will cause Setup call to timeout but volume will finish mounting.
	TimeoutOnSetupVolumeName = "timeout-setup-volume"
	// FailOnSetupVolumeName will cause setup call to fail
	FailOnSetupVolumeName = "fail-setup-volume"
	//TimeoutAndFailOnSetupVolumeName will first timeout and then fail the setup
	TimeoutAndFailOnSetupVolumeName = "timeout-and-fail-setup-volume"
	// SuccessAndTimeoutSetupVolumeName will cause first mount operation to succeed but subsequent attempts to timeout
	SuccessAndTimeoutSetupVolumeName = "success-and-timeout-setup-volume-name"
	// SuccessAndFailOnSetupVolumeName will cause first mount operation to succeed but subsequent attempts to fail
	SuccessAndFailOnSetupVolumeName = "success-and-failed-setup-device-name"

	// TimeoutOnMountDeviceVolumeName will cause MountDevice call to timeout but Setup will finish.
	TimeoutOnMountDeviceVolumeName = "timeout-mount-device-volume"
	// TimeoutAndFailOnMountDeviceVolumeName will cause first MountDevice call to timeout but second call will fail
	TimeoutAndFailOnMountDeviceVolumeName = "timeout-and-fail-mount-device-name"
	// FailMountDeviceVolumeName will cause MountDevice operation on volume to fail
	FailMountDeviceVolumeName = "fail-mount-device-volume-name"
	// SuccessAndTimeoutDeviceName will cause first mount operation to succeed but subsequent attempts to timeout
	SuccessAndTimeoutDeviceName = "success-and-timeout-device-name"
	// SuccessAndFailOnMountDeviceName will cause first mount operation to succeed but subsequent attempts to fail
	SuccessAndFailOnMountDeviceName = "success-and-failed-mount-device-name"

	// FailWithInUseVolumeName will cause NodeExpandVolume to result in FailedPrecondition error
	FailWithInUseVolumeName = "fail-expansion-in-use"

	FailVolumeExpansion = "fail-expansion-test"

	AlwaysFailNodeExpansion = "always-fail-node-expansion"
)

Variables

This section is empty.

Functions

func ContainsAccessMode added in v1.9.0

func ContainsAccessMode(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool

func CreateTestPVC added in v1.5.0

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 MetricsEqualIgnoreTimestamp added in v1.6.0

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

func NewBlockVolumePathHandler added in v1.9.0

func NewBlockVolumePathHandler() volumepathhandler.BlockVolumePathHandler

NewDeviceHandler Create a new IoHandler implementation

func NewFakeFileVolumePlugin added in v1.9.0

func NewFakeFileVolumePlugin() []volume.VolumePlugin

func NewFakeKubeletVolumeHost added in v1.21.0

func NewFakeKubeletVolumeHost(t *testing.T, rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin) *fakeKubeletVolumeHost

func NewFakeKubeletVolumeHostWithCSINodeName added in v1.21.0

func NewFakeKubeletVolumeHostWithCSINodeName(t *testing.T, rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, nodeName string, driverLister storagelistersv1.CSIDriverLister, volumeAttachLister storagelistersv1.VolumeAttachmentLister) *fakeKubeletVolumeHost

func NewFakeKubeletVolumeHostWithCloudProvider added in v1.21.0

func NewFakeKubeletVolumeHostWithCloudProvider(t *testing.T, rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, cloud cloudprovider.Interface) *fakeKubeletVolumeHost

func NewFakeKubeletVolumeHostWithMounterFSType added in v1.21.0

func NewFakeKubeletVolumeHostWithMounterFSType(t *testing.T, rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, pathToTypeMap map[string]hostutil.FileType) *fakeKubeletVolumeHost

func NewFakeKubeletVolumeHostWithNodeLabels added in v1.21.0

func NewFakeKubeletVolumeHostWithNodeLabels(t *testing.T, rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, labels map[string]string) *fakeKubeletVolumeHost

func ProbeVolumePlugins

func ProbeVolumePlugins(config volume.VolumeConfig) []volume.VolumePlugin

func ScriptCommands added in v1.17.0

func ScriptCommands(fe *testingexec.FakeExec, scripts []CommandScript)

ScriptCommands configures fe, the FakeExec, to have a pre-configured list of commands to expect. Calling more commands using fe than those scripted will result in a panic. By default, the fe does not enforce command argument checking or order -- if you have given an Output to the command, the first command scripted will return its output on the first command call, even if the command called is different than the one scripted. This is mostly useful to make sure that the right number of commands were called. If you want to check the exact commands and arguments were called, set fe.ExectOrder to true.

func VerifyAttachCallCount added in v1.3.0

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 added in v1.3.0

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 added in v1.9.0

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 VerifyGetMapPodDeviceCallCount added in v1.17.0

func VerifyGetMapPodDeviceCallCount(
	expectedMapPodDeviceCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

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

func VerifyGetPodDeviceMapPathCallCount added in v1.9.0

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 added in v1.3.0

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 added in v1.3.0

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 added in v1.9.0

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 added in v1.3.0

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 added in v1.9.0

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 VerifyUnmapPodDeviceCallCount added in v1.18.0

func VerifyUnmapPodDeviceCallCount(
	expectedUnmapPodDeviceCallCount int,
	fakeVolumePlugin *FakeVolumePlugin) error

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

func VerifyUnmountDeviceCallCount added in v1.18.0

func VerifyUnmountDeviceCallCount(expectedCallCount int, fakeVolumePlugin *FakeVolumePlugin) error

func VerifyWaitForAttachCallCount added in v1.3.0

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 added in v1.3.0

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 added in v1.3.0

func VerifyZeroDetachCallCount(fakeVolumePlugin *FakeVolumePlugin) error

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

func VerifyZeroMountDeviceCallCount added in v1.3.0

func VerifyZeroMountDeviceCallCount(fakeVolumePlugin *FakeVolumePlugin) error

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

func VerifyZeroSetUpCallCount added in v1.3.0

func VerifyZeroSetUpCallCount(fakeVolumePlugin *FakeVolumePlugin) error

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

func VerifyZeroTearDownCallCount added in v1.3.0

func VerifyZeroTearDownCallCount(fakeVolumePlugin *FakeVolumePlugin) error

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

func VerifyZeroTearDownDeviceCallCount added in v1.9.0

func VerifyZeroTearDownDeviceCallCount(fakeVolumePlugin *FakeVolumePlugin) error

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

func VerifyZeroUnmapPodDeviceCallCount added in v1.18.0

func VerifyZeroUnmapPodDeviceCallCount(fakeVolumePlugin *FakeVolumePlugin) error

VerifyZeroUnmapPodDeviceCallCount ensures that all Mappers for this plugin have a zero UnmapPodDevice calls. Otherwise it returns an error.

func VerifyZeroWaitForAttachCallCount added in v1.3.0

func VerifyZeroWaitForAttachCallCount(fakeVolumePlugin *FakeVolumePlugin) error

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

Types

type CommandScript added in v1.17.0

type CommandScript struct {
	// Cmd is the command to execute, e.g. "ls"
	Cmd string
	// Args is a slice of arguments to pass to the command, e.g. "-a"
	Args []string
	// Output is the combined stdout and stderr of the command to return
	Output string
	// ReturnCode is the exit code for the command. Setting this to non-zero will
	// cause the command to return an error with this exit code set.
	ReturnCode int
}

CommandScript is used to pre-configure a command that will be executed and optionally set it's output (stdout and stderr combined) and return code.

type FakeAttachableVolumePlugin added in v1.12.5

type FakeAttachableVolumePlugin struct {
	FakeDeviceMountableVolumePlugin
}

FakeAttachableVolumePlugin implements an attachable plugin based on FakeDeviceMountableVolumePlugin.

func (*FakeAttachableVolumePlugin) CanAttach added in v1.14.0

func (f *FakeAttachableVolumePlugin) CanAttach(spec *volume.Spec) (bool, error)

func (*FakeAttachableVolumePlugin) NewAttacher added in v1.12.5

func (f *FakeAttachableVolumePlugin) NewAttacher() (volume.Attacher, error)

func (*FakeAttachableVolumePlugin) NewDetacher added in v1.12.5

func (f *FakeAttachableVolumePlugin) NewDetacher() (volume.Detacher, error)

type FakeBasicVolumePlugin added in v1.12.5

type FakeBasicVolumePlugin struct {
	Plugin FakeVolumePlugin
}

FakeBasicVolumePlugin implements a basic volume plugin. It wrappers on FakeVolumePlugin but implements VolumePlugin interface only. It is useful to test logic involving plugin interfaces.

func (*FakeBasicVolumePlugin) CanSupport added in v1.12.5

func (f *FakeBasicVolumePlugin) CanSupport(spec *volume.Spec) bool

CanSupport tests whether the plugin supports a given volume specification by testing volume spec name begins with plugin name or not. This is useful to choose plugin by volume in testing.

func (*FakeBasicVolumePlugin) ConstructVolumeSpec added in v1.12.5

func (f *FakeBasicVolumePlugin) ConstructVolumeSpec(ame, mountPath string) (*volume.Spec, error)

func (*FakeBasicVolumePlugin) GetPluginName added in v1.12.5

func (f *FakeBasicVolumePlugin) GetPluginName() string

func (*FakeBasicVolumePlugin) GetVolumeName added in v1.12.5

func (f *FakeBasicVolumePlugin) GetVolumeName(spec *volume.Spec) (string, error)

func (*FakeBasicVolumePlugin) Init added in v1.12.5

func (*FakeBasicVolumePlugin) NewMounter added in v1.12.5

func (f *FakeBasicVolumePlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volume.VolumeOptions) (volume.Mounter, error)

func (*FakeBasicVolumePlugin) NewUnmounter added in v1.12.5

func (f *FakeBasicVolumePlugin) NewUnmounter(volName string, podUID types.UID) (volume.Unmounter, error)

func (*FakeBasicVolumePlugin) RequiresRemount added in v1.12.5

func (f *FakeBasicVolumePlugin) RequiresRemount(spec *volume.Spec) bool

func (*FakeBasicVolumePlugin) SupportsBulkVolumeVerification added in v1.12.5

func (f *FakeBasicVolumePlugin) SupportsBulkVolumeVerification() bool

func (*FakeBasicVolumePlugin) SupportsMountOption added in v1.12.5

func (f *FakeBasicVolumePlugin) SupportsMountOption() bool

func (*FakeBasicVolumePlugin) SupportsSELinuxContextMount added in v1.25.0

func (f *FakeBasicVolumePlugin) SupportsSELinuxContextMount(spec *volume.Spec) (bool, error)

type FakeDeleter

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

func (*FakeDeleter) Delete

func (fd *FakeDeleter) Delete() error

func (*FakeDeleter) GetPath

func (fd *FakeDeleter) GetPath() string

type FakeDeviceMountableVolumePlugin added in v1.12.5

type FakeDeviceMountableVolumePlugin struct {
	FakeBasicVolumePlugin
}

FakeDeviceMountableVolumePlugin implements an device mountable plugin based on FakeBasicVolumePlugin.

func (*FakeDeviceMountableVolumePlugin) CanDeviceMount added in v1.15.0

func (f *FakeDeviceMountableVolumePlugin) CanDeviceMount(spec *volume.Spec) (bool, error)

func (*FakeDeviceMountableVolumePlugin) GetDeviceMountRefs added in v1.12.5

func (f *FakeDeviceMountableVolumePlugin) GetDeviceMountRefs(deviceMountPath string) ([]string, error)

func (*FakeDeviceMountableVolumePlugin) NewDeviceMounter added in v1.12.5

func (f *FakeDeviceMountableVolumePlugin) NewDeviceMounter() (volume.DeviceMounter, error)

func (*FakeDeviceMountableVolumePlugin) NewDeviceUnmounter added in v1.12.5

func (f *FakeDeviceMountableVolumePlugin) NewDeviceUnmounter() (volume.DeviceUnmounter, error)

type FakeFileVolumePlugin added in v1.9.0

type FakeFileVolumePlugin struct {
}

func (*FakeFileVolumePlugin) CanSupport added in v1.9.0

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

func (*FakeFileVolumePlugin) ConstructVolumeSpec added in v1.9.0

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

func (*FakeFileVolumePlugin) GetPluginName added in v1.9.0

func (plugin *FakeFileVolumePlugin) GetPluginName() string

func (*FakeFileVolumePlugin) GetVolumeName added in v1.9.0

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

func (*FakeFileVolumePlugin) Init added in v1.9.0

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

func (*FakeFileVolumePlugin) NewMounter added in v1.9.0

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

func (*FakeFileVolumePlugin) NewUnmounter added in v1.9.0

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

func (*FakeFileVolumePlugin) RequiresRemount added in v1.9.0

func (plugin *FakeFileVolumePlugin) RequiresRemount(spec *volume.Spec) bool

func (*FakeFileVolumePlugin) SupportsBulkVolumeVerification added in v1.9.0

func (plugin *FakeFileVolumePlugin) SupportsBulkVolumeVerification() bool

func (*FakeFileVolumePlugin) SupportsMountOption added in v1.9.0

func (plugin *FakeFileVolumePlugin) SupportsMountOption() bool

func (*FakeFileVolumePlugin) SupportsSELinuxContextMount added in v1.25.0

func (plugin *FakeFileVolumePlugin) SupportsSELinuxContextMount(spec *volume.Spec) (bool, error)

type FakeProvisioner

type FakeProvisioner struct {
	Options               volume.VolumeOptions
	Host                  volume.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
	volume.MetricsNil
	VolumesAttached  map[string]sets.String
	DeviceMountState map[string]string
	VolumeMountState map[string]string

	// Add callbacks as needed
	WaitForAttachHook func(spec *volume.Spec, devicePath string, pod *v1.Pod, spectimeout time.Duration) (string, error)
	UnmountDeviceHook func(globalMountPath string) error

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

func (*FakeVolume) Attach

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

func (*FakeVolume) Detach

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

func (*FakeVolume) GetAttachCallCount added in v1.3.0

func (fv *FakeVolume) GetAttachCallCount() int

func (*FakeVolume) GetAttributes

func (_ *FakeVolume) GetAttributes() volume.Attributes

func (*FakeVolume) GetDetachCallCount added in v1.3.0

func (fv *FakeVolume) GetDetachCallCount() int

func (*FakeVolume) GetDeviceMountPath added in v1.3.0

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

func (*FakeVolume) GetGlobalMapPath added in v1.9.0

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

Block volume support

func (*FakeVolume) GetGlobalMapPathCallCount added in v1.9.0

func (fv *FakeVolume) GetGlobalMapPathCallCount() int

Block volume support

func (*FakeVolume) GetMapPodDeviceCallCount added in v1.17.0

func (fv *FakeVolume) GetMapPodDeviceCallCount() int

Block volume support

func (*FakeVolume) GetMountDeviceCallCount added in v1.3.0

func (fv *FakeVolume) GetMountDeviceCallCount() int

func (*FakeVolume) GetPath

func (fv *FakeVolume) GetPath() string

func (*FakeVolume) GetPodDeviceMapPath added in v1.9.0

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

Block volume support

func (*FakeVolume) GetPodDeviceMapPathCallCount added in v1.9.0

func (fv *FakeVolume) GetPodDeviceMapPathCallCount() int

Block volume support

func (*FakeVolume) GetSetUpCallCount added in v1.3.0

func (fv *FakeVolume) GetSetUpCallCount() int

func (*FakeVolume) GetSetUpDeviceCallCount added in v1.9.0

func (fv *FakeVolume) GetSetUpDeviceCallCount() int

Block volume support

func (*FakeVolume) GetStagingPath added in v1.19.0

func (fv *FakeVolume) GetStagingPath() string

func (*FakeVolume) GetTearDownCallCount added in v1.3.0

func (fv *FakeVolume) GetTearDownCallCount() int

func (*FakeVolume) GetTearDownDeviceCallCount added in v1.9.0

func (fv *FakeVolume) GetTearDownDeviceCallCount() int

Block volume support

func (*FakeVolume) GetUnmapPodDeviceCallCount added in v1.17.0

func (fv *FakeVolume) GetUnmapPodDeviceCallCount() int

Block volume support

func (*FakeVolume) GetUnmountDeviceCallCount added in v1.18.0

func (fv *FakeVolume) GetUnmountDeviceCallCount() int

func (*FakeVolume) GetWaitForAttachCallCount added in v1.3.0

func (fv *FakeVolume) GetWaitForAttachCallCount() int

func (*FakeVolume) MapPodDevice added in v1.17.0

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

Block volume support

func (*FakeVolume) MountDevice added in v1.3.0

func (fv *FakeVolume) MountDevice(spec *volume.Spec, devicePath string, deviceMountPath string, _ volume.DeviceMounterArgs) error

func (*FakeVolume) SetUp

func (fv *FakeVolume) SetUp(mounterArgs volume.MounterArgs) error

func (*FakeVolume) SetUpAt

func (fv *FakeVolume) SetUpAt(dir string, mounterArgs volume.MounterArgs) error

func (*FakeVolume) SetUpDevice added in v1.9.0

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 added in v1.9.0

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

Block volume support

func (*FakeVolume) UnmapPodDevice added in v1.17.0

func (fv *FakeVolume) UnmapPodDevice() error

Block volume support

func (*FakeVolume) UnmountDevice added in v1.3.0

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

func (*FakeVolume) VolumesAreAttached added in v1.4.6

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

func (*FakeVolume) WaitForAttach added in v1.3.0

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

type FakeVolumeHost added in v1.21.0

type FakeVolumeHost interface {
	VolumeHost

	GetPluginMgr() *VolumePluginMgr
}

func NewFakeAttachDetachVolumeHostWithCSINodeName added in v1.21.0

func NewFakeAttachDetachVolumeHostWithCSINodeName(t *testing.T, rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, nodeName string, driverLister storagelistersv1.CSIDriverLister, volumeAttachLister storagelistersv1.VolumeAttachmentLister) FakeVolumeHost

func NewFakeVolumeHost

func NewFakeVolumeHost(t *testing.T, rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin) FakeVolumeHost

func NewFakeVolumeHostWithCSINodeName added in v1.12.0

func NewFakeVolumeHostWithCSINodeName(t *testing.T, rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, nodeName string, driverLister storagelistersv1.CSIDriverLister, volumeAttachLister storagelistersv1.VolumeAttachmentLister) FakeVolumeHost

func NewFakeVolumeHostWithCloudProvider added in v1.7.11

func NewFakeVolumeHostWithCloudProvider(t *testing.T, rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, cloud cloudprovider.Interface) FakeVolumeHost

type FakeVolumePathHandler added in v1.9.0

type FakeVolumePathHandler struct {
	sync.RWMutex
}

func (*FakeVolumePathHandler) AttachFileDevice added in v1.9.0

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

func (*FakeVolumePathHandler) DetachFileDevice added in v1.17.0

func (fv *FakeVolumePathHandler) DetachFileDevice(path string) error

func (*FakeVolumePathHandler) FindGlobalMapPathUUIDFromPod added in v1.9.0

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

func (*FakeVolumePathHandler) GetDeviceBindMountRefs added in v1.17.0

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

func (*FakeVolumePathHandler) GetLoopDevice added in v1.9.0

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

func (*FakeVolumePathHandler) IsDeviceBindMountExist added in v1.17.0

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

func (*FakeVolumePathHandler) IsSymlinkExist added in v1.9.0

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

func (*FakeVolumePathHandler) MapDevice added in v1.9.0

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

func (*FakeVolumePathHandler) RemoveMapPath added in v1.9.0

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

func (*FakeVolumePathHandler) UnmapDevice added in v1.9.0

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

type FakeVolumePlugin

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

	// default to false which means it is attachable by default
	NonAttachable bool

	// Add callbacks as needed
	WaitForAttachHook func(spec *volume.Spec, devicePath string, pod *v1.Pod, spectimeout time.Duration) (string, error)
	UnmountDeviceHook func(globalMountPath string) error

	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 GetTestKubeletVolumePluginMgr added in v1.21.0

func GetTestKubeletVolumePluginMgr(t *testing.T) (*volume.VolumePluginMgr, *FakeVolumePlugin)

func GetTestKubeletVolumePluginMgrWithNode added in v1.22.7

func GetTestKubeletVolumePluginMgrWithNode(t *testing.T, node *v1.Node) (*volume.VolumePluginMgr, *FakeVolumePlugin)

func GetTestKubeletVolumePluginMgrWithNodeAndRoot added in v1.23.15

func GetTestKubeletVolumePluginMgrWithNodeAndRoot(t *testing.T, node *v1.Node, rootDir string) (*volume.VolumePluginMgr, *FakeVolumePlugin)

func GetTestVolumePluginMgr added in v1.3.0

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

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

func (*FakeVolumePlugin) CanAttach added in v1.14.0

func (plugin *FakeVolumePlugin) CanAttach(spec *volume.Spec) (bool, error)

func (*FakeVolumePlugin) CanDeviceMount added in v1.15.0

func (plugin *FakeVolumePlugin) CanDeviceMount(spec *volume.Spec) (bool, error)

func (*FakeVolumePlugin) CanSupport

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

func (*FakeVolumePlugin) ConstructBlockVolumeSpec added in v1.9.0

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

Block volume support

func (*FakeVolumePlugin) ConstructVolumeSpec added in v1.3.6

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

func (*FakeVolumePlugin) ExpandVolumeDevice added in v1.11.0

func (plugin *FakeVolumePlugin) ExpandVolumeDevice(spec *volume.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 added in v1.3.0

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

func (*FakeVolumePlugin) GetBlockVolumeMapper added in v1.9.0

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

Block volume support

func (*FakeVolumePlugin) GetBlockVolumeUnmapper added in v1.9.0

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

Block volume support

func (*FakeVolumePlugin) GetDetachers added in v1.3.0

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

func (*FakeVolumePlugin) GetDeviceMountRefs added in v1.3.6

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

func (*FakeVolumePlugin) GetMounters added in v1.3.0

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

func (*FakeVolumePlugin) GetNewAttacherCallCount added in v1.3.0

func (plugin *FakeVolumePlugin) GetNewAttacherCallCount() int

func (*FakeVolumePlugin) GetNewDetacherCallCount added in v1.3.0

func (plugin *FakeVolumePlugin) GetNewDetacherCallCount() int

func (*FakeVolumePlugin) GetPluginName added in v1.3.0

func (plugin *FakeVolumePlugin) GetPluginName() string

func (*FakeVolumePlugin) GetUnmounters added in v1.3.0

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

func (*FakeVolumePlugin) GetVolumeLimits added in v1.12.0

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

func (*FakeVolumePlugin) GetVolumeName added in v1.3.0

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

func (*FakeVolumePlugin) Init

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

func (*FakeVolumePlugin) NewAttacher

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

func (*FakeVolumePlugin) NewBlockVolumeMapper added in v1.9.0

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

Block volume support

func (*FakeVolumePlugin) NewBlockVolumeUnmapper added in v1.9.0

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

Block volume support

func (*FakeVolumePlugin) NewDeleter

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

func (*FakeVolumePlugin) NewDetacher

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

func (*FakeVolumePlugin) NewDeviceMounter added in v1.12.0

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

func (*FakeVolumePlugin) NewDeviceUnmounter added in v1.12.0

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

func (*FakeVolumePlugin) NewMounter added in v1.3.0

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

func (*FakeVolumePlugin) NewProvisioner

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

func (*FakeVolumePlugin) NewUnmounter added in v1.3.0

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

func (*FakeVolumePlugin) NodeExpand added in v1.14.0

func (plugin *FakeVolumePlugin) NodeExpand(resizeOptions volume.NodeResizeOptions) (bool, error)

func (*FakeVolumePlugin) Recycle added in v1.6.0

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

func (*FakeVolumePlugin) RequiresFSResize added in v1.11.0

func (plugin *FakeVolumePlugin) RequiresFSResize() bool

func (*FakeVolumePlugin) RequiresRemount added in v1.3.0

func (plugin *FakeVolumePlugin) RequiresRemount(spec *volume.Spec) bool

func (*FakeVolumePlugin) SupportsBulkVolumeVerification added in v1.6.0

func (plugin *FakeVolumePlugin) SupportsBulkVolumeVerification() bool

func (*FakeVolumePlugin) SupportsMountOption added in v1.6.0

func (plugin *FakeVolumePlugin) SupportsMountOption() bool

func (*FakeVolumePlugin) SupportsSELinuxContextMount added in v1.25.0

func (plugin *FakeVolumePlugin) SupportsSELinuxContextMount(spec *volume.Spec) (bool, error)

func (*FakeVolumePlugin) VolumeLimitKey added in v1.12.0

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

Jump to

Keyboard shortcuts

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