Skip to content

Commit

Permalink
Run tests for block vanilla concurrently and then destructive test se…
Browse files Browse the repository at this point in the history
…rially
  • Loading branch information
chethanv28 committed Jul 15, 2021
1 parent 4ef2dd0 commit 67f5b29
Show file tree
Hide file tree
Showing 21 changed files with 97 additions and 68 deletions.
11 changes: 9 additions & 2 deletions hack/run-e2e-test.sh
Expand Up @@ -54,12 +54,19 @@ fi
if [ "$FOCUS" == "csi-block-vanilla" ]
then
ginkgo -mod=mod "${OPTS[@]}" --focus="csi-block-vanilla-destructive" tests/e2e
# Checking for test status
# Checking for destructive test status
TEST_PASS=$?
if [[ $TEST_PASS -ne 0 ]]; then
exit 1
fi
ginkgo -mod=mod "${OPTS[@]}" --focus="csi-block-vanilla" tests/e2e
ginkgo -mod=mod "${OPTS[@]}" --focus="csi-block-vanilla-serialized" tests/e2e
# Checking for serialized test status
TEST_PASS=$?
if [[ $TEST_PASS -ne 0 ]]; then
exit 1
fi
OPTS+=(-p)
ginkgo -mod=mod "${OPTS[@]}" --focus="csi-block-vanilla-parallelized" tests/e2e
else
ginkgo -mod=mod "${OPTS[@]}" --focus="$FOCUS" tests/e2e
fi
Expand Down
3 changes: 2 additions & 1 deletion tests/e2e/csi_cns_telemetry.go
Expand Up @@ -34,7 +34,8 @@ import (
fpv "k8s.io/kubernetes/test/e2e/framework/pv"
)

var _ = ginkgo.Describe("[csi-block-vanilla] [csi-file-vanilla] CNS-CSI Cluster Distribution Telemetry", func() {
var _ = ginkgo.Describe("[csi-block-vanilla] [csi-file-vanilla] [csi-block-vanilla-parallelized] CNS-CSI Cluster Distribution Telemetry", func() {

f := framework.NewDefaultFramework("csi-cns-telemetry")
var (
client clientset.Interface
Expand Down
9 changes: 6 additions & 3 deletions tests/e2e/csi_cns_telemetry_statefulsets.go
Expand Up @@ -41,7 +41,7 @@ import (
// 7. Delete all PVCs from the tests namespace.
// 8. Delete the storage class.

var _ = ginkgo.Describe("[csi-block-vanilla] [csi-file-vanilla] [csi-supervisor] [csi-guest] "+
var _ = ginkgo.Describe("[csi-block-vanilla] [csi-file-vanilla] [csi-supervisor] [csi-guest] [csi-block-vanilla-parallelized] [SVC-Parallelized] "+
"CNS-CSI Cluster Distribution for StatefulSets", func() {
f := framework.NewDefaultFramework("csi-cns-telemetry")
var (
Expand All @@ -56,7 +56,8 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-file-vanilla] [csi-supervisor]
namespace = getNamespaceToRunTests(f)
client = f.ClientSet
bootstrap()
sc, err := client.StorageV1().StorageClasses().Get(ctx, storageclassname, metav1.GetOptions{})
scName := "nginx-sc-telemtery"
sc, err := client.StorageV1().StorageClasses().Get(ctx, scName, metav1.GetOptions{})
if err == nil && sc != nil {
gomega.Expect(client.StorageV1().StorageClasses().Delete(ctx, sc.Name, *metav1.NewDeleteOptions(0))).
NotTo(gomega.HaveOccurred())
Expand Down Expand Up @@ -116,7 +117,8 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-file-vanilla] [csi-supervisor]
}

ginkgo.By("Creating StorageClass for Statefulset")
scSpec := getVSphereStorageClassSpec(storageclassname, scParameters, nil, "", "", false)
scName := "nginx-sc-telemtery"
scSpec := getVSphereStorageClassSpec(scName, scParameters, nil, "", "", false)
sc, err := client.StorageV1().StorageClasses().Create(ctx, scSpec, metav1.CreateOptions{})
gomega.Expect(err).NotTo(gomega.HaveOccurred())
defer func() {
Expand All @@ -126,6 +128,7 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-file-vanilla] [csi-supervisor]

statefulset := GetStatefulSetFromManifest(namespace)
ginkgo.By("Creating statefulset")
statefulset.Spec.VolumeClaimTemplates[len(statefulset.Spec.VolumeClaimTemplates)-1].Annotations["volume.beta.kubernetes.io/storage-class"] = sc.Name
CreateStatefulSet(namespace, statefulset, client)
replicas := *(statefulset.Spec.Replicas)
// Waiting for pods status to be Ready.
Expand Down
4 changes: 2 additions & 2 deletions tests/e2e/csi_cns_telemetry_vc_reboot.go
Expand Up @@ -92,7 +92,7 @@ var _ bool = ginkgo.Describe("[csi-block-vanilla] [csi-file-vanilla] "+
// 13. Delete pod and Wait for Volume Disk to be detached from the Node.
// 14. Delete PVC, PV and Storage Class.

ginkgo.It("[csi-block-vanilla] [csi-file-vanilla] verify volume operations while vc reboot", func() {
ginkgo.It("[csi-block-vanilla] [csi-file-vanilla] [csi-block-vanilla-serialized] verify volume operations while vc reboot", func() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
var storageclass *storagev1.StorageClass
Expand Down Expand Up @@ -275,7 +275,7 @@ var _ bool = ginkgo.Describe("[csi-block-vanilla] [csi-file-vanilla] "+
// 12. Wait for Disk to be attached to the node.
// 13. Delete pod and Wait for Volume Disk to be detached from the Node.
// 14. Delete PVC, PV and Storage Class.
ginkgo.It("[csi-block-vanilla] [csi-file-vanilla] verify volume operations after vc reboots", func() {
ginkgo.It("[csi-block-vanilla] [csi-file-vanilla] [csi-block-vanilla-serialized] verify volume operations after vc reboots", func() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
var storageclass *storagev1.StorageClass
Expand Down
5 changes: 3 additions & 2 deletions tests/e2e/csi_static_provisioning_basic.go
Expand Up @@ -49,6 +49,7 @@ import (
)

var _ = ginkgo.Describe("Basic Static Provisioning", func() {

f := framework.NewDefaultFramework("e2e-csistaticprovision")

var (
Expand Down Expand Up @@ -268,7 +269,7 @@ var _ = ginkgo.Describe("Basic Static Provisioning", func() {
// 9. Verify volume is detached from the node.
// 10. Delete PVC.
// 11. Verify PV is deleted automatically.
ginkgo.It("[csi-block-vanilla] Verify basic static provisioning workflow", func() {
ginkgo.It("[csi-block-vanilla] [csi-block-vanilla-parallelized] Verify basic static provisioning workflow", func() {
var err error

ctx, cancel := context.WithCancel(context.Background())
Expand Down Expand Up @@ -375,7 +376,7 @@ var _ = ginkgo.Describe("Basic Static Provisioning", func() {
// 7. Wait for the volume entry to be created in CNS.
// 8. Delete PV2.
// 9. Wait for PV2 to be deleted, and also entry is deleted from CNS.
ginkgo.It("[csi-block-vanilla] Verify static provisioning workflow using same PV name twice", func() {
ginkgo.It("[csi-block-vanilla] [csi-block-vanilla-parallelized] Verify static provisioning workflow using same PV name twice", func() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()

Expand Down
3 changes: 2 additions & 1 deletion tests/e2e/data_persistence.go
Expand Up @@ -56,6 +56,7 @@ import (
// 11. Wait for volume to be detached.

var _ = ginkgo.Describe("Data Persistence", func() {

f := framework.NewDefaultFramework("e2e-data-persistence")
var (
client clientset.Interface
Expand Down Expand Up @@ -112,7 +113,7 @@ var _ = ginkgo.Describe("Data Persistence", func() {
}
})

ginkgo.It("[csi-block-vanilla] [csi-supervisor] [csi-guest] "+
ginkgo.It("[csi-block-vanilla] [csi-supervisor] [csi-guest] [csi-block-vanilla-parallelized] "+
"Should create and delete pod with the same volume source", func() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
Expand Down
12 changes: 6 additions & 6 deletions tests/e2e/fullsync_test_for_block_volume.go
Expand Up @@ -131,7 +131,7 @@ var _ bool = ginkgo.Describe("full-sync-test", func() {
}
})

ginkgo.It("[csi-block-vanilla] Verify CNS volume is created after full sync when pv entry is present", func() {
ginkgo.It("[csi-block-vanilla] [csi-block-vanilla-serialized] Verify CNS volume is created after full sync when pv entry is present", func() {
var err error

ctx, cancel := context.WithCancel(context.Background())
Expand Down Expand Up @@ -210,7 +210,7 @@ var _ bool = ginkgo.Describe("full-sync-test", func() {

})

ginkgo.It("[csi-supervisor] [csi-block-vanilla] "+
ginkgo.It("[csi-supervisor] [csi-block-vanilla] [csi-block-vanilla-serialized] "+
"Verify labels are created in CNS after updating pvc and/or pv with new labels", func() {
ginkgo.By("Invoking test to verify labels creation")
var sc *storagev1.StorageClass
Expand Down Expand Up @@ -299,7 +299,7 @@ var _ bool = ginkgo.Describe("full-sync-test", func() {

})

ginkgo.It("[csi-supervisor] [csi-block-vanilla] "+
ginkgo.It("[csi-supervisor] [csi-block-vanilla] [csi-block-vanilla-serialized] "+
"Verify CNS volume is deleted after full sync when pv entry is delete", func() {
ginkgo.By("Invoking test to verify CNS volume creation")
ctx, cancel := context.WithCancel(context.Background())
Expand Down Expand Up @@ -405,7 +405,7 @@ var _ bool = ginkgo.Describe("full-sync-test", func() {
// 9. verify that pvc labels for pvclaim[2] has been updated.
// 10. verify that pv labels for pvs[3] has been updated.
// 11. cleanup to remove pvs and pvcliams.
ginkgo.It("[csi-block-vanilla] Verify Multiple PVCs are deleted/updated after full sync", func() {
ginkgo.It("[csi-block-vanilla] [csi-block-vanilla-serialized] Verify Multiple PVCs are deleted/updated after full sync", func() {
sc, err := createStorageClass(client, nil, nil, v1.PersistentVolumeReclaimRetain, "", false, "")
gomega.Expect(err).NotTo(gomega.HaveOccurred())
ctx, cancel := context.WithCancel(context.Background())
Expand Down Expand Up @@ -520,7 +520,7 @@ var _ bool = ginkgo.Describe("full-sync-test", func() {
}
})

ginkgo.It("[csi-block-vanilla] Verify PVC metadata is created in CNS after PVC is created in k8s", func() {
ginkgo.It("[csi-block-vanilla] [csi-block-vanilla-serialized] Verify PVC metadata is created in CNS after PVC is created in k8s", func() {
var err error

ctx, cancel := context.WithCancel(context.Background())
Expand Down Expand Up @@ -600,7 +600,7 @@ var _ bool = ginkgo.Describe("full-sync-test", func() {
gomega.Expect(err).NotTo(gomega.HaveOccurred())
})

ginkgo.It("[csi-block-vanilla] Verify PVC metadata is deleted in CNS after PVC is deleted in k8s", func() {
ginkgo.It("[csi-block-vanilla] [csi-block-vanilla-serialized] Verify PVC metadata is deleted in CNS after PVC is deleted in k8s", func() {
var err error

ctx, cancel := context.WithCancel(context.Background())
Expand Down
21 changes: 10 additions & 11 deletions tests/e2e/labelupdates.go
Expand Up @@ -56,7 +56,8 @@ import (
- Delete PVC and StorageClass and verify volume is deleted from CNS.
*/

var _ bool = ginkgo.Describe("[csi-block-vanilla] label-updates", func() {
var _ bool = ginkgo.Describe("[csi-block-vanilla] [csi-block-vanilla-parallelized] label-updates", func() {

f := framework.NewDefaultFramework("e2e-volume-label-updates")
var (
client clientset.Interface
Expand Down Expand Up @@ -592,6 +593,7 @@ var _ bool = ginkgo.Describe("[csi-block-vanilla] label-updates", func() {
11. Delete SC
*/
ginkgo.It("[csi-supervisor] Verify label updates on PVC and PV attached to a stateful set.", func() {
scName := "nginx-sc-label-updates"
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// decide which test setup is available to run
Expand All @@ -603,10 +605,10 @@ var _ bool = ginkgo.Describe("[csi-block-vanilla] label-updates", func() {
profileID := e2eVSphere.GetSpbmPolicyID(storagePolicyName)
scParameters[scParamStoragePolicyID] = profileID
// create resource quota
createResourceQuota(client, namespace, rqLimit, storageclassname)
createResourceQuota(client, namespace, rqLimit, scName)
}
ginkgo.By("Creating StorageClass for Statefulset")
scSpec := getVSphereStorageClassSpec(storageclassname, scParameters, nil, "", "", false)
scSpec := getVSphereStorageClassSpec(scName, scParameters, nil, "", "", false)
sc, err := client.StorageV1().StorageClasses().Create(ctx, scSpec, metav1.CreateOptions{})
gomega.Expect(err).NotTo(gomega.HaveOccurred())
defer func() {
Expand All @@ -615,21 +617,18 @@ var _ bool = ginkgo.Describe("[csi-block-vanilla] label-updates", func() {
}()

ginkgo.By("Creating statefulset")
statefulset := fss.CreateStatefulSet(f.ClientSet, manifestPath, namespace)

statefulset := GetStatefulSetFromManifest(namespace)
statefulset.Spec.VolumeClaimTemplates[len(statefulset.Spec.VolumeClaimTemplates)-1].Annotations["volume.beta.kubernetes.io/storage-class"] = scName
CreateStatefulSet(namespace, statefulset, client)
defer func() {
ginkgo.By(fmt.Sprintf("Deleting all statefulsets in namespace: %v", namespace))
fss.DeleteAllStatefulSets(client, namespace)
if supervisorCluster {
ginkgo.By(fmt.Sprintf("Deleting service nginx in namespace: %v", namespace))
err := client.CoreV1().Services(namespace).Delete(ctx, servicename, *metav1.NewDeleteOptions(0))
gomega.Expect(err).NotTo(gomega.HaveOccurred())
}
}()

defer func() {
ginkgo.By(fmt.Sprintf("Deleting all statefulsets in namespace: %v", namespace))
fss.DeleteAllStatefulSets(client, namespace)
}()

replicas := *(statefulset.Spec.Replicas)
// Waiting for pods status to be Ready
fss.WaitForStatusReadyReplicas(f.ClientSet, statefulset, replicas)
Expand Down
5 changes: 3 additions & 2 deletions tests/e2e/operationstorm.go
Expand Up @@ -54,7 +54,8 @@ import (
10. Delete storage class.
*/

var _ = utils.SIGDescribe("[csi-block-vanilla] Volume Operations Storm", func() {
var _ = utils.SIGDescribe("[csi-block-vanilla] [csi-block-vanilla-parallelized] Volume Operations Storm", func() {

// TODO: Enable this test for WCP after it provides consistent results
f := framework.NewDefaultFramework("volume-ops-storm")
const defaultVolumeOpsScale = 30
Expand Down Expand Up @@ -225,7 +226,7 @@ var _ = utils.SIGDescribe("[csi-block-vanilla] Volume Operations Storm", func()
7. Delete Namespace and Wait for volumes to be deleted and Volume Disk to be detached from the Node.
*/

ginkgo.It("[csi-block-vanilla] [csi-file-vanilla] [csi-guest] Delete namespace to confirm all volumes and pods are deleted", func() {
ginkgo.It("[csi-block-vanilla] [csi-file-vanilla] [csi-guest] [csi-block-vanilla-parallelized] Delete namespace to confirm all volumes and pods are deleted", func() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
ginkgo.By(fmt.Sprintf("Running test with VOLUME_OPS_SCALE: %v", volumeOpsScale))
Expand Down
24 changes: 16 additions & 8 deletions tests/e2e/statefulsets.go
Expand Up @@ -55,7 +55,8 @@ const (
9. Delete the storage class.
*/

var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func() {
var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] [csi-block-vanilla-parallelized] statefulset", func() {

f := framework.NewDefaultFramework("e2e-vsphere-statefulset")
var (
namespace string
Expand Down Expand Up @@ -93,6 +94,7 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func
})

ginkgo.It("Statefulset testing with default podManagementPolicy", func() {
scName := "nginx-sc-default"
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
ginkgo.By("Creating StorageClass for Statefulset")
Expand All @@ -105,10 +107,10 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func
profileID := e2eVSphere.GetSpbmPolicyID(storagePolicyName)
scParameters[scParamStoragePolicyID] = profileID
// create resource quota
createResourceQuota(client, namespace, rqLimit, storageclassname)
createResourceQuota(client, namespace, rqLimit, scName)
}

scSpec := getVSphereStorageClassSpec(storageclassname, scParameters, nil, "", "", false)
scSpec := getVSphereStorageClassSpec(scName, scParameters, nil, "", "", false)
sc, err := client.StorageV1().StorageClasses().Create(ctx, scSpec, metav1.CreateOptions{})
gomega.Expect(err).NotTo(gomega.HaveOccurred())
defer func() {
Expand All @@ -123,6 +125,7 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func
}()
statefulset := GetStatefulSetFromManifest(namespace)
ginkgo.By("Creating statefulset")
statefulset.Spec.VolumeClaimTemplates[len(statefulset.Spec.VolumeClaimTemplates)-1].Annotations["volume.beta.kubernetes.io/storage-class"] = scName
CreateStatefulSet(namespace, statefulset, client)
replicas := *(statefulset.Spec.Replicas)
// Waiting for pods status to be Ready
Expand Down Expand Up @@ -266,6 +269,7 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func
9. Delete the storage class.
*/
ginkgo.It("Statefulset testing with parallel podManagementPolicy", func() {
scName := "nginx-sc-parallel"
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
ginkgo.By("Creating StorageClass for Statefulset")
Expand All @@ -275,13 +279,13 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func
scParameters = nil
} else {
ginkgo.By("Running for WCP setup")
profileID := e2eVSphere.GetSpbmPolicyID(storagePolicyName)
profileID := e2eVSphere.GetSpbmPolicyID(scName)
scParameters[scParamStoragePolicyID] = profileID
// create resource quota
createResourceQuota(client, namespace, rqLimit, storageclassname)
createResourceQuota(client, namespace, rqLimit, scName)
}

scSpec := getVSphereStorageClassSpec(storageclassname, scParameters, nil, "", "", false)
scSpec := getVSphereStorageClassSpec(scName, scParameters, nil, "", "", false)
sc, err := client.StorageV1().StorageClasses().Create(ctx, scSpec, metav1.CreateOptions{})
gomega.Expect(err).NotTo(gomega.HaveOccurred())
defer func() {
Expand All @@ -298,6 +302,7 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func
ginkgo.By("Updating replicas to 8 and podManagement Policy as Parallel")
*(statefulset.Spec.Replicas) = 8
statefulset.Spec.PodManagementPolicy = apps.ParallelPodManagement
statefulset.Spec.VolumeClaimTemplates[len(statefulset.Spec.VolumeClaimTemplates)-1].Annotations["volume.beta.kubernetes.io/storage-class"] = scName
ginkgo.By("Creating statefulset")
CreateStatefulSet(namespace, statefulset, client)
replicas := *(statefulset.Spec.Replicas)
Expand Down Expand Up @@ -440,6 +445,7 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func
11. delete statefulset and all PVC's and SC's
*/
ginkgo.It("Verify online volume expansion on statefulset", func() {
scName := "nginx-sc-expansion"
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
var pvcSizeBeforeExpansion int64
Expand All @@ -455,10 +461,10 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func
profileID := e2eVSphere.GetSpbmPolicyID(storagePolicyName)
scParameters[scParamStoragePolicyID] = profileID
// create resource quota
createResourceQuota(client, namespace, rqLimit, storageclassname)
createResourceQuota(client, namespace, rqLimit, scName)
}

scSpec := getVSphereStorageClassSpec(storageclassname, scParameters, nil, "", "", true)
scSpec := getVSphereStorageClassSpec(scName, scParameters, nil, "", "", true)
sc, err := client.StorageV1().StorageClasses().Create(ctx, scSpec, metav1.CreateOptions{})
gomega.Expect(err).NotTo(gomega.HaveOccurred())
defer func() {
Expand All @@ -473,6 +479,7 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func
}()
statefulset := GetStatefulSetFromManifest(namespace)
ginkgo.By("Creating statefulset")
statefulset.Spec.VolumeClaimTemplates[len(statefulset.Spec.VolumeClaimTemplates)-1].Annotations["volume.beta.kubernetes.io/storage-class"] = scName
CreateStatefulSet(namespace, statefulset, client)
replicas := *(statefulset.Spec.Replicas)
// Waiting for pods status to be Ready
Expand Down Expand Up @@ -525,6 +532,7 @@ var _ = ginkgo.Describe("[csi-block-vanilla] [csi-supervisor] statefulset", func

statefulset = GetResizedStatefulSetFromManifest(namespace)
ginkgo.By("Creating statefulset")
statefulset.Spec.VolumeClaimTemplates[len(statefulset.Spec.VolumeClaimTemplates)-1].Annotations["volume.beta.kubernetes.io/storage-class"] = scName
CreateStatefulSet(namespace, statefulset, client)
replicas = *(statefulset.Spec.Replicas)

Expand Down
5 changes: 3 additions & 2 deletions tests/e2e/storagepolicy.go
Expand Up @@ -48,7 +48,8 @@ import (
8. Delete PVC, PV and Storage Class
*/

var _ = ginkgo.Describe("[csi-block-vanilla] Storage Policy Based Volume Provisioning", func() {
var _ = ginkgo.Describe("[csi-block-vanilla] [csi-block-vanilla-parallelized] Storage Policy Based Volume Provisioning", func() {

f := framework.NewDefaultFramework("e2e-spbm-policy")
var (
client clientset.Interface
Expand Down Expand Up @@ -172,7 +173,7 @@ func verifyStoragePolicyBasedVolumeProvisioning(f *framework.Framework, client c
ginkgo.By("Waiting for claim to be in bound phase")
ginkgo.By("Expect claim to pass provisioning volume as shared datastore")
err = fpv.WaitForPersistentVolumeClaimPhase(v1.ClaimBound, client, pvclaim.Namespace, pvclaim.Name, framework.Poll, framework.ClaimProvisionTimeout)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
gomega.Expect(err).To(gomega.HaveOccurred())

pv := getPvFromClaim(client, pvclaim.Namespace, pvclaim.Name)
volumeID := pv.Spec.CSI.VolumeHandle
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e/svmotion_detached_volume.go
Expand Up @@ -45,7 +45,7 @@ import (
5. Invoke CNS Query API and validate datastore URL value changed correctly
*/

var _ = ginkgo.Describe("[csi-block-vanilla] Relocate detached volume ", func() {
var _ = ginkgo.Describe("[csi-block-vanilla] [csi-block-vanilla-parallelized] Relocate detached volume ", func() {
f := framework.NewDefaultFramework("svmotion-detached-disk")
var (
client clientset.Interface
Expand Down

0 comments on commit 67f5b29

Please sign in to comment.