Skip to content

Commit

Permalink
refactor: use single field from config instead of entire config
Browse files Browse the repository at this point in the history
  • Loading branch information
AleksandrMatsko committed Dec 13, 2024
1 parent a6c311f commit 57b699f
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 18 deletions.
7 changes: 6 additions & 1 deletion cmd/notifier/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,12 @@ func main() {
fetchEventsWorker.Start()
defer stopFetchEvents(fetchEventsWorker)

aliveWatcher := notifier.NewAliveWatcher(logger, database, notifierConfig, notifierMetrics)
aliveWatcher := notifier.NewAliveWatcher(
logger,
database,
notifierConfig.CheckNotifierStateTimeout,
notifierMetrics,
)
ctx, cancel := context.WithCancel(context.Background())

aliveWatcher.Start(ctx)
Expand Down
22 changes: 11 additions & 11 deletions notifier/alive_watcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,24 @@ import (

// AliveWatcher is responsible for checking notifier state and marking notifier.alive metrics.
type AliveWatcher struct {
logger moira.Logger
database moira.Database
config Config
notifierMetrics *metrics.NotifierMetrics
logger moira.Logger
database moira.Database
checkNotifierStateTimeout time.Duration
notifierMetrics *metrics.NotifierMetrics
}

// NewAliveWatcher is an initializer for AliveWatcher.
func NewAliveWatcher(
logger moira.Logger,
database moira.Database,
config Config,
checkNotifierStateTimeout time.Duration,
notifierMetrics *metrics.NotifierMetrics,
) *AliveWatcher {
return &AliveWatcher{
logger: logger,
database: database,
config: config,
notifierMetrics: notifierMetrics,
logger: logger,
database: database,
checkNotifierStateTimeout: checkNotifierStateTimeout,
notifierMetrics: notifierMetrics,
}
}

Expand All @@ -39,10 +39,10 @@ func (watcher *AliveWatcher) Start(ctx context.Context) {

func (watcher *AliveWatcher) stateChecker(ctx context.Context) {
watcher.logger.Info().
Interface("check_timeout_seconds", watcher.config.CheckNotifierStateTimeout.Seconds()).
Interface("check_timeout_seconds", watcher.checkNotifierStateTimeout.Seconds()).
Msg("Moira Notifier alive watcher started")

ticker := time.NewTicker(watcher.config.CheckNotifierStateTimeout)
ticker := time.NewTicker(watcher.checkNotifierStateTimeout)

for {
select {
Expand Down
14 changes: 8 additions & 6 deletions notifier/alive_watcher_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func TestAliveWatcher_checkNotifierState(t *testing.T) {
mockRegistry, mockAliveMeter := initAliveMeter(mockCtrl)
testNotifierMetrics := metrics.ConfigureNotifierMetrics(mockRegistry, "")

aliveWatcher := NewAliveWatcher(nil, dataBase, Config{}, testNotifierMetrics)
aliveWatcher := NewAliveWatcher(nil, dataBase, 0, testNotifierMetrics)

Convey("checkNotifierState", t, func() {
Convey("when OK", func() {
Expand Down Expand Up @@ -83,17 +83,19 @@ func TestAliveWatcher_Start(t *testing.T) {

dataBase := mock_moira_alert.NewMockDatabase(mockCtrl)

testConf := Config{
CheckNotifierStateTimeout: time.Second,
}
const (
testCheckNotifierStateTimeout = time.Second
)

mockRegistry, mockAliveMeter := initAliveMeter(mockCtrl)
testNotifierMetrics := metrics.ConfigureNotifierMetrics(mockRegistry, "")

aliveWatcher := NewAliveWatcher(logger, dataBase, testConf, testNotifierMetrics)
aliveWatcher := NewAliveWatcher(logger, dataBase, testCheckNotifierStateTimeout, testNotifierMetrics)

Convey("AliveWatcher stops on cancel", t, func() {
eventsBuilder.EXPECT().Interface("check_timeout_seconds", testConf.CheckNotifierStateTimeout.Seconds()).Return(eventsBuilder)
eventsBuilder.EXPECT().
Interface("check_timeout_seconds", testCheckNotifierStateTimeout.Seconds()).
Return(eventsBuilder)
eventsBuilder.EXPECT().Msg("Moira Notifier alive watcher started")

eventsBuilder.EXPECT().Msg("Moira Notifier alive watcher stopped")
Expand Down

0 comments on commit 57b699f

Please sign in to comment.