Generate structures for an AWS environment and runner
This commit is contained in:
65
internal/runner/aws_runner.go
Normal file
65
internal/runner/aws_runner.go
Normal file
@ -0,0 +1,65 @@
|
||||
package runner
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/google/uuid"
|
||||
"github.com/openHPI/poseidon/pkg/dto"
|
||||
"github.com/openHPI/poseidon/pkg/execution"
|
||||
"io"
|
||||
)
|
||||
|
||||
// AWSFunctionWorkload is an abstraction to build a request to an AWS Lambda Function.
|
||||
type AWSFunctionWorkload struct {
|
||||
InactivityTimer
|
||||
id string
|
||||
fs map[dto.FilePath][]byte
|
||||
executions execution.Storer
|
||||
onDestroy destroyRunnerHandler
|
||||
}
|
||||
|
||||
// NewAWSFunctionWorkload creates a new AWSFunctionWorkload with the provided id.
|
||||
func NewAWSFunctionWorkload(onDestroy destroyRunnerHandler) (*AWSFunctionWorkload, error) {
|
||||
newUUID, err := uuid.NewUUID()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed generating runner id: %w", err)
|
||||
}
|
||||
|
||||
workload := &AWSFunctionWorkload{
|
||||
id: newUUID.String(),
|
||||
executions: execution.NewLocalStorage(),
|
||||
onDestroy: onDestroy,
|
||||
fs: make(map[dto.FilePath][]byte),
|
||||
}
|
||||
workload.InactivityTimer = NewInactivityTimer(workload, onDestroy)
|
||||
return workload, nil
|
||||
}
|
||||
|
||||
func (w *AWSFunctionWorkload) ID() string {
|
||||
return w.id
|
||||
}
|
||||
|
||||
func (w *AWSFunctionWorkload) MappedPorts() []*dto.MappedPort {
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (w *AWSFunctionWorkload) StoreExecution(_ string, _ *dto.ExecutionRequest) {
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (w *AWSFunctionWorkload) ExecutionExists(_ string) bool {
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (w *AWSFunctionWorkload) ExecuteInteractively(_ string, _ io.ReadWriter, _, _ io.Writer) (
|
||||
exit <-chan ExitInfo, cancel context.CancelFunc, err error) {
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (w *AWSFunctionWorkload) UpdateFileSystem(_ *dto.UpdateFileSystemRequest) error {
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (w *AWSFunctionWorkload) Destroy() error {
|
||||
panic("implement me")
|
||||
}
|
Reference in New Issue
Block a user