mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 02:41:25 +00:00
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:
parent
83415e5c9e
commit
d8d3dc9476
@ -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()
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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 {
|
||||||
|
4
test/e2e/storage/external/external.go
vendored
4
test/e2e/storage/external/external.go
vendored
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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.
|
||||||
|
@ -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{})
|
||||||
|
@ -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
|
||||||
|
@ -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")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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")
|
||||||
}
|
}
|
||||||
|
@ -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")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
@ -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())
|
||||||
|
@ -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,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
@ -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()
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
@ -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 != "" {
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user