From 13ef3e7d62ba2bcb3a04d7b44f79b1299674b480 Mon Sep 17 00:00:00 2001 From: DmitriyLewen <91113035+DmitriyLewen@users.noreply.github.com> Date: Thu, 26 Sep 2024 23:26:50 +0600 Subject: [PATCH] fix(db): check `DownloadedAt` for `trivy-java-db` (#7592) --- pkg/javadb/client.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkg/javadb/client.go b/pkg/javadb/client.go index ca055a0c333f..936c2d40c028 100644 --- a/pkg/javadb/client.go +++ b/pkg/javadb/client.go @@ -53,7 +53,7 @@ func (u *Updater) Update() error { } } - if (meta.Version != SchemaVersion || meta.NextUpdate.Before(time.Now().UTC())) && !u.skip { + if (meta.Version != SchemaVersion || !u.isNewDB(meta)) && !u.skip { // Download DB log.Info("Java DB Repository", log.Any("repository", u.repo)) log.Info("Downloading the Java DB...") @@ -85,6 +85,20 @@ func (u *Updater) Update() error { return nil } +func (u *Updater) isNewDB(meta db.Metadata) bool { + now := time.Now().UTC() + if now.Before(meta.NextUpdate) { + log.Debug("Java DB update was skipped because the local Java DB is the latest") + return true + } + + if now.Before(meta.DownloadedAt.Add(time.Hour * 24)) { // 1 day + log.Debug("Java DB update was skipped because the local Java DB was downloaded during the last day") + return true + } + return false +} + func Init(cacheDir string, javaDBRepository name.Reference, skip, quiet bool, registryOption ftypes.RegistryOptions) { updater = &Updater{ repo: javaDBRepository,