mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Remove panic from kubernetes client
Rather than panic, just grab and display the error
This commit is contained in:
parent
8cf50fe92c
commit
e9014ecb19
@ -10,6 +10,7 @@ import (
|
||||
)
|
||||
|
||||
var kubeClient *clientInstance
|
||||
var kubeError error
|
||||
var clientOnce sync.Once
|
||||
|
||||
type clientInstance struct {
|
||||
@ -17,26 +18,30 @@ type clientInstance struct {
|
||||
}
|
||||
|
||||
// getInstance returns a Kubernetes interface for a clientset
|
||||
func (widget *Widget) getInstance() *clientInstance {
|
||||
func (widget *Widget) getInstance() (*clientInstance, error) {
|
||||
clientOnce.Do(func() {
|
||||
if kubeClient == nil {
|
||||
client, err := widget.getKubeClient()
|
||||
if err != nil {
|
||||
kubeError = err
|
||||
}
|
||||
kubeClient = &clientInstance{
|
||||
Client: widget.getKubeClient(),
|
||||
Client: client,
|
||||
}
|
||||
}
|
||||
})
|
||||
return kubeClient
|
||||
return kubeClient, kubeError
|
||||
}
|
||||
|
||||
// getKubeClient returns a kubernetes clientset for the kubeconfig provided
|
||||
func (widget *Widget) getKubeClient() kubernetes.Interface {
|
||||
func (widget *Widget) getKubeClient() (kubernetes.Interface, error) {
|
||||
config, err := clientcmd.BuildConfigFromFlags("", widget.kubeconfig)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return nil, err
|
||||
}
|
||||
clientset, err := kubernetes.NewForConfig(config)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return nil, err
|
||||
}
|
||||
return clientset
|
||||
return clientset, nil
|
||||
}
|
||||
|
@ -41,7 +41,12 @@ func NewWidget(app *tview.Application, settings *Settings) *Widget {
|
||||
// Refresh executes the command and updates the view with the results
|
||||
func (widget *Widget) Refresh() {
|
||||
title := widget.generateTitle()
|
||||
client := widget.getInstance()
|
||||
client, err := widget.getInstance()
|
||||
|
||||
if err != nil {
|
||||
widget.Redraw(func() (string, string, bool) { return title, err.Error(), true })
|
||||
return
|
||||
}
|
||||
|
||||
var content string
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user