e2e storage: eliminate explicit test driver cleanup

Cleanup can be handled inside the setup code with ginkgo.DeferCleanup. This
simplifies the code.
This commit is contained in:
Patrick Ohly 2022-10-07 18:02:53 +02:00
parent 83415e5c9e
commit d8d3dc9476
24 changed files with 125 additions and 187 deletions

View File

@ -181,8 +181,7 @@ var _ = utils.SIGDescribe("CSI mock volume", func() {
} }
m.driver = drivers.InitMockCSIDriver(driverOpts) m.driver = drivers.InitMockCSIDriver(driverOpts)
config, testCleanup := m.driver.PrepareTest(f) config := m.driver.PrepareTest(f)
m.testCleanups = append(m.testCleanups, testCleanup)
m.config = config m.config = config
m.provisioner = config.GetUniqueDriverName() m.provisioner = config.GetUniqueDriverName()

View File

@ -206,7 +206,7 @@ func (h *hostpathCSIDriver) GetSnapshotClass(config *storageframework.PerTestCon
return utils.GenerateSnapshotClassSpec(snapshotter, parameters, ns) return utils.GenerateSnapshotClassSpec(snapshotter, parameters, ns)
} }
func (h *hostpathCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (h *hostpathCSIDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
// Create secondary namespace which will be used for creating driver // Create secondary namespace which will be used for creating driver
driverNamespace := utils.CreateDriverNamespace(f) driverNamespace := utils.CreateDriverNamespace(f)
driverns := driverNamespace.Name driverns := driverNamespace.Name
@ -285,8 +285,9 @@ func (h *hostpathCSIDriver) PrepareTest(f *framework.Framework) (*storageframewo
driverns, driverns,
cleanup, cleanup,
cancelLogging) cancelLogging)
ginkgo.DeferCleanup(cleanupFunc)
return config, cleanupFunc return config
} }
// mockCSI // mockCSI
@ -531,7 +532,7 @@ func (m *mockCSIDriver) GetSnapshotClass(config *storageframework.PerTestConfig,
return utils.GenerateSnapshotClassSpec(snapshotter, parameters, ns) return utils.GenerateSnapshotClassSpec(snapshotter, parameters, ns)
} }
func (m *mockCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (m *mockCSIDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
m.clientSet = f.ClientSet m.clientSet = f.ClientSet
// Create secondary namespace which will be used for creating driver // Create secondary namespace which will be used for creating driver
@ -689,12 +690,12 @@ func (m *mockCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.P
cleanup, cleanup,
cancelLogging) cancelLogging)
cleanupFunc := func() { ginkgo.DeferCleanup(func() {
embeddedCleanup() embeddedCleanup()
driverCleanupFunc() driverCleanupFunc()
} })
return config, cleanupFunc return config
} }
func (m *mockCSIDriver) interceptGRPC(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) { func (m *mockCSIDriver) interceptGRPC(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {
@ -860,7 +861,7 @@ func (g *gcePDCSIDriver) GetSnapshotClass(config *storageframework.PerTestConfig
return utils.GenerateSnapshotClassSpec(snapshotter, parameters, ns) return utils.GenerateSnapshotClassSpec(snapshotter, parameters, ns)
} }
func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
testns := f.Namespace.Name testns := f.Namespace.Name
cfg := &storageframework.PerTestConfig{ cfg := &storageframework.PerTestConfig{
Driver: g, Driver: g,
@ -870,7 +871,7 @@ func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.
if framework.ProviderIs("gke") { if framework.ProviderIs("gke") {
framework.Logf("The csi gce-pd driver is automatically installed in GKE. Skipping driver installation.") framework.Logf("The csi gce-pd driver is automatically installed in GKE. Skipping driver installation.")
return cfg, func() {} return cfg
} }
ginkgo.By("deploying csi gce-pd driver") ginkgo.By("deploying csi gce-pd driver")
@ -917,13 +918,14 @@ func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.
driverns, driverns,
cleanup, cleanup,
cancelLogging) cancelLogging)
ginkgo.DeferCleanup(cleanupFunc)
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: g, Driver: g,
Prefix: "gcepd", Prefix: "gcepd",
Framework: f, Framework: f,
DriverNamespace: driverNamespace, DriverNamespace: driverNamespace,
}, cleanupFunc }
} }
// WaitForCSIDriverRegistrationOnAllNodes waits for the CSINode object to be updated // WaitForCSIDriverRegistrationOnAllNodes waits for the CSINode object to be updated

View File

@ -157,7 +157,7 @@ func (n *nfsDriver) GetDynamicProvisionStorageClass(config *storageframework.Per
return storageframework.GetStorageClass(provisioner, parameters, nil, ns) return storageframework.GetStorageClass(provisioner, parameters, nil, ns)
} }
func (n *nfsDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (n *nfsDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
cs := f.ClientSet cs := f.ClientSet
ns := f.Namespace ns := f.Namespace
n.externalPluginName = fmt.Sprintf("example.com/nfs-%s", ns.Name) n.externalPluginName = fmt.Sprintf("example.com/nfs-%s", ns.Name)
@ -167,6 +167,10 @@ func (n *nfsDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTe
err := e2eauth.BindClusterRole(cs.RbacV1(), "cluster-admin", ns.Name, err := e2eauth.BindClusterRole(cs.RbacV1(), "cluster-admin", ns.Name,
rbacv1.Subject{Kind: rbacv1.ServiceAccountKind, Namespace: ns.Name, Name: "default"}) rbacv1.Subject{Kind: rbacv1.ServiceAccountKind, Namespace: ns.Name, Name: "default"})
framework.ExpectNoError(err) framework.ExpectNoError(err)
ginkgo.DeferCleanup(func(ctx context.Context) {
clusterRoleBindingName := ns.Name + "--" + "cluster-admin"
cs.RbacV1().ClusterRoleBindings().Delete(ctx, clusterRoleBindingName, *metav1.NewDeleteOptions(0))
})
err = e2eauth.WaitForAuthorizationUpdate(cs.AuthorizationV1(), err = e2eauth.WaitForAuthorizationUpdate(cs.AuthorizationV1(),
serviceaccount.MakeUsername(ns.Name, "default"), serviceaccount.MakeUsername(ns.Name, "default"),
@ -175,16 +179,15 @@ func (n *nfsDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTe
ginkgo.By("creating an external dynamic provisioner pod") ginkgo.By("creating an external dynamic provisioner pod")
n.externalProvisionerPod = utils.StartExternalProvisioner(cs, ns.Name, n.externalPluginName) n.externalProvisionerPod = utils.StartExternalProvisioner(cs, ns.Name, n.externalPluginName)
ginkgo.DeferCleanup(func() {
framework.ExpectNoError(e2epod.DeletePodWithWait(cs, n.externalProvisionerPod))
})
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: n, Driver: n,
Prefix: "nfs", Prefix: "nfs",
Framework: f, Framework: f,
}, func() { }
framework.ExpectNoError(e2epod.DeletePodWithWait(cs, n.externalProvisionerPod))
clusterRoleBindingName := ns.Name + "--" + "cluster-admin"
cs.RbacV1().ClusterRoleBindings().Delete(context.TODO(), clusterRoleBindingName, *metav1.NewDeleteOptions(0))
}
} }
func (n *nfsDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (n *nfsDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
@ -307,12 +310,12 @@ func (i *iSCSIDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2
return &pvSource, nil return &pvSource, nil
} }
func (i *iSCSIDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (i *iSCSIDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: i, Driver: i,
Prefix: "iscsi", Prefix: "iscsi",
Framework: f, Framework: f,
}, func() {} }
} }
func (i *iSCSIDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (i *iSCSIDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
@ -500,12 +503,12 @@ func (r *rbdDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2ev
return &pvSource, nil return &pvSource, nil
} }
func (r *rbdDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (r *rbdDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: r, Driver: r,
Prefix: "rbd", Prefix: "rbd",
Framework: f, Framework: f,
}, func() {} }
} }
func (r *rbdDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (r *rbdDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
@ -614,12 +617,12 @@ func (c *cephFSDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e
}, nil }, nil
} }
func (c *cephFSDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (c *cephFSDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: c, Driver: c,
Prefix: "cephfs", Prefix: "cephfs",
Framework: f, Framework: f,
}, func() {} }
} }
func (c *cephFSDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (c *cephFSDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
@ -690,12 +693,12 @@ func (h *hostPathDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume
} }
} }
func (h *hostPathDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (h *hostPathDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: h, Driver: h,
Prefix: "hostpath", Prefix: "hostpath",
Framework: f, Framework: f,
}, func() {} }
} }
func (h *hostPathDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (h *hostPathDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
@ -770,12 +773,12 @@ func (h *hostPathSymlinkDriver) GetVolumeSource(readOnly bool, fsType string, e2
} }
} }
func (h *hostPathSymlinkDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (h *hostPathSymlinkDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: h, Driver: h,
Prefix: "hostpathsymlink", Prefix: "hostpathsymlink",
Framework: f, Framework: f,
}, func() {} }
} }
func (h *hostPathSymlinkDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (h *hostPathSymlinkDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
@ -911,12 +914,12 @@ func (e *emptydirDriver) CreateVolume(config *storageframework.PerTestConfig, vo
return nil return nil
} }
func (e *emptydirDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (e *emptydirDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: e, Driver: e,
Prefix: "emptydir", Prefix: "emptydir",
Framework: f, Framework: f,
}, func() {} }
} }
// GCE // GCE
@ -1062,7 +1065,7 @@ func (g *gcePdDriver) GetDynamicProvisionStorageClass(config *storageframework.P
return storageframework.GetStorageClass(provisioner, parameters, &delayedBinding, ns) return storageframework.GetStorageClass(provisioner, parameters, &delayedBinding, ns)
} }
func (g *gcePdDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (g *gcePdDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
config := &storageframework.PerTestConfig{ config := &storageframework.PerTestConfig{
Driver: g, Driver: g,
Prefix: "gcepd", Prefix: "gcepd",
@ -1076,7 +1079,7 @@ func (g *gcePdDriver) PrepareTest(f *framework.Framework) (*storageframework.Per
}, },
} }
} }
return config, func() {} return config
} }
@ -1209,21 +1212,22 @@ func (v *vSphereDriver) GetDynamicProvisionStorageClass(config *storageframework
return storageframework.GetStorageClass(provisioner, parameters, nil, ns) return storageframework.GetStorageClass(provisioner, parameters, nil, ns)
} }
func (v *vSphereDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (v *vSphereDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
return &storageframework.PerTestConfig{ ginkgo.DeferCleanup(func() {
Driver: v, // Driver Cleanup function
Prefix: "vsphere", // Logout each vSphere client connection to prevent session leakage
Framework: f, nodes := vspheretest.GetReadySchedulableNodeInfos()
}, func() { for _, node := range nodes {
// Driver Cleanup function if node.VSphere.Client != nil {
// Logout each vSphere client connection to prevent session leakage node.VSphere.Client.Logout(context.TODO())
nodes := vspheretest.GetReadySchedulableNodeInfos()
for _, node := range nodes {
if node.VSphere.Client != nil {
node.VSphere.Client.Logout(context.TODO())
}
} }
} }
})
return &storageframework.PerTestConfig{
Driver: v,
Prefix: "vsphere",
Framework: f,
}
} }
func (v *vSphereDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (v *vSphereDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
@ -1354,12 +1358,12 @@ func (a *azureDiskDriver) GetDynamicProvisionStorageClass(config *storageframewo
return storageframework.GetStorageClass(provisioner, parameters, &delayedBinding, ns) return storageframework.GetStorageClass(provisioner, parameters, &delayedBinding, ns)
} }
func (a *azureDiskDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (a *azureDiskDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: a, Driver: a,
Prefix: "azure", Prefix: "azure",
Framework: f, Framework: f,
}, func() {} }
} }
func (a *azureDiskDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (a *azureDiskDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
@ -1492,7 +1496,7 @@ func (a *awsDriver) GetDynamicProvisionStorageClass(config *storageframework.Per
return storageframework.GetStorageClass(provisioner, parameters, &delayedBinding, ns) return storageframework.GetStorageClass(provisioner, parameters, &delayedBinding, ns)
} }
func (a *awsDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (a *awsDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
config := &storageframework.PerTestConfig{ config := &storageframework.PerTestConfig{
Driver: a, Driver: a,
Prefix: "aws", Prefix: "aws",
@ -1506,7 +1510,7 @@ func (a *awsDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTe
}, },
} }
} }
return config, func() {} return config
} }
func (a *awsDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (a *awsDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
@ -1628,7 +1632,7 @@ func (l *localDriver) GetDriverInfo() *storageframework.DriverInfo {
func (l *localDriver) SkipUnsupportedTest(pattern storageframework.TestPattern) { func (l *localDriver) SkipUnsupportedTest(pattern storageframework.TestPattern) {
} }
func (l *localDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (l *localDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
var err error var err error
l.node, err = e2enode.GetRandomReadySchedulableNode(f.ClientSet) l.node, err = e2enode.GetRandomReadySchedulableNode(f.ClientSet)
framework.ExpectNoError(err) framework.ExpectNoError(err)
@ -1650,14 +1654,13 @@ func (l *localDriver) PrepareTest(f *framework.Framework) (*storageframework.Per
} }
} }
ginkgo.DeferCleanup(l.hostExec.Cleanup)
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: l, Driver: l,
Prefix: "local", Prefix: "local",
Framework: f, Framework: f,
ClientNodeSelection: e2epod.NodeSelection{Name: l.node.Name}, ClientNodeSelection: e2epod.NodeSelection{Name: l.node.Name},
}, func() { }
l.hostExec.Cleanup()
}
} }
func (l *localDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (l *localDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
@ -1848,12 +1851,12 @@ func (a *azureFileDriver) GetDynamicProvisionStorageClass(config *storageframewo
return storageframework.GetStorageClass(provisioner, parameters, &immediateBinding, ns) return storageframework.GetStorageClass(provisioner, parameters, &immediateBinding, ns)
} }
func (a *azureFileDriver) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (a *azureFileDriver) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
return &storageframework.PerTestConfig{ return &storageframework.PerTestConfig{
Driver: a, Driver: a,
Prefix: "azure-file", Prefix: "azure-file",
Framework: f, Framework: f,
}, func() {} }
} }
func (a *azureFileDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume { func (a *azureFileDriver) CreateVolume(config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {

View File

@ -415,12 +415,12 @@ func (d *driverDefinition) GetCSIDriverName(e2econfig *storageframework.PerTestC
return d.DriverInfo.Name return d.DriverInfo.Name
} }
func (d *driverDefinition) PrepareTest(f *framework.Framework) (*storageframework.PerTestConfig, func()) { func (d *driverDefinition) PrepareTest(f *framework.Framework) *storageframework.PerTestConfig {
e2econfig := &storageframework.PerTestConfig{ e2econfig := &storageframework.PerTestConfig{
Driver: d, Driver: d,
Prefix: "external", Prefix: "external",
Framework: f, Framework: f,
ClientNodeSelection: e2epod.NodeSelection{Name: d.ClientNodeName}, ClientNodeSelection: e2epod.NodeSelection{Name: d.ClientNodeName},
} }
return e2econfig, func() {} return e2econfig
} }

View File

@ -47,9 +47,9 @@ type TestDriver interface {
SkipUnsupportedTest(TestPattern) SkipUnsupportedTest(TestPattern)
// PrepareTest is called at test execution time each time a new test case is about to start. // PrepareTest is called at test execution time each time a new test case is about to start.
// It sets up all necessary resources and returns the per-test configuration // It sets up all necessary resources and returns the per-test configuration.
// plus a cleanup function that frees all allocated resources. // Cleanup is handled via ginkgo.DeferCleanup inside PrepareTest.
PrepareTest(f *framework.Framework) (*PerTestConfig, func()) PrepareTest(f *framework.Framework) *PerTestConfig
} }
// TestVolume is the result of PreprovisionedVolumeTestDriver.CreateVolume. // TestVolume is the result of PreprovisionedVolumeTestDriver.CreateVolume.

View File

@ -84,12 +84,11 @@ var _ = utils.SIGDescribe("[Feature:NodeOutOfServiceVolumeDetach] [Disruptive] [
// Install gce pd csi driver // Install gce pd csi driver
ginkgo.By("deploying csi gce-pd driver") ginkgo.By("deploying csi gce-pd driver")
driver := drivers.InitGcePDCSIDriver() driver := drivers.InitGcePDCSIDriver()
config, cleanup := driver.PrepareTest(f) config := driver.PrepareTest(f)
dDriver, ok := driver.(storageframework.DynamicPVTestDriver) dDriver, ok := driver.(storageframework.DynamicPVTestDriver)
if !ok { if !ok {
e2eskipper.Skipf("csi driver expected DynamicPVTestDriver but got %v", driver) e2eskipper.Skipf("csi driver expected DynamicPVTestDriver but got %v", driver)
} }
defer cleanup()
ginkgo.By("Creating a gce-pd storage class") ginkgo.By("Creating a gce-pd storage class")
sc := dDriver.GetDynamicProvisionStorageClass(config, "") sc := dDriver.GetDynamicProvisionStorageClass(config, "")
_, err := c.StorageV1().StorageClasses().Create(context.TODO(), sc, metav1.CreateOptions{}) _, err := c.StorageV1().StorageClasses().Create(context.TODO(), sc, metav1.CreateOptions{})

View File

@ -33,7 +33,6 @@ import (
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
storageframework "k8s.io/kubernetes/test/e2e/storage/framework" storageframework "k8s.io/kubernetes/test/e2e/storage/framework"
storageutils "k8s.io/kubernetes/test/e2e/storage/utils"
admissionapi "k8s.io/pod-security-admission/api" admissionapi "k8s.io/pod-security-admission/api"
) )
@ -81,10 +80,9 @@ func (p *capacityTestSuite) SkipUnsupportedTests(driver storageframework.TestDri
func (p *capacityTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (p *capacityTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
var ( var (
dInfo = driver.GetDriverInfo() dInfo = driver.GetDriverInfo()
dDriver storageframework.DynamicPVTestDriver dDriver storageframework.DynamicPVTestDriver
driverCleanup func() sc *storagev1.StorageClass
sc *storagev1.StorageClass
) )
// Beware that it also registers an AfterEach which renders f unusable. Any code using // Beware that it also registers an AfterEach which renders f unusable. Any code using
@ -95,23 +93,15 @@ func (p *capacityTestSuite) DefineTests(driver storageframework.TestDriver, patt
init := func() { init := func() {
dDriver, _ = driver.(storageframework.DynamicPVTestDriver) dDriver, _ = driver.(storageframework.DynamicPVTestDriver)
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
config, cleanup := driver.PrepareTest(f) config := driver.PrepareTest(f)
driverCleanup = cleanup
sc = dDriver.GetDynamicProvisionStorageClass(config, pattern.FsType) sc = dDriver.GetDynamicProvisionStorageClass(config, pattern.FsType)
if sc == nil { if sc == nil {
e2eskipper.Skipf("Driver %q does not define Dynamic Provision StorageClass - skipping", dInfo.Name) e2eskipper.Skipf("Driver %q does not define Dynamic Provision StorageClass - skipping", dInfo.Name)
} }
} }
cleanup := func() {
err := storageutils.TryFunc(driverCleanup)
driverCleanup = nil
framework.ExpectNoError(err, "while cleaning up driver")
}
ginkgo.It("provides storage capacity information", func() { ginkgo.It("provides storage capacity information", func() {
init() init()
defer cleanup()
timeout := time.Minute timeout := time.Minute
pollInterval := time.Second pollInterval := time.Second

View File

@ -74,8 +74,7 @@ func (s *disruptiveTestSuite) SkipUnsupportedTests(driver storageframework.TestD
func (s *disruptiveTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (s *disruptiveTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
cs clientset.Interface cs clientset.Interface
ns *v1.Namespace ns *v1.Namespace
@ -97,7 +96,7 @@ func (s *disruptiveTestSuite) DefineTests(driver storageframework.TestDriver, pa
l.cs = f.ClientSet l.cs = f.ClientSet
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
testVolumeSizeRange := s.GetTestSuiteInfo().SupportedSizeRange testVolumeSizeRange := s.GetTestSuiteInfo().SupportedSizeRange
l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange) l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange)
@ -118,8 +117,6 @@ func (s *disruptiveTestSuite) DefineTests(driver storageframework.TestDriver, pa
l.resource = nil l.resource = nil
} }
errs = append(errs, storageutils.TryFunc(l.driverCleanup))
l.driverCleanup = nil
framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource")
} }

View File

@ -35,7 +35,6 @@ import (
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
storageframework "k8s.io/kubernetes/test/e2e/storage/framework" storageframework "k8s.io/kubernetes/test/e2e/storage/framework"
storageutils "k8s.io/kubernetes/test/e2e/storage/utils"
admissionapi "k8s.io/pod-security-admission/api" admissionapi "k8s.io/pod-security-admission/api"
) )
@ -104,8 +103,7 @@ func (p *ephemeralTestSuite) SkipUnsupportedTests(driver storageframework.TestDr
func (p *ephemeralTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (p *ephemeralTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
testCase *EphemeralTest testCase *EphemeralTest
resource *storageframework.VolumeResource resource *storageframework.VolumeResource
@ -138,7 +136,7 @@ func (p *ephemeralTestSuite) DefineTests(driver storageframework.TestDriver, pat
l = local{} l = local{}
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, e2evolume.SizeRange{}) l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, e2evolume.SizeRange{})
switch pattern.VolType { switch pattern.VolType {
@ -167,7 +165,6 @@ func (p *ephemeralTestSuite) DefineTests(driver storageframework.TestDriver, pat
cleanup := func() { cleanup := func() {
var cleanUpErrs []error var cleanUpErrs []error
cleanUpErrs = append(cleanUpErrs, l.resource.CleanupResource()) cleanUpErrs = append(cleanUpErrs, l.resource.CleanupResource())
cleanUpErrs = append(cleanUpErrs, storageutils.TryFunc(l.driverCleanup))
err := utilerrors.NewAggregate(cleanUpErrs) err := utilerrors.NewAggregate(cleanUpErrs)
framework.ExpectNoError(err, "while cleaning up") framework.ExpectNoError(err, "while cleaning up")
} }

View File

@ -96,10 +96,9 @@ func (s *fsGroupChangePolicyTestSuite) SkipUnsupportedTests(driver storageframew
func (s *fsGroupChangePolicyTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (s *fsGroupChangePolicyTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func() driver storageframework.TestDriver
driver storageframework.TestDriver resource *storageframework.VolumeResource
resource *storageframework.VolumeResource
} }
var l local var l local
@ -112,7 +111,7 @@ func (s *fsGroupChangePolicyTestSuite) DefineTests(driver storageframework.TestD
e2eskipper.SkipIfNodeOSDistroIs("windows") e2eskipper.SkipIfNodeOSDistroIs("windows")
l = local{} l = local{}
l.driver = driver l.driver = driver
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
testVolumeSizeRange := s.GetTestSuiteInfo().SupportedSizeRange testVolumeSizeRange := s.GetTestSuiteInfo().SupportedSizeRange
l.resource = storageframework.CreateVolumeResource(l.driver, l.config, pattern, testVolumeSizeRange) l.resource = storageframework.CreateVolumeResource(l.driver, l.config, pattern, testVolumeSizeRange)
} }
@ -126,11 +125,6 @@ func (s *fsGroupChangePolicyTestSuite) DefineTests(driver storageframework.TestD
l.resource = nil l.resource = nil
} }
if l.driverCleanup != nil {
errs = append(errs, storageutils.TryFunc(l.driverCleanup))
l.driverCleanup = nil
}
framework.ExpectNoError(errors.NewAggregate(errs), "while cleanup resource") framework.ExpectNoError(errors.NewAggregate(errs), "while cleanup resource")
} }

View File

@ -87,8 +87,7 @@ func (t *multiVolumeTestSuite) SkipUnsupportedTests(driver storageframework.Test
func (t *multiVolumeTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (t *multiVolumeTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
cs clientset.Interface cs clientset.Interface
ns *v1.Namespace ns *v1.Namespace
@ -114,7 +113,7 @@ func (t *multiVolumeTestSuite) DefineTests(driver storageframework.TestDriver, p
l.driver = driver l.driver = driver
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName)
} }
@ -124,8 +123,6 @@ func (t *multiVolumeTestSuite) DefineTests(driver storageframework.TestDriver, p
errs = append(errs, resource.CleanupResource()) errs = append(errs, resource.CleanupResource())
} }
errs = append(errs, storageutils.TryFunc(l.driverCleanup))
l.driverCleanup = nil
framework.ExpectNoError(errors.NewAggregate(errs), "while cleanup resource") framework.ExpectNoError(errors.NewAggregate(errs), "while cleanup resource")
l.migrationCheck.validateMigrationVolumeOpCounts() l.migrationCheck.validateMigrationVolumeOpCounts()
} }

View File

@ -114,8 +114,7 @@ func (p *provisioningTestSuite) SkipUnsupportedTests(driver storageframework.Tes
func (p *provisioningTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (p *provisioningTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
testCase *StorageClassTest testCase *StorageClassTest
cs clientset.Interface cs clientset.Interface
@ -140,7 +139,7 @@ func (p *provisioningTestSuite) DefineTests(driver storageframework.TestDriver,
l = local{} l = local{}
dDriver, _ = driver.(storageframework.DynamicPVTestDriver) dDriver, _ = driver.(storageframework.DynamicPVTestDriver)
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName)
l.cs = l.config.Framework.ClientSet l.cs = l.config.Framework.ClientSet
testVolumeSizeRange := p.GetTestSuiteInfo().SupportedSizeRange testVolumeSizeRange := p.GetTestSuiteInfo().SupportedSizeRange
@ -177,10 +176,6 @@ func (p *provisioningTestSuite) DefineTests(driver storageframework.TestDriver,
} }
cleanup := func() { cleanup := func() {
err := storageutils.TryFunc(l.driverCleanup)
l.driverCleanup = nil
framework.ExpectNoError(err, "while cleaning up driver")
l.migrationCheck.validateMigrationVolumeOpCounts() l.migrationCheck.validateMigrationVolumeOpCounts()
} }

View File

@ -33,7 +33,6 @@ import (
e2epv "k8s.io/kubernetes/test/e2e/framework/pv" e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
storageframework "k8s.io/kubernetes/test/e2e/storage/framework" storageframework "k8s.io/kubernetes/test/e2e/storage/framework"
storageutils "k8s.io/kubernetes/test/e2e/storage/utils"
admissionapi "k8s.io/pod-security-admission/api" admissionapi "k8s.io/pod-security-admission/api"
) )
@ -44,8 +43,7 @@ type readWriteOncePodTestSuite struct {
var _ storageframework.TestSuite = &readWriteOncePodTestSuite{} var _ storageframework.TestSuite = &readWriteOncePodTestSuite{}
type readWriteOncePodTest struct { type readWriteOncePodTest struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
cs clientset.Interface cs clientset.Interface
volume *storageframework.VolumeResource volume *storageframework.VolumeResource
@ -96,7 +94,7 @@ func (t *readWriteOncePodTestSuite) DefineTests(driver storageframework.TestDriv
init := func() { init := func() {
l = readWriteOncePodTest{} l = readWriteOncePodTest{}
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.cs = f.ClientSet l.cs = f.ClientSet
l.pods = []*v1.Pod{} l.pods = []*v1.Pod{}
l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), driverInfo.InTreePluginName) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), driverInfo.InTreePluginName)
@ -114,7 +112,6 @@ func (t *readWriteOncePodTestSuite) DefineTests(driver storageframework.TestDriv
err := l.volume.CleanupResource() err := l.volume.CleanupResource()
errs = append(errs, err) errs = append(errs, err)
errs = append(errs, storageutils.TryFunc(l.driverCleanup))
framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource")
l.migrationCheck.validateMigrationVolumeOpCounts() l.migrationCheck.validateMigrationVolumeOpCounts()
} }

View File

@ -112,10 +112,9 @@ func (s *snapshottableTestSuite) DefineTests(driver storageframework.TestDriver,
ginkgo.Describe("volume snapshot controller", func() { ginkgo.Describe("volume snapshot controller", func() {
var ( var (
err error err error
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func() cleanupSteps []func()
cleanupSteps []func()
cs clientset.Interface cs clientset.Interface
dc dynamic.Interface dc dynamic.Interface
@ -135,8 +134,7 @@ func (s *snapshottableTestSuite) DefineTests(driver storageframework.TestDriver,
dc = f.DynamicClient dc = f.DynamicClient
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
config, driverCleanup = driver.PrepareTest(f) config = driver.PrepareTest(f)
cleanupSteps = append(cleanupSteps, driverCleanup)
cleanupSteps = append(cleanupSteps, func() { cleanupSteps = append(cleanupSteps, func() {
framework.ExpectNoError(volumeResource.CleanupResource()) framework.ExpectNoError(volumeResource.CleanupResource())

View File

@ -128,18 +128,17 @@ func (t *snapshottableStressTestSuite) DefineTests(driver storageframework.TestD
driverInfo = driver.GetDriverInfo() driverInfo = driver.GetDriverInfo()
snapshottableDriver, _ = driver.(storageframework.SnapshottableTestDriver) snapshottableDriver, _ = driver.(storageframework.SnapshottableTestDriver)
cs = f.ClientSet cs = f.ClientSet
config, driverCleanup := driver.PrepareTest(f) config := driver.PrepareTest(f)
ctx, cancel := context.WithCancel(context.Background()) ctx, cancel := context.WithCancel(context.Background())
stressTest = &snapshottableStressTest{ stressTest = &snapshottableStressTest{
config: config, config: config,
driverCleanup: driverCleanup, volumes: []*storageframework.VolumeResource{},
volumes: []*storageframework.VolumeResource{}, snapshots: []*storageframework.SnapshotResource{},
snapshots: []*storageframework.SnapshotResource{}, pods: []*v1.Pod{},
pods: []*v1.Pod{}, testOptions: *driverInfo.VolumeSnapshotStressTestOptions,
testOptions: *driverInfo.VolumeSnapshotStressTestOptions, ctx: ctx,
ctx: ctx, cancel: cancel,
cancel: cancel,
} }
} }

View File

@ -99,8 +99,7 @@ func (s *subPathTestSuite) SkipUnsupportedTests(driver storageframework.TestDriv
func (s *subPathTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (s *subPathTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
hostExec storageutils.HostExec hostExec storageutils.HostExec
resource *storageframework.VolumeResource resource *storageframework.VolumeResource
@ -124,7 +123,7 @@ func (s *subPathTestSuite) DefineTests(driver storageframework.TestDriver, patte
l = local{} l = local{}
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), driver.GetDriverInfo().InTreePluginName) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), driver.GetDriverInfo().InTreePluginName)
testVolumeSizeRange := s.GetTestSuiteInfo().SupportedSizeRange testVolumeSizeRange := s.GetTestSuiteInfo().SupportedSizeRange
l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange) l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange)
@ -181,8 +180,6 @@ func (s *subPathTestSuite) DefineTests(driver storageframework.TestDriver, patte
l.resource = nil l.resource = nil
} }
errs = append(errs, storageutils.TryFunc(l.driverCleanup))
l.driverCleanup = nil
framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource")
if l.hostExec != nil { if l.hostExec != nil {

View File

@ -44,8 +44,7 @@ type topologyTestSuite struct {
} }
type topologyTest struct { type topologyTest struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
migrationCheck *migrationOpCheck migrationCheck *migrationOpCheck
@ -112,7 +111,7 @@ func (t *topologyTestSuite) DefineTests(driver storageframework.TestDriver, patt
l := topologyTest{} l := topologyTest{}
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.resource = storageframework.VolumeResource{ l.resource = storageframework.VolumeResource{
Config: l.config, Config: l.config,
@ -156,8 +155,6 @@ func (t *topologyTestSuite) DefineTests(driver storageframework.TestDriver, patt
cleanup := func(l topologyTest) { cleanup := func(l topologyTest) {
t.CleanupResources(cs, &l) t.CleanupResources(cs, &l)
err := storageutils.TryFunc(l.driverCleanup)
l.driverCleanup = nil
framework.ExpectNoError(err, "while cleaning up driver") framework.ExpectNoError(err, "while cleaning up driver")
l.migrationCheck.validateMigrationVolumeOpCounts() l.migrationCheck.validateMigrationVolumeOpCounts()

View File

@ -35,7 +35,6 @@ import (
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
storageframework "k8s.io/kubernetes/test/e2e/storage/framework" storageframework "k8s.io/kubernetes/test/e2e/storage/framework"
storageutils "k8s.io/kubernetes/test/e2e/storage/utils"
admissionapi "k8s.io/pod-security-admission/api" admissionapi "k8s.io/pod-security-admission/api"
) )
@ -102,8 +101,7 @@ func (v *volumeExpandTestSuite) SkipUnsupportedTests(driver storageframework.Tes
func (v *volumeExpandTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (v *volumeExpandTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
resource *storageframework.VolumeResource resource *storageframework.VolumeResource
pod *v1.Pod pod *v1.Pod
@ -122,7 +120,7 @@ func (v *volumeExpandTestSuite) DefineTests(driver storageframework.TestDriver,
l = local{} l = local{}
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), driver.GetDriverInfo().InTreePluginName) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), driver.GetDriverInfo().InTreePluginName)
testVolumeSizeRange := v.GetTestSuiteInfo().SupportedSizeRange testVolumeSizeRange := v.GetTestSuiteInfo().SupportedSizeRange
l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange) l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange)
@ -149,8 +147,6 @@ func (v *volumeExpandTestSuite) DefineTests(driver storageframework.TestDriver,
l.resource = nil l.resource = nil
} }
errs = append(errs, storageutils.TryFunc(l.driverCleanup))
l.driverCleanup = nil
framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource")
l.migrationCheck.validateMigrationVolumeOpCounts() l.migrationCheck.validateMigrationVolumeOpCounts()
} }

View File

@ -41,7 +41,6 @@ import (
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
storageframework "k8s.io/kubernetes/test/e2e/storage/framework" storageframework "k8s.io/kubernetes/test/e2e/storage/framework"
storageutils "k8s.io/kubernetes/test/e2e/storage/utils"
admissionapi "k8s.io/pod-security-admission/api" admissionapi "k8s.io/pod-security-admission/api"
) )
@ -98,8 +97,7 @@ func (t *volumeIOTestSuite) SkipUnsupportedTests(driver storageframework.TestDri
func (t *volumeIOTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (t *volumeIOTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
resource *storageframework.VolumeResource resource *storageframework.VolumeResource
@ -119,7 +117,7 @@ func (t *volumeIOTestSuite) DefineTests(driver storageframework.TestDriver, patt
l = local{} l = local{}
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName)
testVolumeSizeRange := t.GetTestSuiteInfo().SupportedSizeRange testVolumeSizeRange := t.GetTestSuiteInfo().SupportedSizeRange
@ -137,11 +135,6 @@ func (t *volumeIOTestSuite) DefineTests(driver storageframework.TestDriver, patt
l.resource = nil l.resource = nil
} }
if l.driverCleanup != nil {
errs = append(errs, storageutils.TryFunc(l.driverCleanup))
l.driverCleanup = nil
}
framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource")
l.migrationCheck.validateMigrationVolumeOpCounts() l.migrationCheck.validateMigrationVolumeOpCounts()
} }

View File

@ -33,7 +33,6 @@ import (
e2epv "k8s.io/kubernetes/test/e2e/framework/pv" e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
storageframework "k8s.io/kubernetes/test/e2e/storage/framework" storageframework "k8s.io/kubernetes/test/e2e/storage/framework"
storageutils "k8s.io/kubernetes/test/e2e/storage/utils"
admissionapi "k8s.io/pod-security-admission/api" admissionapi "k8s.io/pod-security-admission/api"
) )
@ -42,8 +41,7 @@ type volumeStressTestSuite struct {
} }
type volumeStressTest struct { type volumeStressTest struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
migrationCheck *migrationOpCheck migrationCheck *migrationOpCheck
@ -121,7 +119,7 @@ func (t *volumeStressTestSuite) DefineTests(driver storageframework.TestDriver,
l = &volumeStressTest{} l = &volumeStressTest{}
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName)
l.volumes = []*storageframework.VolumeResource{} l.volumes = []*storageframework.VolumeResource{}
l.pods = []*v1.Pod{} l.pods = []*v1.Pod{}
@ -187,7 +185,6 @@ func (t *volumeStressTestSuite) DefineTests(driver storageframework.TestDriver,
} }
wg.Wait() wg.Wait()
errs = append(errs, storageutils.TryFunc(l.driverCleanup))
framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource")
l.migrationCheck.validateMigrationVolumeOpCounts() l.migrationCheck.validateMigrationVolumeOpCounts()
} }

View File

@ -90,8 +90,7 @@ func (t *volumeLimitsTestSuite) SkipUnsupportedTests(driver storageframework.Tes
func (t *volumeLimitsTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (t *volumeLimitsTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
testCleanup func()
cs clientset.Interface cs clientset.Interface
ns *v1.Namespace ns *v1.Namespace
@ -137,8 +136,7 @@ func (t *volumeLimitsTestSuite) DefineTests(driver storageframework.TestDriver,
l.ns = f.Namespace l.ns = f.Namespace
l.cs = f.ClientSet l.cs = f.ClientSet
l.config, l.testCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
defer l.testCleanup()
ginkgo.By("Picking a node") ginkgo.By("Picking a node")
// Some CSI drivers are deployed to a single node (e.g csi-hostpath), // Some CSI drivers are deployed to a single node (e.g csi-hostpath),
@ -255,8 +253,7 @@ func (t *volumeLimitsTestSuite) DefineTests(driver storageframework.TestDriver,
l.ns = f.Namespace l.ns = f.Namespace
l.cs = f.ClientSet l.cs = f.ClientSet
l.config, l.testCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
defer l.testCleanup()
nodeNames := []string{} nodeNames := []string{}
if l.config.ClientNodeSelection.Name != "" { if l.config.ClientNodeSelection.Name != "" {

View File

@ -116,7 +116,7 @@ func (t *volumeModeTestSuite) DefineTests(driver storageframework.TestDriver, pa
l.cs = f.ClientSet l.cs = f.ClientSet
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName)
} }

View File

@ -93,14 +93,13 @@ func (t *volumePerformanceTestSuite) SkipUnsupportedTests(driver storageframewor
func (t *volumePerformanceTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (t *volumePerformanceTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
testCleanup func() cs clientset.Interface
cs clientset.Interface ns *v1.Namespace
ns *v1.Namespace scName string
scName string pvcs []*v1.PersistentVolumeClaim
pvcs []*v1.PersistentVolumeClaim options *storageframework.PerformanceTestOptions
options *storageframework.PerformanceTestOptions stopCh chan struct{}
stopCh chan struct{}
} }
var ( var (
dInfo *storageframework.DriverInfo dInfo *storageframework.DriverInfo
@ -142,7 +141,6 @@ func (t *volumePerformanceTestSuite) DefineTests(driver storageframework.TestDri
ginkgo.By(fmt.Sprintf("Deleting Storage Class %s", l.scName)) ginkgo.By(fmt.Sprintf("Deleting Storage Class %s", l.scName))
err := l.cs.StorageV1().StorageClasses().Delete(context.TODO(), l.scName, metav1.DeleteOptions{}) err := l.cs.StorageV1().StorageClasses().Delete(context.TODO(), l.scName, metav1.DeleteOptions{})
framework.ExpectNoError(err) framework.ExpectNoError(err)
l.testCleanup()
}) })
ginkgo.It("should provision volumes at scale within performance constraints [Slow] [Serial]", func() { ginkgo.It("should provision volumes at scale within performance constraints [Slow] [Serial]", func() {
@ -151,7 +149,7 @@ func (t *volumePerformanceTestSuite) DefineTests(driver storageframework.TestDri
ns: f.Namespace, ns: f.Namespace,
options: dInfo.PerformanceTestOptions, options: dInfo.PerformanceTestOptions,
} }
l.config, l.testCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
// Stats for volume provisioning operation // Stats for volume provisioning operation
// TODO: Add stats for attach, resize and snapshot // TODO: Add stats for attach, resize and snapshot

View File

@ -36,7 +36,6 @@ import (
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
storageframework "k8s.io/kubernetes/test/e2e/storage/framework" storageframework "k8s.io/kubernetes/test/e2e/storage/framework"
storageutils "k8s.io/kubernetes/test/e2e/storage/utils"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
admissionapi "k8s.io/pod-security-admission/api" admissionapi "k8s.io/pod-security-admission/api"
) )
@ -118,8 +117,7 @@ func skipTestIfBlockNotSupported(driver storageframework.TestDriver) {
func (t *volumesTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) { func (t *volumesTestSuite) DefineTests(driver storageframework.TestDriver, pattern storageframework.TestPattern) {
type local struct { type local struct {
config *storageframework.PerTestConfig config *storageframework.PerTestConfig
driverCleanup func()
resource *storageframework.VolumeResource resource *storageframework.VolumeResource
@ -137,7 +135,7 @@ func (t *volumesTestSuite) DefineTests(driver storageframework.TestDriver, patte
l = local{} l = local{}
// Now do the more expensive test initialization. // Now do the more expensive test initialization.
l.config, l.driverCleanup = driver.PrepareTest(f) l.config = driver.PrepareTest(f)
l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName) l.migrationCheck = newMigrationOpCheck(f.ClientSet, f.ClientConfig(), dInfo.InTreePluginName)
testVolumeSizeRange := t.GetTestSuiteInfo().SupportedSizeRange testVolumeSizeRange := t.GetTestSuiteInfo().SupportedSizeRange
l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange) l.resource = storageframework.CreateVolumeResource(driver, l.config, pattern, testVolumeSizeRange)
@ -153,8 +151,6 @@ func (t *volumesTestSuite) DefineTests(driver storageframework.TestDriver, patte
l.resource = nil l.resource = nil
} }
errs = append(errs, storageutils.TryFunc(l.driverCleanup))
l.driverCleanup = nil
framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource")
l.migrationCheck.validateMigrationVolumeOpCounts() l.migrationCheck.validateMigrationVolumeOpCounts()
} }