From ab3ffe82fad0a8a7b534ac76899ea26738a61748 Mon Sep 17 00:00:00 2001 From: Nikolay Edigaryev Date: Wed, 1 Feb 2023 19:02:56 +0400 Subject: [PATCH] Remove janitor (#16) * Remove controller's janitor * Properly handle err == nil in mapErr() function --- internal/controller/controller.go | 9 ----- internal/controller/janitor.go | 52 ----------------------------- internal/controller/store/errors.go | 10 ++++-- 3 files changed, 7 insertions(+), 64 deletions(-) delete mode 100644 internal/controller/janitor.go diff --git a/internal/controller/controller.go b/internal/controller/controller.go index b894ced..087a673 100644 --- a/internal/controller/controller.go +++ b/internal/controller/controller.go @@ -79,15 +79,6 @@ func (controller *Controller) Run(ctx context.Context) error { } }() - // Run the janitor so that inactive workers - // will eventually be removed from the DB - go func() { - err := controller.runJanitor(controller.store) - if err != nil { - panic(err) - } - }() - // A helper function to shut down the HTTP server on context cancellation go func() { <-ctx.Done() diff --git a/internal/controller/janitor.go b/internal/controller/janitor.go deleted file mode 100644 index 27f437e..0000000 --- a/internal/controller/janitor.go +++ /dev/null @@ -1,52 +0,0 @@ -package controller - -import ( - storepkg "github.com/cirruslabs/orchard/internal/controller/store" - "github.com/cirruslabs/orchard/pkg/resource/v1" - "time" -) - -const janitorInterval = 5 * time.Second - -func (controller *Controller) runJanitor(store *storepkg.Store) error { - ticker := time.NewTicker(janitorInterval) - - for { - if err := controller.runJanitorInner(store); err != nil { - return err - } - - <-ticker.C - } -} - -func (controller *Controller) runJanitorInner(store *storepkg.Store) error { - var workers []*v1.Worker - var err error - - err = store.View(func(txn *storepkg.Txn) error { - workers, err = txn.ListWorkers() - - return err - }) - if err != nil { - return err - } - - for _, worker := range workers { - worker := worker - - if time.Since(worker.LastSeen).Minutes() > 1 { - controller.logger.Debugf("removing outdated worker %s", worker.Name) - - err := store.Update(func(txn *storepkg.Txn) error { - return txn.DeleteWorker(worker.Name) - }) - if err != nil { - return err - } - } - } - - return nil -} diff --git a/internal/controller/store/errors.go b/internal/controller/store/errors.go index a44827d..011e4f9 100644 --- a/internal/controller/store/errors.go +++ b/internal/controller/store/errors.go @@ -12,9 +12,13 @@ var ( ) func mapErr(err error) error { - if errors.Is(err, badger.ErrKeyNotFound) { - return ErrNotFound + if err != nil { + if errors.Is(err, badger.ErrKeyNotFound) { + return ErrNotFound + } + + return fmt.Errorf("%w: %v", ErrBadgerFailed, err) } - return fmt.Errorf("%w: %v", ErrBadgerFailed, err) + return err }