added poseidon with aws to k8s changes
This commit is contained in:
43
internal/environment/manager.go
Normal file
43
internal/environment/manager.go
Normal file
@ -0,0 +1,43 @@
|
||||
package environment
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/openHPI/poseidon/internal/runner"
|
||||
"github.com/openHPI/poseidon/pkg/dto"
|
||||
)
|
||||
|
||||
// ManagerHandler is one handler in the chain of responsibility of environment managers.
|
||||
// Each manager can handle different requests.
|
||||
type ManagerHandler interface {
|
||||
Manager
|
||||
SetNextHandler(next ManagerHandler)
|
||||
NextHandler() ManagerHandler
|
||||
HasNextHandler() bool
|
||||
}
|
||||
|
||||
// Manager encapsulates API calls to the executor API for creation and deletion of execution environments.
|
||||
type Manager interface {
|
||||
// List returns all environments known by Poseidon.
|
||||
// When `fetch` is set the environments are fetched from the executor before returning.
|
||||
List(fetch bool) ([]runner.ExecutionEnvironment, error)
|
||||
|
||||
// Get returns the details of the requested environment.
|
||||
// When `fetch` is set the requested environment is fetched from the executor before returning.
|
||||
Get(id dto.EnvironmentID, fetch bool) (runner.ExecutionEnvironment, error)
|
||||
|
||||
// CreateOrUpdate creates/updates an execution environment on the executor.
|
||||
// If the job was created, the returned boolean is true, if it was updated, it is false.
|
||||
// If err is not nil, that means the environment was neither created nor updated.
|
||||
CreateOrUpdate(
|
||||
id dto.EnvironmentID,
|
||||
request dto.ExecutionEnvironmentRequest,
|
||||
ctx context.Context,
|
||||
) (bool, error)
|
||||
|
||||
// Delete removes the specified execution environment.
|
||||
// Iff the specified environment could not be found Delete returns false.
|
||||
Delete(id dto.EnvironmentID) (bool, error)
|
||||
|
||||
// Statistics returns statistical data for each execution environment.
|
||||
Statistics() map[dto.EnvironmentID]*dto.StatisticalExecutionEnvironmentData
|
||||
}
|
Reference in New Issue
Block a user