-
Notifications
You must be signed in to change notification settings - Fork 14
Open
Description
Context
The function InitClient from package client:
| func InitClient() (*kubernetes.Clientset, error) { |
Actual behavior
// use sync.Once, so clientset can only init once
func InitClient() (*kubernetes.Clientset, error) {
var once sync.Once
var clientset *kubernetes.Clientset
once.Do(func() {
log.Print("start doInit()")
clientset, _ = doInit()
})
return clientset, nil
}Here, if the function once.Do failled because of doInit function, the error isn't catched.
Suggestion
// use sync.Once, so clientset can only init once
func InitClient() (*kubernetes.Clientset, error) {
var once sync.Once
var clientset *kubernetes.Clientset
var err error
once.Do(func() {
log.Print("start doInit()")
clientset, err = doInit()
})
if err != nil {
return nil, err
}
return clientset, nil
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels