mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 21:30:16 +00:00 
			
		
		
		
	This fixes golint failures on the following files: - test/e2e/framework/authorizer_util.go - test/e2e/framework/cleanup.go - test/e2e/framework/create.go
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| /*
 | |
| 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 an integer pointer type for handling 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()
 | |
| 	}
 | |
| }
 |