Files
trivy/pkg/k8s/table.go
Jose Donizetti 3ecc65d626 fix(k8s): summary report when when only vulns exit (#2146)
* fix(k8s): summary report when when only vulns exit

Signed-off-by: Jose Donizetti <jdbjunior@gmail.com>

* fix(k8s): return error for not supported report

Signed-off-by: Jose Donizetti <jdbjunior@gmail.com>

* test(k8s): add tests for report Failed()

Signed-off-by: Jose Donizetti <jdbjunior@gmail.com>

* refactor: improve error message

Signed-off-by: Jose Donizetti <jdbjunior@gmail.com>
2022-05-19 10:00:37 -03:00

48 lines
970 B
Go

package k8s
import (
"io"
dbTypes "github.com/aquasecurity/trivy-db/pkg/types"
"golang.org/x/xerrors"
pkgReport "github.com/aquasecurity/trivy/pkg/report"
)
type TableWriter struct {
Report string
Output io.Writer
Severities []dbTypes.Severity
}
func (tw TableWriter) Write(report Report) error {
switch tw.Report {
case allReport:
t := pkgReport.TableWriter{Output: tw.Output, Severities: tw.Severities}
for _, r := range report.Vulnerabilities {
if r.Report.Results.Failed() {
err := t.Write(r.Report)
if err != nil {
return err
}
}
}
for _, r := range report.Misconfigurations {
if r.Report.Results.Failed() {
err := t.Write(r.Report)
if err != nil {
return err
}
}
}
case summaryReport:
writer := NewSummaryWriter(tw.Output, tw.Severities)
return writer.Write(report)
default:
return xerrors.Errorf(`report %q not supported. Use "summary" or "all"`, tw.Report)
}
return nil
}