Skip to content
This repository has been archived by the owner on Nov 1, 2024. It is now read-only.

Commit

Permalink
chore(syncer): sync collections only when leader
Browse files Browse the repository at this point in the history
  • Loading branch information
paulbes committed Aug 28, 2024
1 parent 9fc5097 commit 54253b5
Showing 1 changed file with 32 additions and 8 deletions.
40 changes: 32 additions & 8 deletions pkg/syncers/metabase_collections/metabase_collections.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import (
"strings"
"time"

"github.com/navikt/nada-backend/pkg/leaderelection"

"github.com/navikt/nada-backend/pkg/errs"
"github.com/navikt/nada-backend/pkg/service"
"github.com/rs/zerolog"
Expand All @@ -21,15 +23,26 @@ type Syncer struct {
func (s *Syncer) Run(ctx context.Context) {
ticker := time.NewTicker(s.syncInterval)

// Delay a little before starting
time.Sleep(60 * time.Second)
isLeader, err := leaderelection.IsLeader()
if err != nil {
return
}

// Do an initial sync
s.log.Info().Msg("running initial metabase collections syncer")
if isLeader {
// Delay a little before starting
time.Sleep(60 * time.Second)

err := s.AddRestrictedTagToCollections(ctx)
if err != nil {
s.log.Error().Fields(map[string]interface{}{"stack": errs.OpStack(err)}).Err(err).Msg("adding restricted tag to collections")
// Do an initial sync
s.log.Info().Msg("running initial metabase collections syncer")

err = s.AddRestrictedTagToCollections(ctx)
if err != nil {
s.log.Error().Fields(map[string]interface{}{"stack": errs.OpStack(err)}).Err(err).Msg("adding restricted tag to collections")
}
}

if !isLeader {
s.log.Info().Msg("not leader, skipping metabase collections sync")
}

defer ticker.Stop()
Expand All @@ -41,7 +54,18 @@ func (s *Syncer) Run(ctx context.Context) {
case <-ticker.C:
s.log.Info().Msg("running metabase collections syncer")

err := s.AddRestrictedTagToCollections(ctx)
isLeader, err := leaderelection.IsLeader()
if err != nil {
s.log.Error().Err(err).Msg("checking leader status")
continue
}

if !isLeader {
s.log.Info().Msg("not leader, skipping metabase collections sync")
continue
}

err = s.AddRestrictedTagToCollections(ctx)
if err != nil {
s.log.Error().Fields(map[string]interface{}{"stack": errs.OpStack(err)}).Err(err).Msg("adding restricted tag to collections")
}
Expand Down

0 comments on commit 54253b5

Please sign in to comment.