Remove cleanup helper
This commit is contained in:
parent
0197ea0dc4
commit
4a21dc17f4
3 changed files with 0 additions and 76 deletions
|
@ -66,9 +66,3 @@ func RunE2ETests(t *testing.T) {
|
||||||
framework.Logf("Starting e2e run %q on Ginkgo node %d", framework.RunID, config.GinkgoConfig.ParallelNode)
|
framework.Logf("Starting e2e run %q on Ginkgo node %d", framework.RunID, config.GinkgoConfig.ParallelNode)
|
||||||
ginkgo.RunSpecs(t, "nginx-ingress-controller e2e suite")
|
ginkgo.RunSpecs(t, "nginx-ingress-controller e2e suite")
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ = ginkgo.SynchronizedAfterSuite(func() {
|
|
||||||
// Run on all Ginkgo nodes
|
|
||||||
framework.Logf("Running AfterSuite actions on all nodes")
|
|
||||||
framework.RunCleanupActions()
|
|
||||||
}, func() {})
|
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2016 The Kubernetes Authors.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package framework
|
|
||||||
|
|
||||||
import "sync"
|
|
||||||
|
|
||||||
// CleanupActionHandle is a handle used to perform a cleanup action.
|
|
||||||
type CleanupActionHandle *int
|
|
||||||
|
|
||||||
var cleanupActionsLock sync.Mutex
|
|
||||||
var cleanupActions = map[CleanupActionHandle]func(){}
|
|
||||||
|
|
||||||
// AddCleanupAction installs a function that will be called in the event of the
|
|
||||||
// whole test being terminated. This allows arbitrary pieces of the overall
|
|
||||||
// test to hook into SynchronizedAfterSuite().
|
|
||||||
func AddCleanupAction(fn func()) CleanupActionHandle {
|
|
||||||
p := CleanupActionHandle(new(int))
|
|
||||||
cleanupActionsLock.Lock()
|
|
||||||
defer cleanupActionsLock.Unlock()
|
|
||||||
cleanupActions[p] = fn
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// RemoveCleanupAction removes a function that was installed by AddCleanupAction.
|
|
||||||
func RemoveCleanupAction(p CleanupActionHandle) {
|
|
||||||
cleanupActionsLock.Lock()
|
|
||||||
defer cleanupActionsLock.Unlock()
|
|
||||||
delete(cleanupActions, p)
|
|
||||||
}
|
|
||||||
|
|
||||||
// RunCleanupActions runs all functions installed by AddCleanupAction. It does
|
|
||||||
// not remove them (see RemoveCleanupAction) but it does run unlocked, so they
|
|
||||||
// may remove themselves.
|
|
||||||
func RunCleanupActions() {
|
|
||||||
list := []func(){}
|
|
||||||
func() {
|
|
||||||
cleanupActionsLock.Lock()
|
|
||||||
defer cleanupActionsLock.Unlock()
|
|
||||||
for _, fn := range cleanupActions {
|
|
||||||
list = append(list, fn)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
// Run unlocked.
|
|
||||||
for _, fn := range list {
|
|
||||||
fn()
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -58,11 +58,6 @@ type Framework struct {
|
||||||
KubeConfig *restclient.Config
|
KubeConfig *restclient.Config
|
||||||
APIExtensionsClientSet apiextcs.Interface
|
APIExtensionsClientSet apiextcs.Interface
|
||||||
|
|
||||||
// To make sure that this framework cleans up after itself, no matter what,
|
|
||||||
// we install a Cleanup action before each test and clear it after. If we
|
|
||||||
// should abort, the AfterSuite hook should run all Cleanup actions.
|
|
||||||
cleanupHandle CleanupActionHandle
|
|
||||||
|
|
||||||
Namespace string
|
Namespace string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,8 +76,6 @@ func NewDefaultFramework(baseName string) *Framework {
|
||||||
|
|
||||||
// BeforeEach gets a client and makes a namespace.
|
// BeforeEach gets a client and makes a namespace.
|
||||||
func (f *Framework) BeforeEach() {
|
func (f *Framework) BeforeEach() {
|
||||||
f.cleanupHandle = AddCleanupAction(f.AfterEach)
|
|
||||||
|
|
||||||
kubeConfig, err := restclient.InClusterConfig()
|
kubeConfig, err := restclient.InClusterConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err.Error())
|
panic(err.Error())
|
||||||
|
@ -110,8 +103,6 @@ func (f *Framework) BeforeEach() {
|
||||||
|
|
||||||
// AfterEach deletes the namespace, after reading its events.
|
// AfterEach deletes the namespace, after reading its events.
|
||||||
func (f *Framework) AfterEach() {
|
func (f *Framework) AfterEach() {
|
||||||
RemoveCleanupAction(f.cleanupHandle)
|
|
||||||
|
|
||||||
err := DeleteKubeNamespace(f.KubeClientSet, f.Namespace)
|
err := DeleteKubeNamespace(f.KubeClientSet, f.Namespace)
|
||||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue