Add an option to modify timeout for namespace duration in e2e Framework

This commit is contained in:
gmarek 2015-09-24 10:02:07 +02:00
parent 795d6827c1
commit 1459a1523f
13 changed files with 25 additions and 17 deletions

View File

@ -82,7 +82,7 @@ var _ = Describe("Density", func() {
var additionalPodsPrefix string
var ns string
var uuid string
framework := Framework{BaseName: "density"}
framework := Framework{BaseName: "density", NamespaceDeletionTimeout: time.Hour}
BeforeEach(func() {
framework.beforeEach()

View File

@ -17,6 +17,8 @@ limitations under the License.
package e2e
import (
"time"
"k8s.io/kubernetes/pkg/api"
client "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/util"
@ -39,7 +41,7 @@ var _ = Describe("Docker Containers", func() {
})
AfterEach(func() {
if err := deleteNS(c, ns); err != nil {
if err := deleteNS(c, ns, 5*time.Minute /* namespace deletion timeout */); err != nil {
Failf("Couldn't delete ns %s", err)
}
})

View File

@ -63,7 +63,7 @@ var _ = Describe("Examples e2e", func() {
AfterEach(func() {
By(fmt.Sprintf("Destroying namespace for this suite %v", ns))
if err := deleteNS(c, ns); err != nil {
if err := deleteNS(c, ns, 5*time.Minute /* namespace deletion timeout */); err != nil {
Failf("Couldn't delete ns %s", err)
}
})
@ -458,7 +458,7 @@ var _ = Describe("Examples e2e", func() {
var err error
namespaces[i], err = createTestingNS(fmt.Sprintf("dnsexample%d", i), c)
if namespaces[i] != nil {
defer deleteNS(c, namespaces[i].Name)
defer deleteNS(c, namespaces[i].Name, 5*time.Minute /* namespace deletion timeout */)
}
Expect(err).NotTo(HaveOccurred())
}

View File

@ -36,8 +36,9 @@ import (
type Framework struct {
BaseName string
Namespace *api.Namespace
Client *client.Client
Namespace *api.Namespace
Client *client.Client
NamespaceDeletionTimeout time.Duration
}
// NewFramework makes a new framework and sets up a BeforeEach/AfterEach for
@ -101,7 +102,11 @@ func (f *Framework) afterEach() {
By(fmt.Sprintf("Destroying namespace %q for this suite.", f.Namespace.Name))
if err := deleteNS(f.Client, f.Namespace.Name); err != nil {
timeout := 5 * time.Minute
if f.NamespaceDeletionTimeout != 0 {
timeout = f.NamespaceDeletionTimeout
}
if err := deleteNS(f.Client, f.Namespace.Name, timeout); err != nil {
Failf("Couldn't delete ns %q: %s", f.Namespace.Name, err)
}
// Paranoia-- prevent reuse!

View File

@ -20,6 +20,7 @@ import (
"fmt"
"os"
"path"
"time"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/latest"
@ -53,7 +54,7 @@ var _ = Describe("hostPath", func() {
AfterEach(func() {
By(fmt.Sprintf("Destroying namespace for this suite %v", namespace.Name))
if err := deleteNS(c, namespace.Name); err != nil {
if err := deleteNS(c, namespace.Name, 5*time.Minute /* namespace deletion timeout */); err != nil {
Failf("Couldn't delete ns %s", err)
}
})

View File

@ -81,7 +81,7 @@ var _ = Describe("Kubectl client", func() {
AfterEach(func() {
By(fmt.Sprintf("Destroying namespace for this suite %v", ns))
if err := deleteNS(c, ns); err != nil {
if err := deleteNS(c, ns, 5*time.Minute /* namespace deletion timeout */); err != nil {
Failf("Couldn't delete ns %s", err)
}
})

View File

@ -53,7 +53,7 @@ var _ = Describe("Load capacity", func() {
var nodeCount int
var ns string
var configs []*RCConfig
framework := Framework{BaseName: "density"}
framework := Framework{BaseName: "load", NamespaceDeletionTimeout: time.Hour}
BeforeEach(func() {
framework.beforeEach()

View File

@ -47,7 +47,7 @@ var _ = Describe("[Skipped] persistentVolumes", func() {
AfterEach(func() {
By(fmt.Sprintf("Destroying namespace for this suite %v", ns))
if err := deleteNS(c, ns); err != nil {
if err := deleteNS(c, ns, 5*time.Minute /* namespace deletion timeout */); err != nil {
Failf("Couldn't delete ns %s", err)
}
})

View File

@ -402,7 +402,7 @@ var _ = Describe("Nodes", func() {
Failf("Not all nodes are ready: %v", err)
}
By(fmt.Sprintf("destroying namespace for this suite %s", ns))
if err := deleteNS(c, ns); err != nil {
if err := deleteNS(c, ns, 5*time.Minute /* namespace deletion timeout */); err != nil {
Failf("Couldn't delete namespace '%s', %v", ns, err)
}
if err := checkTestingNSDeletedExcept(c, ""); err != nil {

View File

@ -171,7 +171,7 @@ var _ = Describe("SchedulerPredicates", func() {
}
By(fmt.Sprintf("Destroying namespace for this suite %v", ns))
if err := deleteNS(c, ns); err != nil {
if err := deleteNS(c, ns, 10*time.Minute /* namespace deletion timeout */); err != nil {
Failf("Couldn't delete ns %s", err)
}
})

View File

@ -65,7 +65,7 @@ var _ = Describe("Services", func() {
AfterEach(func() {
for _, ns := range namespaces {
By(fmt.Sprintf("Destroying namespace %v", ns))
if err := deleteNS(c, ns); err != nil {
if err := deleteNS(c, ns, 5*time.Minute /* namespace deletion timeout */); err != nil {
Failf("Couldn't delete namespace %s: %s", ns, err)
}
}

View File

@ -531,12 +531,12 @@ func checkTestingNSDeletedExcept(c *client.Client, skip string) error {
// deleteNS deletes the provided namespace, waits for it to be completely deleted, and then checks
// whether there are any pods remaining in a non-terminating state.
func deleteNS(c *client.Client, namespace string) error {
func deleteNS(c *client.Client, namespace string, timeout time.Duration) error {
if err := c.Namespaces().Delete(namespace); err != nil {
return err
}
err := wait.Poll(5*time.Second, 5*time.Minute, func() (bool, error) {
err := wait.Poll(5*time.Second, timeout, func() (bool, error) {
if _, err := c.Namespaces().Get(namespace); err != nil {
if apierrs.IsNotFound(err) {
return true, nil

View File

@ -236,7 +236,7 @@ var _ = Describe("Volumes", func() {
AfterEach(func() {
if clean {
if err := deleteNS(c, namespace.Name); err != nil {
if err := deleteNS(c, namespace.Name, 5*time.Minute /* namespace deletion timeout */); err != nil {
Failf("Couldn't delete ns %s", err)
}
}