mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-12 15:50:15 -08:00
fix(server): use a new db worker for hot updates (#2581)
Co-authored-by: knqyf263 <knqyf263@gmail.com>
This commit is contained in:
26
pkg/db/db.go
26
pkg/db/db.go
@@ -149,15 +149,16 @@ func (c *Client) Download(ctx context.Context, dst string) error {
|
||||
log.Logger.Debug("no metadata file")
|
||||
}
|
||||
|
||||
if err := c.populateOCIArtifact(); err != nil {
|
||||
art, err := c.initOCIArtifact()
|
||||
if err != nil {
|
||||
return xerrors.Errorf("OCI artifact error: %w", err)
|
||||
}
|
||||
|
||||
if err := c.artifact.Download(ctx, db.Dir(dst)); err != nil {
|
||||
if err = art.Download(ctx, db.Dir(dst)); err != nil {
|
||||
return xerrors.Errorf("database download error: %w", err)
|
||||
}
|
||||
|
||||
if err := c.updateDownloadedAt(dst); err != nil {
|
||||
if err = c.updateDownloadedAt(dst); err != nil {
|
||||
return xerrors.Errorf("failed to update downloaded_at: %w", err)
|
||||
}
|
||||
return nil
|
||||
@@ -182,14 +183,15 @@ func (c *Client) updateDownloadedAt(dst string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Client) populateOCIArtifact() error {
|
||||
if c.artifact == nil {
|
||||
repo := fmt.Sprintf("%s:%d", c.dbRepository, db.SchemaVersion)
|
||||
art, err := oci.NewArtifact(repo, dbMediaType, c.quiet, c.insecureSkipTLSVerify)
|
||||
if err != nil {
|
||||
return xerrors.Errorf("OCI artifact error: %w", err)
|
||||
}
|
||||
c.artifact = art
|
||||
func (c *Client) initOCIArtifact() (*oci.Artifact, error) {
|
||||
if c.artifact != nil {
|
||||
return c.artifact, nil
|
||||
}
|
||||
return nil
|
||||
|
||||
repo := fmt.Sprintf("%s:%d", c.dbRepository, db.SchemaVersion)
|
||||
art, err := oci.NewArtifact(repo, dbMediaType, c.quiet, c.insecureSkipTLSVerify)
|
||||
if err != nil {
|
||||
return nil, xerrors.Errorf("OCI artifact error: %w", err)
|
||||
}
|
||||
return art, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user