diff --git a/cmd/scan/control.go b/cmd/scan/control.go index 8c1c60f7..2e25e895 100644 --- a/cmd/scan/control.go +++ b/cmd/scan/control.go @@ -99,7 +99,7 @@ func getControlCmd(ks meta.IKubescape, scanInfo *cautils.ScanInfo) *cobra.Comman if err != nil { logger.L().Fatal(err.Error()) } - if err := results.HandleResults(ks.Context()); err != nil { + if err := results.HandleResults(ks.Context(), scanInfo); err != nil { logger.L().Fatal(err.Error()) } if !scanInfo.VerboseMode { diff --git a/cmd/scan/framework.go b/cmd/scan/framework.go index 73baa531..a1b6a39b 100644 --- a/cmd/scan/framework.go +++ b/cmd/scan/framework.go @@ -117,7 +117,7 @@ func getFrameworkCmd(ks meta.IKubescape, scanInfo *cautils.ScanInfo) *cobra.Comm logger.L().Fatal(err.Error()) } - if err = results.HandleResults(ks.Context()); err != nil { + if err = results.HandleResults(ks.Context(), scanInfo); err != nil { logger.L().Fatal(err.Error()) } diff --git a/cmd/scan/scan.go b/cmd/scan/scan.go index 2d2a0fa6..5ec5fe8c 100644 --- a/cmd/scan/scan.go +++ b/cmd/scan/scan.go @@ -139,7 +139,7 @@ func securityScan(scanInfo cautils.ScanInfo, ks meta.IKubescape) error { return err } - if err = results.HandleResults(ks.Context()); err != nil { + if err = results.HandleResults(ks.Context(), &scanInfo); err != nil { return err } diff --git a/cmd/scan/workload.go b/cmd/scan/workload.go index f69ad748..ae10af3b 100644 --- a/cmd/scan/workload.go +++ b/cmd/scan/workload.go @@ -70,7 +70,7 @@ func getWorkloadCmd(ks meta.IKubescape, scanInfo *cautils.ScanInfo) *cobra.Comma logger.L().Fatal(err.Error()) } - if err = results.HandleResults(ks.Context()); err != nil { + if err = results.HandleResults(ks.Context(), scanInfo); err != nil { logger.L().Fatal(err.Error()) } diff --git a/core/core/image_scan.go b/core/core/image_scan.go index 954583f7..e028e584 100644 --- a/core/core/image_scan.go +++ b/core/core/image_scan.go @@ -207,5 +207,5 @@ func (ks *Kubescape) ScanImage(imgScanInfo *ksmetav1.ImageScanInfo, scanInfo *ca }, } - return scanResults, resultsHandler.HandleResults(ks.Context()) + return scanResults, resultsHandler.HandleResults(ks.Context(), scanInfo) } diff --git a/core/core/patch.go b/core/core/patch.go index c3fe475e..5601f458 100644 --- a/core/core/patch.go +++ b/core/core/patch.go @@ -106,7 +106,7 @@ func (ks *Kubescape) Patch(patchInfo *ksmetav1.PatchInfo, scanInfo *cautils.Scan }, } - return scanResultsPatched, resultsHandler.HandleResults(ks.Context()) + return scanResultsPatched, resultsHandler.HandleResults(ks.Context(), scanInfo) } func disableCopaLogger() { diff --git a/core/pkg/resultshandling/results.go b/core/pkg/resultshandling/results.go index e6aae4af..a6afe27e 100644 --- a/core/pkg/resultshandling/results.go +++ b/core/pkg/resultshandling/results.go @@ -75,7 +75,7 @@ func (rh *ResultsHandler) GetResults() *reporthandlingv2.PostureReport { } // HandleResults handles all necessary actions for the scan results -func (rh *ResultsHandler) HandleResults(ctx context.Context) error { +func (rh *ResultsHandler) HandleResults(ctx context.Context, scanInfo *cautils.ScanInfo) error { // Display scan results in the UI first to give immediate value. rh.UiPrinter.ActionPrint(ctx, rh.ScanData, rh.ImageScanData) @@ -92,7 +92,7 @@ func (rh *ResultsHandler) HandleResults(ctx context.Context) error { // We should submit only after printing results, so a user can see // results at all times, even if submission fails - if rh.ReporterObj != nil { + if rh.ReporterObj != nil && scanInfo.Submit { if err := rh.ReporterObj.Submit(ctx, rh.ScanData); err != nil { return err } diff --git a/core/pkg/resultshandling/results_test.go b/core/pkg/resultshandling/results_test.go index 5f480e83..48e9bf85 100644 --- a/core/pkg/resultshandling/results_test.go +++ b/core/pkg/resultshandling/results_test.go @@ -50,7 +50,7 @@ func TestResultsHandlerHandleResultsPrintsResultsToUI(t *testing.T) { rh := NewResultsHandler(reporter, printers, uiPrinter) rh.SetData(fakeScanData) - err := rh.HandleResults(context.TODO()) + err := rh.HandleResults(context.TODO(), &cautils.ScanInfo{}) assert.NoError(t, err) want := 1 diff --git a/httphandler/handlerequests/v1/requestshandlerutils.go b/httphandler/handlerequests/v1/requestshandlerutils.go index 7f2d19bc..ec46d32c 100644 --- a/httphandler/handlerequests/v1/requestshandlerutils.go +++ b/httphandler/handlerequests/v1/requestshandlerutils.go @@ -83,7 +83,7 @@ func scan(ctx context.Context, scanInfo *cautils.ScanInfo, scanID string) (*repo if err != nil { return nil, writeScanErrorToFile(err, scanID) } - if err := result.HandleResults(ctx); err != nil { + if err := result.HandleResults(ctx, scanInfo); err != nil { return nil, err } storage := storage.GetStorage()