From 2e4f7c4477586ac37a9db3d678e7c6cf00440fd2 Mon Sep 17 00:00:00 2001 From: Ruslan Semagin Date: Wed, 12 Feb 2025 08:43:47 +0300 Subject: [PATCH] fix: add error handling and context propagation Signed-off-by: Ruslan Semagin --- cmd/download/download.go | 2 -- cmd/root.go | 2 +- cmd/scan/framework.go | 4 +--- cmd/scan/scan.go | 6 +----- cmd/scan/workload.go | 4 +--- cmd/update/update.go | 9 +++++---- cmd/version/version.go | 5 ++++- 7 files changed, 13 insertions(+), 19 deletions(-) diff --git a/cmd/download/download.go b/cmd/download/download.go index 6cf769a7..bba2b609 100644 --- a/cmd/download/download.go +++ b/cmd/download/download.go @@ -73,9 +73,7 @@ func GetDownloadCmd(ks meta.IKubescape) *cobra.Command { downloadInfo.Target = args[0] if len(args) >= 2 { - downloadInfo.Identifier = args[1] - } if err := ks.Download(&downloadInfo); err != nil { logger.L().Fatal(err.Error()) diff --git a/cmd/root.go b/cmd/root.go index 38217c75..8e6b383c 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -96,7 +96,7 @@ func getRootCmd(ks meta.IKubescape) *cobra.Command { rootCmd.AddCommand(completion.GetCompletionCmd()) rootCmd.AddCommand(version.GetVersionCmd(ks)) rootCmd.AddCommand(config.GetConfigCmd(ks)) - rootCmd.AddCommand(update.GetUpdateCmd()) + rootCmd.AddCommand(update.GetUpdateCmd(ks)) rootCmd.AddCommand(fix.GetFixCmd(ks)) rootCmd.AddCommand(patch.GetPatchCmd(ks)) rootCmd.AddCommand(vap.GetVapHelperCmd()) diff --git a/cmd/scan/framework.go b/cmd/scan/framework.go index c23710c0..73baa531 100644 --- a/cmd/scan/framework.go +++ b/cmd/scan/framework.go @@ -1,7 +1,6 @@ package scan import ( - "context" "errors" "fmt" "io" @@ -113,13 +112,12 @@ func getFrameworkCmd(ks meta.IKubescape, scanInfo *cautils.ScanInfo) *cobra.Comm scanInfo.SetPolicyIdentifiers(frameworks, apisv1.KindFramework) - ctx := context.TODO() results, err := ks.Scan(scanInfo) if err != nil { logger.L().Fatal(err.Error()) } - if err = results.HandleResults(ctx); err != nil { + if err = results.HandleResults(ks.Context()); err != nil { logger.L().Fatal(err.Error()) } diff --git a/cmd/scan/scan.go b/cmd/scan/scan.go index 0d82a13a..2d2a0fa6 100644 --- a/cmd/scan/scan.go +++ b/cmd/scan/scan.go @@ -1,7 +1,6 @@ package scan import ( - "context" "flag" "fmt" "strings" @@ -135,15 +134,12 @@ func setSecurityViewScanInfo(args []string, scanInfo *cautils.ScanInfo) { } func securityScan(scanInfo cautils.ScanInfo, ks meta.IKubescape) error { - - ctx := context.TODO() - results, err := ks.Scan(&scanInfo) if err != nil { return err } - if err = results.HandleResults(ctx); err != nil { + if err = results.HandleResults(ks.Context()); err != nil { return err } diff --git a/cmd/scan/workload.go b/cmd/scan/workload.go index b8a9cfde..f69ad748 100644 --- a/cmd/scan/workload.go +++ b/cmd/scan/workload.go @@ -1,7 +1,6 @@ package scan import ( - "context" "errors" "fmt" "strings" @@ -66,13 +65,12 @@ func getWorkloadCmd(ks meta.IKubescape, scanInfo *cautils.ScanInfo) *cobra.Comma setWorkloadScanInfo(scanInfo, kind, name) // todo: add api version if provided - ctx := context.TODO() results, err := ks.Scan(scanInfo) if err != nil { logger.L().Fatal(err.Error()) } - if err = results.HandleResults(ctx); err != nil { + if err = results.HandleResults(ks.Context()); err != nil { logger.L().Fatal(err.Error()) } diff --git a/cmd/update/update.go b/cmd/update/update.go index 4275fce2..e86b7454 100644 --- a/cmd/update/update.go +++ b/cmd/update/update.go @@ -5,8 +5,8 @@ package update // kubescape update import ( - "context" "fmt" + "github.com/kubescape/kubescape/v3/core/meta" "strings" "github.com/kubescape/backend/pkg/versioncheck" @@ -25,17 +25,18 @@ var updateCmdExamples = fmt.Sprintf(` %[1]s update `, cautils.ExecName()) -func GetUpdateCmd() *cobra.Command { +func GetUpdateCmd(ks meta.IKubescape) *cobra.Command { updateCmd := &cobra.Command{ Use: "update", Short: "Update to latest release version", Long: ``, Example: updateCmdExamples, RunE: func(_ *cobra.Command, args []string) error { - ctx := context.TODO() v := versioncheck.NewVersionCheckHandler() versionCheckRequest := versioncheck.NewVersionCheckRequest("", versioncheck.BuildNumber, "", "", "update", nil) - v.CheckLatestVersion(ctx, versionCheckRequest) + if err := v.CheckLatestVersion(ks.Context(), versionCheckRequest); err != nil { + return err + } //Checking the user's version of kubescape to the latest release if versioncheck.BuildNumber == "" || strings.Contains(versioncheck.BuildNumber, "rc") { diff --git a/cmd/version/version.go b/cmd/version/version.go index 545e9c44..636944bb 100644 --- a/cmd/version/version.go +++ b/cmd/version/version.go @@ -16,7 +16,10 @@ func GetVersionCmd(ks meta.IKubescape) *cobra.Command { RunE: func(cmd *cobra.Command, args []string) error { v := versioncheck.NewIVersionCheckHandler(ks.Context()) versionCheckRequest := versioncheck.NewVersionCheckRequest("", versioncheck.BuildNumber, "", "", "version", nil) - v.CheckLatestVersion(ks.Context(), versionCheckRequest) + if err := v.CheckLatestVersion(ks.Context(), versionCheckRequest); err != nil { + return err + } + fmt.Fprintf(cmd.OutOrStdout(), "Your current version is: %s\n", versionCheckRequest.ClientVersion,