From fda9680fc36170e4b6c97eeb65c8ee788ef63245 Mon Sep 17 00:00:00 2001 From: David Eads Date: Tue, 17 Sep 2019 14:51:22 -0400 Subject: [PATCH] dump namespace object in e2e when it doesn't get deleted --- test/e2e/framework/BUILD | 1 + test/e2e/framework/util.go | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index 76535a44eb6..95d55454bac 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -94,6 +94,7 @@ go_library( "//test/e2e/system:go_default_library", "//test/utils:go_default_library", "//test/utils/image:go_default_library", + "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/ginkgo/config:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 1200e998771..45075ab7cc4 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -40,6 +40,7 @@ import ( "syscall" "time" + "github.com/davecgh/go-spew/spew" "golang.org/x/net/websocket" "k8s.io/klog" @@ -871,8 +872,11 @@ func deleteNS(c clientset.Interface, dynamicClient dynamic.Interface, namespace } // wait for namespace to delete or timeout. + var lastNamespace *v1.Namespace err := wait.PollImmediate(2*time.Second, timeout, func() (bool, error) { - if _, err := c.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{}); err != nil { + var err error + lastNamespace, err = c.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{}) + if err != nil { if apierrs.IsNotFound(err) { return true, nil } @@ -902,6 +906,9 @@ func deleteNS(c clientset.Interface, dynamicClient dynamic.Interface, namespace // a timeout waiting for namespace deletion happened! if err != nil { + // namespaces now have conditions that are useful for debugging generic resources and finalizers + e2elog.Logf("namespace did not cleanup: %s", spew.Sdump(lastNamespace)) + // some content remains in the namespace if remainingContent { // pods remain