Switch to locking package

The locking logic was added to its own package as it may need to be used
by other parts of the code.

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
This commit is contained in:
Gabriel Adrian Samfira 2025-04-07 16:45:05 +00:00
parent e51f19acc8
commit 5ba53adf84
6 changed files with 131 additions and 62 deletions

View file

@ -41,6 +41,7 @@ import (
"github.com/cloudbase/garm/database"
"github.com/cloudbase/garm/database/common"
"github.com/cloudbase/garm/database/watcher"
"github.com/cloudbase/garm/locking"
"github.com/cloudbase/garm/metrics"
"github.com/cloudbase/garm/params"
"github.com/cloudbase/garm/runner" //nolint:typecheck
@ -214,6 +215,17 @@ func main() {
log.Fatal(err)
}
// Local locker for now. Will be configurable in the future,
// as we add scale-out capability to GARM.
lock, err := locking.NewLocalLocker(ctx, db)
if err != nil {
log.Fatalf("failed to create locker: %q", err)
}
if err := locking.RegisterLocker(lock); err != nil {
log.Fatalf("failed to register locker: %q", err)
}
if err := maybeUpdateURLsFromConfig(*cfg, db); err != nil {
log.Fatal(err)
}