Change VolumeTestCleanup to not fail when pod already deleted

This commit is contained in:
David Zhu 2018-09-12 15:36:55 -07:00
parent ae8a046985
commit 304bb501b3
2 changed files with 16 additions and 25 deletions

View File

@ -507,21 +507,25 @@ func testPodSuccessOrFail(c clientset.Interface, ns string, pod *v1.Pod) error {
// Deletes the passed-in pod and waits for the pod to be terminated. Resilient to the pod // Deletes the passed-in pod and waits for the pod to be terminated. Resilient to the pod
// not existing. // not existing.
func DeletePodWithWait(f *Framework, c clientset.Interface, pod *v1.Pod) error { func DeletePodWithWait(f *Framework, c clientset.Interface, pod *v1.Pod) error {
if pod == nil { return DeletePodWithWaitByName(f, c, pod.GetName(), pod.GetNamespace())
return nil }
}
Logf("Deleting pod %q in namespace %q", pod.Name, pod.Namespace) // Deletes the named and namespaced pod and waits for the pod to be terminated. Resilient to the pod
err := c.CoreV1().Pods(pod.Namespace).Delete(pod.Name, nil) // not existing.
func DeletePodWithWaitByName(f *Framework, c clientset.Interface, podName, podNamespace string) error {
const maxWait = 5 * time.Minute
Logf("Deleting pod %q in namespace %q", podName, podNamespace)
err := c.CoreV1().Pods(podNamespace).Delete(podName, nil)
if err != nil { if err != nil {
if apierrs.IsNotFound(err) { if apierrs.IsNotFound(err) {
return nil // assume pod was already deleted return nil // assume pod was already deleted
} }
return fmt.Errorf("pod Delete API error: %v", err) return fmt.Errorf("pod Delete API error: %v", err)
} }
Logf("Wait up to %v for pod %q to be fully deleted", PodDeleteTimeout, pod.Name) Logf("Wait up to %v for pod %q to be fully deleted", maxWait, podName)
err = f.WaitForPodNotFound(pod.Name, PodDeleteTimeout) err = f.WaitForPodNotFound(podName, maxWait)
if err != nil { if err != nil {
return fmt.Errorf("pod %q was not deleted: %v", pod.Name, err) return fmt.Errorf("pod %q was not deleted: %v", podName, err)
} }
return nil return nil
} }

View File

@ -52,7 +52,6 @@ import (
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
"github.com/golang/glog"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
) )
@ -389,24 +388,12 @@ func VolumeTestCleanup(f *Framework, config VolumeTestConfig) {
cs := f.ClientSet cs := f.ClientSet
pod, err := cs.CoreV1().Pods(config.Namespace).Get(config.Prefix+"-client", metav1.GetOptions{}) err := DeletePodWithWaitByName(f, cs, config.Prefix+"-client", config.Namespace)
ExpectNoError(err, "Failed to get client pod: %v", err) Expect(err).To(BeNil(), "Failed to delete pod %v in namespace %v", config.Prefix+"-client", config.Namespace)
err = DeletePodWithWait(f, cs, pod)
if err != nil {
// Log the error before failing test: if the test has already failed,
// framework.ExpectNoError() won't print anything to logs!
glog.Warningf("Failed to delete client pod: %v", err)
ExpectNoError(err, "Failed to delete client pod: %v", err)
}
if config.ServerImage != "" { if config.ServerImage != "" {
pod, err := cs.CoreV1().Pods(config.Namespace).Get(config.Prefix+"-server", metav1.GetOptions{}) err := DeletePodWithWaitByName(f, cs, config.Prefix+"-server", config.Namespace)
ExpectNoError(err, "Failed to get server pod: %v", err) Expect(err).To(BeNil(), "Failed to delete pod %v in namespace %v", config.Prefix+"-server", config.Namespace)
err = DeletePodWithWait(f, cs, pod)
if err != nil {
glog.Warningf("Failed to delete server pod: %v", err)
ExpectNoError(err, "Failed to delete server pod: %v", err)
}
} }
} }