fix(server): hot update the db from custom repository (#2406)

This commit is contained in:
afdesk
2022-06-27 16:45:48 +06:00
committed by GitHub
parent 57ed577459
commit e2c3bc4124
2 changed files with 15 additions and 13 deletions

View File

@@ -60,6 +60,6 @@ func run(c Option) (err error) {
} }
m.Register() m.Register()
server := rpcServer.NewServer(c.AppVersion, c.Listen, c.CacheDir, c.Token, c.TokenHeader) server := rpcServer.NewServer(c.AppVersion, c.Listen, c.CacheDir, c.Token, c.TokenHeader, c.DBRepository)
return server.ListenAndServe(cache, c.Insecure) return server.ListenAndServe(cache, c.Insecure)
} }

View File

@@ -26,21 +26,23 @@ const updateInterval = 1 * time.Hour
// Server represents Trivy server // Server represents Trivy server
type Server struct { type Server struct {
appVersion string appVersion string
addr string addr string
cacheDir string cacheDir string
token string token string
tokenHeader string tokenHeader string
dbRepository string
} }
// NewServer returns an instance of Server // NewServer returns an instance of Server
func NewServer(appVersion, addr, cacheDir, token, tokenHeader string) Server { func NewServer(appVersion, addr, cacheDir, token, tokenHeader, dbRepository string) Server {
return Server{ return Server{
appVersion: appVersion, appVersion: appVersion,
addr: addr, addr: addr,
cacheDir: cacheDir, cacheDir: cacheDir,
token: token, token: token,
tokenHeader: tokenHeader, tokenHeader: tokenHeader,
dbRepository: dbRepository,
} }
} }
@@ -50,7 +52,7 @@ func (s Server) ListenAndServe(serverCache cache.Cache, insecure bool) error {
dbUpdateWg := &sync.WaitGroup{} dbUpdateWg := &sync.WaitGroup{}
go func() { go func() {
worker := newDBWorker(dbc.NewClient(s.cacheDir, true, insecure)) worker := newDBWorker(dbc.NewClient(s.cacheDir, true, insecure, dbc.WithDBRepository(s.dbRepository)))
ctx := context.Background() ctx := context.Background()
for { for {
time.Sleep(updateInterval) time.Sleep(updateInterval)