fix: changing default numWorkers, making it customizable and refactoring scheduler (#1563)

Signed-off-by: Lisca Ana-Roberta <ana.kagome@yahoo.com>
This commit is contained in:
Lisca Ana-Roberta
2023-07-04 11:03:29 +03:00
committed by GitHub
parent 7881ce32b2
commit d4f200c2e1
14 changed files with 101 additions and 29 deletions
+1 -1
View File
@@ -57,7 +57,7 @@ type taskGenerator struct {
done bool
}
func (gen *taskGenerator) GenerateTask() (scheduler.Task, error) {
func (gen *taskGenerator) Next() (scheduler.Task, error) {
repo, err := gen.imgStore.GetNextRepository(gen.lastRepo)
if err != nil && !errors.Is(err, io.EOF) {
+1 -1
View File
@@ -86,7 +86,7 @@ type TrivyTaskGenerator struct {
lock *sync.Mutex
}
func (gen *TrivyTaskGenerator) GenerateTask() (scheduler.Task, error) {
func (gen *TrivyTaskGenerator) Next() (scheduler.Task, error) {
var newTask scheduler.Task
gen.lock.Lock()
+11 -3
View File
@@ -5,6 +5,7 @@ package extensions_test
import (
"context"
"io"
"os"
"testing"
"time"
@@ -12,6 +13,7 @@ import (
ispec "github.com/opencontainers/image-spec/specs-go/v1"
. "github.com/smartystreets/goconvey/convey"
"zotregistry.io/zot/pkg/api/config"
. "zotregistry.io/zot/pkg/extensions"
cveinfo "zotregistry.io/zot/pkg/extensions/search/cve"
"zotregistry.io/zot/pkg/log"
@@ -30,8 +32,13 @@ func TestTrivyDBGenerator(t *testing.T) {
defer os.Remove(logFile.Name()) // clean up
logger := log.NewLogger("debug", logFile.Name())
sch := scheduler.NewScheduler(logger)
logger := log.NewLogger("debug", logPath)
writers := io.MultiWriter(os.Stdout, logFile)
logger.Logger = logger.Output(writers)
cfg := config.New()
cfg.Scheduler = &config.SchedulerConfig{NumWorkers: 3}
sch := scheduler.NewScheduler(cfg, logger)
repoDB := &mocks.RepoDBMock{
GetRepoMetaFn: func(repo string) (repodb.RepoMetadata, error) {
@@ -56,13 +63,14 @@ func TestTrivyDBGenerator(t *testing.T) {
sch.SubmitGenerator(generator, 12000*time.Millisecond, scheduler.HighPriority)
ctx, cancel := context.WithCancel(context.Background())
sch.RunScheduler(ctx)
defer cancel()
// Wait for trivy db to download
found, err := ReadLogFileAndCountStringOccurence(logPath,
"DB update completed, next update scheduled", 90*time.Second, 2)
"DB update completed, next update scheduled", 120*time.Second, 2)
So(err, ShouldBeNil)
So(found, ShouldBeTrue)
})
+1 -1
View File
@@ -88,7 +88,7 @@ func NewTaskGenerator(service Service, log log.Logger) *TaskGenerator {
}
}
func (gen *TaskGenerator) GenerateTask() (scheduler.Task, error) {
func (gen *TaskGenerator) Next() (scheduler.Task, error) {
if err := gen.Service.SetNextAvailableURL(); err != nil {
return nil, err
}