From da2b33de0eb1a2042b6f00422ccabdd8af5b6bd6 Mon Sep 17 00:00:00 2001 From: Jon Cope Date: Tue, 11 Apr 2017 13:57:34 -0500 Subject: [PATCH] De-flake Volume GCEPD test. Force detach of PD prior to deletion. --- test/e2e/storage/volumes.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/test/e2e/storage/volumes.go b/test/e2e/storage/volumes.go index abe91b7644c..7125bce1704 100644 --- a/test/e2e/storage/volumes.go +++ b/test/e2e/storage/volumes.go @@ -47,14 +47,14 @@ import ( "strings" "time" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" ) func DeleteCinderVolume(name string) error { @@ -518,7 +518,11 @@ var _ = framework.KubeDescribe("Volumes [Volume]", func() { volumeName, err := framework.CreatePDWithRetry() Expect(err).NotTo(HaveOccurred()) defer func() { - framework.ExpectNoError(framework.DeletePDWithRetry(volumeName)) + // - Get NodeName from the pod spec to which the volume is mounted. + // - Force detach and delete. + pod, err := f.PodClient().Get(config.Prefix+"-client", metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred(), "Failed getting pod %q.", config.Prefix+"-client") + detachAndDeletePDs(volumeName, []types.NodeName{types.NodeName(pod.Spec.NodeName)}) }() defer func() {