Refactor PrewarmingPoolAlert triggering
from route-based to Nomad-Event-Stream-based.
This commit is contained in:

committed by
Sebastian Serth

parent
543939e5cb
commit
7b82300ff7
@ -594,25 +594,6 @@ func (s *MainTestSuite) TestNomadRunnerManager_checkPrewarmingPoolAlert() {
|
||||
apiMock := &nomad.ExecutorAPIMock{}
|
||||
m := NewNomadRunnerManager(apiMock, s.TestCtx)
|
||||
m.StoreEnvironment(environment)
|
||||
|
||||
s.Run("does not allow concurrent calls", func() {
|
||||
environment.On("PrewarmingPoolSize").Return(uint(1)).Once()
|
||||
|
||||
secondCallDone := make(chan struct{})
|
||||
environment.On("IdleRunnerCount").Run(func(_ mock.Arguments) {
|
||||
<-secondCallDone
|
||||
}).Return(uint(1)).Once()
|
||||
|
||||
go m.checkPrewarmingPoolAlert(environment)
|
||||
<-time.After(tests.ShortTimeout)
|
||||
go func() {
|
||||
m.checkPrewarmingPoolAlert(environment)
|
||||
close(secondCallDone)
|
||||
}()
|
||||
|
||||
<-time.After(tests.ShortTimeout)
|
||||
environment.AssertExpectations(s.T())
|
||||
})
|
||||
s.Run("checks the alert condition again after the reload timeout", func() {
|
||||
environment.On("PrewarmingPoolSize").Return(uint(1)).Once()
|
||||
environment.On("IdleRunnerCount").Return(uint(0)).Once()
|
||||
@ -621,7 +602,7 @@ func (s *MainTestSuite) TestNomadRunnerManager_checkPrewarmingPoolAlert() {
|
||||
|
||||
checkDone := make(chan struct{})
|
||||
go func() {
|
||||
m.checkPrewarmingPoolAlert(environment)
|
||||
m.checkPrewarmingPoolAlert(environment, false)
|
||||
close(checkDone)
|
||||
}()
|
||||
|
||||
@ -646,7 +627,7 @@ func (s *MainTestSuite) TestNomadRunnerManager_checkPrewarmingPoolAlert() {
|
||||
|
||||
checkDone := make(chan struct{})
|
||||
go func() {
|
||||
m.checkPrewarmingPoolAlert(environment)
|
||||
m.checkPrewarmingPoolAlert(environment, false)
|
||||
close(checkDone)
|
||||
}()
|
||||
|
||||
@ -657,6 +638,28 @@ func (s *MainTestSuite) TestNomadRunnerManager_checkPrewarmingPoolAlert() {
|
||||
}
|
||||
environment.AssertExpectations(s.T())
|
||||
})
|
||||
s.Run("is canceled by an added runner", func() {
|
||||
environment.On("PrewarmingPoolSize").Return(uint(1)).Twice()
|
||||
environment.On("IdleRunnerCount").Return(uint(0)).Once()
|
||||
environment.On("IdleRunnerCount").Return(uint(1)).Once()
|
||||
|
||||
checkDone := make(chan struct{})
|
||||
go func() {
|
||||
m.checkPrewarmingPoolAlert(environment, false)
|
||||
close(checkDone)
|
||||
}()
|
||||
|
||||
<-time.After(tests.ShortTimeout)
|
||||
go m.checkPrewarmingPoolAlert(environment, true)
|
||||
<-time.After(tests.ShortTimeout)
|
||||
|
||||
select {
|
||||
case <-time.After(100 * time.Duration(timeout) * time.Second):
|
||||
s.Fail("checkPrewarmingPoolAlert was not canceled")
|
||||
case <-checkDone:
|
||||
}
|
||||
environment.AssertExpectations(s.T())
|
||||
})
|
||||
}
|
||||
|
||||
func (s *MainTestSuite) TestNomadRunnerManager_checkPrewarmingPoolAlert_reloadsRunners() {
|
||||
@ -697,7 +700,7 @@ func (s *MainTestSuite) TestNomadRunnerManager_checkPrewarmingPoolAlert_reloadsR
|
||||
s.NoError(err)
|
||||
}).Return().Once()
|
||||
|
||||
m.checkPrewarmingPoolAlert(environment)
|
||||
m.checkPrewarmingPoolAlert(environment, false)
|
||||
|
||||
r, ok := m.usedRunners.Get(tests.DefaultRunnerID)
|
||||
s.Require().True(ok)
|
||||
|
Reference in New Issue
Block a user