diff --git a/cmd/scan/control.go b/cmd/scan/control.go index 0c87b58b..9f6eb48e 100644 --- a/cmd/scan/control.go +++ b/cmd/scan/control.go @@ -14,7 +14,6 @@ import ( "github.com/kubescape/kubescape/v2/core/cautils" "github.com/kubescape/kubescape/v2/core/meta" - "github.com/enescakir/emoji" "github.com/spf13/cobra" ) @@ -106,7 +105,7 @@ func getControlCmd(ks meta.IKubescape, scanInfo *cautils.ScanInfo) *cobra.Comman logger.L().Fatal(err.Error()) } if !scanInfo.VerboseMode { - cautils.SimpleDisplay(os.Stderr, "%s Run with '--verbose'/'-v' flag for detailed resources view\n\n", emoji.Detective) + logger.L().Info("Run with '--verbose'/'-v' flag for detailed resources view\n") } if results.GetRiskScore() > float32(scanInfo.FailThreshold) { logger.L().Fatal("scan risk-score is above permitted threshold", helpers.String("risk-score", fmt.Sprintf("%.2f", results.GetRiskScore())), helpers.String("fail-threshold", fmt.Sprintf("%.2f", scanInfo.FailThreshold))) diff --git a/cmd/scan/framework.go b/cmd/scan/framework.go index a5bca491..dc751df1 100644 --- a/cmd/scan/framework.go +++ b/cmd/scan/framework.go @@ -119,7 +119,7 @@ func getFrameworkCmd(ks meta.IKubescape, scanInfo *cautils.ScanInfo) *cobra.Comm logger.L().Fatal(err.Error()) } if !scanInfo.VerboseMode { - cautils.SimpleDisplay(os.Stderr, "Run with '--verbose'/'-v' flag for detailed resources view\n\n") + logger.L().Info("Run with '--verbose'/'-v' flag for detailed resources view\n") } if results.GetRiskScore() > float32(scanInfo.FailThreshold) { logger.L().Fatal("scan risk-score is above permitted threshold", helpers.String("risk-score", fmt.Sprintf("%.2f", results.GetRiskScore())), helpers.String("fail-threshold", fmt.Sprintf("%.2f", scanInfo.FailThreshold))) diff --git a/cmd/scan/scan.go b/cmd/scan/scan.go index 99b7e301..6f3a77d7 100644 --- a/cmd/scan/scan.go +++ b/cmd/scan/scan.go @@ -43,7 +43,7 @@ func GetScanCommand(ks meta.IKubescape) *cobra.Command { Args: func(cmd *cobra.Command, args []string) error { if len(args) > 0 { if args[0] != "framework" && args[0] != "control" { - return getFrameworkCmd(ks, &scanInfo).RunE(cmd, append([]string{"all"}, args...)) + return getFrameworkCmd(ks, &scanInfo).RunE(cmd, append([]string{strings.Join(getter.NativeFrameworks, ",")}, args...)) } } return nil diff --git a/core/cautils/display.go b/core/cautils/display.go index 3737969b..0cc8b64b 100644 --- a/core/cautils/display.go +++ b/core/cautils/display.go @@ -6,6 +6,8 @@ import ( spinnerpkg "github.com/briandowns/spinner" "github.com/fatih/color" + logger "github.com/kubescape/go-logger" + "github.com/kubescape/go-logger/helpers" "github.com/mattn/go-isatty" "github.com/schollz/progressbar/v3" ) @@ -22,6 +24,10 @@ var DescriptionDisplay = color.New(color.Faint, color.FgWhite).FprintfFunc() var spinner *spinnerpkg.Spinner func StartSpinner() { + if helpers.ToLevel(logger.L().GetLevel()) >= helpers.WarningLevel { + return + } + if spinner != nil { if !spinner.Active() { spinner.Start() @@ -42,8 +48,8 @@ func StopSpinner() { } type ProgressHandler struct { - title string pb *progressbar.ProgressBar + title string } func NewProgressHandler(title string) *ProgressHandler { @@ -51,11 +57,11 @@ func NewProgressHandler(title string) *ProgressHandler { } func (p *ProgressHandler) Start(allSteps int) { - if isatty.IsTerminal(os.Stderr.Fd()) { - p.pb = progressbar.Default(int64(allSteps), p.title) - } else { + if !isatty.IsTerminal(os.Stderr.Fd()) || helpers.ToLevel(logger.L().GetLevel()) >= helpers.WarningLevel { p.pb = progressbar.DefaultSilent(int64(allSteps), p.title) + return } + p.pb = progressbar.Default(int64(allSteps), p.title) } func (p *ProgressHandler) ProgressJob(step int, message string) { diff --git a/core/cautils/display_test.go b/core/cautils/display_test.go new file mode 100644 index 00000000..85bb7533 --- /dev/null +++ b/core/cautils/display_test.go @@ -0,0 +1,32 @@ +package cautils + +import ( + "testing" + + "github.com/kubescape/go-logger" +) + +func TestStartSpinner(t *testing.T) { + tests := []struct { + name string + loggerLevel string + enabled bool + }{ + { + name: "TestStartSpinner - disabled", + loggerLevel: "warning", + enabled: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + logger.L().SetLevel(tt.loggerLevel) + StartSpinner() + if !tt.enabled { + if spinner != nil { + t.Errorf("spinner should be nil") + } + } + }) + } +} diff --git a/core/core/scan.go b/core/core/scan.go index 56dc29c4..54a27ac9 100644 --- a/core/core/scan.go +++ b/core/core/scan.go @@ -124,6 +124,7 @@ func (ks *Kubescape) Scan(ctx context.Context, scanInfo *cautils.ScanInfo) (*res logger.L().Info("Kubescape scanner starting") // ===================== Initialization ===================== + scanInfo.Init(ctxInit) // initialize scan info interfaces := getInterfaces(ctxInit, scanInfo) diff --git a/core/pkg/resultshandling/reporter/v2/reporteventreceiver.go b/core/pkg/resultshandling/reporter/v2/reporteventreceiver.go index 6ee48732..4b89cacb 100644 --- a/core/pkg/resultshandling/reporter/v2/reporteventreceiver.go +++ b/core/pkg/resultshandling/reporter/v2/reporteventreceiver.go @@ -70,16 +70,14 @@ func (report *ReportEventReceiver) Submit(ctx context.Context, opaSessionObj *ca return nil } - err := report.prepareReport(opaSessionObj) - if err == nil { - report.generateMessage() - } else { - err = fmt.Errorf("failed to submit scan results. url: '%s', reason: %s", report.GetURL(), err.Error()) + if err := report.prepareReport(opaSessionObj); err != nil { + return fmt.Errorf("failed to submit scan results. url: '%s', reason: %s", report.GetURL(), err.Error()) } + report.generateMessage() logger.L().Debug("", helpers.String("account ID", report.customerGUID)) - return err + return nil } func (report *ReportEventReceiver) SetCustomerGUID(customerGUID string) { @@ -258,7 +256,9 @@ func (report *ReportEventReceiver) generateMessage() { } func (report *ReportEventReceiver) DisplayReportURL() { - if report.message != "" { + + // print if logger level is lower than warning (debug/info) + if report.message != "" && helpers.ToLevel(logger.L().GetLevel()) < helpers.WarningLevel { cautils.InfoTextDisplay(os.Stderr, fmt.Sprintf("\n\n%s\n\n", report.message)) } } diff --git a/httphandler/handlerequests/v1/requestshandlerutils.go b/httphandler/handlerequests/v1/requestshandlerutils.go index f38cc73b..51b0be0e 100644 --- a/httphandler/handlerequests/v1/requestshandlerutils.go +++ b/httphandler/handlerequests/v1/requestshandlerutils.go @@ -62,6 +62,8 @@ func scan(ctx context.Context, scanInfo *cautils.ScanInfo, scanID string) (*repo ks := core.NewKubescape() spanScan.AddEvent("scanning metadata", + trace.WithAttributes(attribute.String("version", cautils.BuildNumber)), + trace.WithAttributes(attribute.String("build", cautils.Client)), trace.WithAttributes(attribute.String("scanID", scanInfo.ScanID)), trace.WithAttributes(attribute.Bool("scanAll", scanInfo.ScanAll)), trace.WithAttributes(attribute.Bool("HostSensorEnabled", scanInfo.HostSensorEnabled.GetBool())),