Move Nomad job creation logic to environment manager

This commit is contained in:
sirkrypt0
2021-05-25 16:18:10 +02:00
committed by Tobias Kantusch
parent 619cd40fb6
commit 4c3cc0cc4c
7 changed files with 141 additions and 131 deletions

View File

@@ -1,11 +1,15 @@
package environment
import (
nomadApi "github.com/hashicorp/nomad/api"
"gitlab.hpi.de/codeocean/codemoon/poseidon/api/dto"
"gitlab.hpi.de/codeocean/codemoon/poseidon/logging"
"gitlab.hpi.de/codeocean/codemoon/poseidon/nomad"
"gitlab.hpi.de/codeocean/codemoon/poseidon/runner"
)
var log = logging.GetLogger("environment")
// Manager encapsulates API calls to the executor API for creation and deletion of execution environments.
type Manager interface {
// Load fetches all already created execution environments from the executor and registers them at the runner manager.
@@ -23,7 +27,7 @@ type Manager interface {
}
func NewNomadEnvironmentManager(runnerManager runner.Manager, apiClient nomad.ExecutorApi) *NomadEnvironmentManager {
environmentManager := &NomadEnvironmentManager{runnerManager, apiClient}
environmentManager := &NomadEnvironmentManager{runnerManager, apiClient, *parseJob(defaultJobHCL)}
environmentManager.Load()
return environmentManager
}
@@ -31,6 +35,7 @@ func NewNomadEnvironmentManager(runnerManager runner.Manager, apiClient nomad.Ex
type NomadEnvironmentManager struct {
runnerManager runner.Manager
api nomad.ExecutorApi
defaultJob nomadApi.Job
}
func (m *NomadEnvironmentManager) Create(