in internal/flavors/vulnerability.go [51:106]
func NewVulnerability(b *beat.Beat, cfg *agentconfig.C) (beat.Beater, error) {
log := clog.NewLogger("vulnerability")
// Override trivy's logger
scanLog := zap.New(log.Core()).Sugar()
dlog.SetLogger(scanLog)
xlog.SetLogger(scanLog)
tlog.SetDefault(slog.New(zapslog.NewHandler(log.Core())))
ctx, cancel := context.WithCancel(context.Background())
c, err := config.New(cfg)
if err != nil {
cancel()
return nil, fmt.Errorf("error reading config file: %w", err)
}
log.Info("Config initiated with cycle period of ", c.Period)
bdp, err := getAWSDataProvider(ctx, *c, log)
if err != nil {
cancel()
return nil, fmt.Errorf("failed to init common data provider: %w", err)
}
cdp, err := common.New(version.CloudbeatVersionInfo{Version: version.CloudbeatVersion()}, c)
if err != nil {
cancel()
return nil, err
}
client, err := NewClient(b.Publisher, c.Processors)
if err != nil {
cancel()
return nil, fmt.Errorf("failed to init client: %w", err)
}
log.Infof("vulnerability configured %d processors", len(c.Processors))
publisher := NewPublisher(log, flushInterval, eventsThreshold, client)
base := flavorBase{
ctx: ctx,
cancel: cancel,
publisher: publisher,
config: c,
log: log,
client: client,
}
bt := &vulnerability{
flavorBase: base,
bdp: bdp,
cdp: cdp,
}
return bt, nil
}