Fix Bug with the runner recovery
that the runners of the environment 10 are also recovered for the environment 1.
This commit is contained in:
@ -8,6 +8,8 @@ import (
|
||||
api "github.com/hashicorp/nomad/api"
|
||||
config "github.com/openHPI/poseidon/internal/config"
|
||||
|
||||
dto "github.com/openHPI/poseidon/pkg/dto"
|
||||
|
||||
io "io"
|
||||
|
||||
mock "github.com/stretchr/testify/mock"
|
||||
@ -187,13 +189,13 @@ func (_m *ExecutorAPIMock) LoadJobList() ([]*api.JobListStub, error) {
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// LoadRunnerIDs provides a mock function with given fields: environmentID
|
||||
func (_m *ExecutorAPIMock) LoadRunnerIDs(environmentID string) ([]string, error) {
|
||||
ret := _m.Called(environmentID)
|
||||
// LoadRunnerIDs provides a mock function with given fields: prefix
|
||||
func (_m *ExecutorAPIMock) LoadRunnerIDs(prefix string) ([]string, error) {
|
||||
ret := _m.Called(prefix)
|
||||
|
||||
var r0 []string
|
||||
if rf, ok := ret.Get(0).(func(string) []string); ok {
|
||||
r0 = rf(environmentID)
|
||||
r0 = rf(prefix)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).([]string)
|
||||
@ -202,7 +204,7 @@ func (_m *ExecutorAPIMock) LoadRunnerIDs(environmentID string) ([]string, error)
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string) error); ok {
|
||||
r1 = rf(environmentID)
|
||||
r1 = rf(prefix)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
@ -211,11 +213,11 @@ func (_m *ExecutorAPIMock) LoadRunnerIDs(environmentID string) ([]string, error)
|
||||
}
|
||||
|
||||
// LoadRunnerJobs provides a mock function with given fields: environmentID
|
||||
func (_m *ExecutorAPIMock) LoadRunnerJobs(environmentID string) ([]*api.Job, error) {
|
||||
func (_m *ExecutorAPIMock) LoadRunnerJobs(environmentID dto.EnvironmentID) ([]*api.Job, error) {
|
||||
ret := _m.Called(environmentID)
|
||||
|
||||
var r0 []*api.Job
|
||||
if rf, ok := ret.Get(0).(func(string) []*api.Job); ok {
|
||||
if rf, ok := ret.Get(0).(func(dto.EnvironmentID) []*api.Job); ok {
|
||||
r0 = rf(environmentID)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
@ -224,7 +226,7 @@ func (_m *ExecutorAPIMock) LoadRunnerJobs(environmentID string) ([]*api.Job, err
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string) error); ok {
|
||||
if rf, ok := ret.Get(1).(func(dto.EnvironmentID) error); ok {
|
||||
r1 = rf(environmentID)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
|
@ -7,6 +7,7 @@ import (
|
||||
nomadApi "github.com/hashicorp/nomad/api"
|
||||
"github.com/hashicorp/nomad/nomad/structs"
|
||||
"github.com/openHPI/poseidon/internal/config"
|
||||
"github.com/openHPI/poseidon/pkg/dto"
|
||||
"github.com/openHPI/poseidon/pkg/logging"
|
||||
"github.com/openHPI/poseidon/pkg/nullio"
|
||||
"io"
|
||||
@ -33,11 +34,11 @@ type ExecutorAPI interface {
|
||||
LoadEnvironmentJobs() ([]*nomadApi.Job, error)
|
||||
|
||||
// LoadRunnerJobs loads all runner jobs specific for the environment.
|
||||
LoadRunnerJobs(environmentID string) ([]*nomadApi.Job, error)
|
||||
LoadRunnerJobs(environmentID dto.EnvironmentID) ([]*nomadApi.Job, error)
|
||||
|
||||
// LoadRunnerIDs returns the IDs of all runners of the specified environment which are running and not about to
|
||||
// LoadRunnerIDs returns the IDs of all runners with the specified id prefix which are running and not about to
|
||||
// get stopped.
|
||||
LoadRunnerIDs(environmentID string) (runnerIds []string, err error)
|
||||
LoadRunnerIDs(prefix string) (runnerIds []string, err error)
|
||||
|
||||
// LoadRunnerPortMappings returns the mapped ports of the runner.
|
||||
LoadRunnerPortMappings(runnerID string) ([]nomadApi.PortMapping, error)
|
||||
@ -88,8 +89,8 @@ func (a *APIClient) init(nomadConfig *config.Nomad) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *APIClient) LoadRunnerIDs(environmentID string) (runnerIDs []string, err error) {
|
||||
list, err := a.listJobs(environmentID)
|
||||
func (a *APIClient) LoadRunnerIDs(prefix string) (runnerIDs []string, err error) {
|
||||
list, err := a.listJobs(prefix)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -113,8 +114,8 @@ func (a *APIClient) LoadRunnerPortMappings(runnerID string) ([]nomadApi.PortMapp
|
||||
return alloc.AllocatedResources.Shared.Ports, nil
|
||||
}
|
||||
|
||||
func (a *APIClient) LoadRunnerJobs(environmentID string) ([]*nomadApi.Job, error) {
|
||||
runnerIDs, err := a.LoadRunnerIDs(environmentID)
|
||||
func (a *APIClient) LoadRunnerJobs(environmentID dto.EnvironmentID) ([]*nomadApi.Job, error) {
|
||||
runnerIDs, err := a.LoadRunnerIDs(RunnerJobID(environmentID, ""))
|
||||
if err != nil {
|
||||
return []*nomadApi.Job{}, fmt.Errorf("couldn't load jobs: %w", err)
|
||||
}
|
||||
|
@ -184,7 +184,7 @@ func (m *NomadRunnerManager) Return(r Runner) error {
|
||||
func (m *NomadRunnerManager) Load() {
|
||||
for _, environment := range m.environments.List() {
|
||||
environmentLogger := log.WithField("environmentID", environment.ID())
|
||||
runnerJobs, err := m.apiClient.LoadRunnerJobs(environment.ID().ToString())
|
||||
runnerJobs, err := m.apiClient.LoadRunnerJobs(environment.ID())
|
||||
if err != nil {
|
||||
environmentLogger.WithError(err).Warn("Error fetching the runner jobs")
|
||||
}
|
||||
|
Reference in New Issue
Block a user