Init initializes image vulnerability database.
(name, version string)
| 82 | |
| 83 | // Init initializes image vulnerability database. |
| 84 | func (s *imageScanner) Init(name, version string) { |
| 85 | defer func(t time.Time) { |
| 86 | slog.Debug("VulDb initialization complete", |
| 87 | slogs.Elapsed, time.Since(t), |
| 88 | ) |
| 89 | }(time.Now()) |
| 90 | |
| 91 | opts := options.DefaultGrype(clio.Identification{Name: name, Version: version}) |
| 92 | opts.GenerateMissingCPEs = true |
| 93 | |
| 94 | provider, status, err := grype.LoadVulnerabilityDB( |
| 95 | opts.ToClientConfig(), |
| 96 | opts.ToCuratorConfig(), |
| 97 | opts.DB.AutoUpdate, |
| 98 | ) |
| 99 | if err != nil { |
| 100 | s.log.Error("VulDb load failed", slogs.Error, err) |
| 101 | return |
| 102 | } |
| 103 | s.mx.Lock() |
| 104 | s.opts, s.provider, s.status = opts, provider, status |
| 105 | s.mx.Unlock() |
| 106 | |
| 107 | if e := validateDBLoad(err, status); e != nil { |
| 108 | s.log.Error("VulDb validate failed", slogs.Error, e) |
| 109 | return |
| 110 | } |
| 111 | |
| 112 | s.mx.Lock() |
| 113 | s.initialized = true |
| 114 | s.mx.Unlock() |
| 115 | slog.Debug("VulDB initialized") |
| 116 | } |
| 117 | |
| 118 | // Stop closes scan database. |
| 119 | func (s *imageScanner) Stop() { |
nothing calls this directly
no test coverage detected