diff --git a/cmd/find/problems.go b/cmd/find/problems.go index c933b84..37cdc9e 100644 --- a/cmd/find/problems.go +++ b/cmd/find/problems.go @@ -8,9 +8,9 @@ import ( "os" "github.com/fatih/color" + "github.com/k8sgpt-ai/k8sgpt/pkg/ai" "github.com/k8sgpt-ai/k8sgpt/pkg/analyzer" - "github.com/k8sgpt-ai/k8sgpt/pkg/client" - "github.com/k8sgpt-ai/k8sgpt/pkg/openai" + "github.com/k8sgpt-ai/k8sgpt/pkg/kubernetes" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -26,7 +26,7 @@ var problemsCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { // Initialise the openAI client - openAIClient, err := openai.NewClient() + openAIClient, err := ai.NewClient() if err != nil { color.Red("Error: %v", err) os.Exit(1) @@ -34,9 +34,12 @@ var problemsCmd = &cobra.Command{ ctx := context.Background() // Get kubernetes client from viper - client := viper.Get("kubernetesClient").(*client.Client) + client := viper.Get("kubernetesClient").(*kubernetes.Client) - analyzer.RunAnalysis(ctx, client, openAIClient, explain) + if err := analyzer.RunAnalysis(ctx, client, openAIClient, explain); err != nil { + color.Red("Error: %v", err) + os.Exit(1) + } }, } diff --git a/cmd/root.go b/cmd/root.go index 48392fe..b458de1 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -9,7 +9,7 @@ import ( "github.com/fatih/color" "github.com/k8sgpt-ai/k8sgpt/cmd/auth" "github.com/k8sgpt-ai/k8sgpt/cmd/find" - "github.com/k8sgpt-ai/k8sgpt/pkg/client" + "github.com/k8sgpt-ai/k8sgpt/pkg/kubernetes" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -56,7 +56,7 @@ func init() { rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") //Initialise the kubeconfig - kubernetesClient, err := client.NewClient(masterURL, kubeconfig) + kubernetesClient, err := kubernetes.NewClient(masterURL, kubeconfig) if err != nil { color.Red("Error initialising kubernetes client: %v", err) } diff --git a/pkg/openai/openai.go b/pkg/ai/ai.go similarity index 98% rename from pkg/openai/openai.go rename to pkg/ai/ai.go index 30cd69e..2e44e70 100644 --- a/pkg/openai/openai.go +++ b/pkg/ai/ai.go @@ -1,4 +1,4 @@ -package openai +package ai import ( "context" diff --git a/pkg/analyzer/analyzer.go b/pkg/analyzer/analyzer.go index 5989a28..c4ec6b5 100644 --- a/pkg/analyzer/analyzer.go +++ b/pkg/analyzer/analyzer.go @@ -3,24 +3,22 @@ package analyzer import ( "context" "fmt" - "os" "strings" "time" "github.com/briandowns/spinner" "github.com/fatih/color" - "github.com/k8sgpt-ai/k8sgpt/pkg/client" - ai "github.com/k8sgpt-ai/k8sgpt/pkg/openai" + "github.com/k8sgpt-ai/k8sgpt/pkg/ai" + "github.com/k8sgpt-ai/k8sgpt/pkg/kubernetes" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func RunAnalysis(ctx context.Context, client *client.Client, openAIClient *ai.Client, explain bool) { +func RunAnalysis(ctx context.Context, client *kubernetes.Client, aiClient *ai.Client, explain bool) error { // search all namespaces for pods that are not running list, err := client.GetClient().CoreV1().Pods("").List(ctx, metav1.ListOptions{}) if err != nil { - color.Red("Error: %v", err) - os.Exit(1) + return err } var brokenPods = map[string][]string{} @@ -59,14 +57,15 @@ func RunAnalysis(ctx context.Context, client *client.Client, openAIClient *ai.Cl s := spinner.New(spinner.CharSets[35], 100*time.Millisecond) // Build our new spinner s.Start() - response, err := openAIClient.GetCompletion(ctx, strings.Join(value, " ")) + response, err := aiClient.GetCompletion(ctx, strings.Join(value, " ")) s.Stop() if err != nil { - color.Red("Error: %v", err) - return + return err } fmt.Printf("%s\n", color.GreenString(response)) } } + + return nil } diff --git a/pkg/client/client.go b/pkg/kubernetes/kubernetes.go similarity index 97% rename from pkg/client/client.go rename to pkg/kubernetes/kubernetes.go index dbc9db9..8d589aa 100644 --- a/pkg/client/client.go +++ b/pkg/kubernetes/kubernetes.go @@ -1,4 +1,4 @@ -package client +package kubernetes import ( "k8s.io/client-go/kubernetes"