b7a20e3114
Introduce method "Environment" to the Runners interface.
...
This way we can relate to which environment a runner belongs.
2022-04-18 13:17:49 +02:00
8feffdae3a
Add initial structure of influxdb monitoring.
2022-04-18 13:17:49 +02:00
e4ebb5b384
Add trace statements for WebSocket messages
...
* With `logger.level: TRACE`, the content of WebSocket messages is logged
together with the corresponding timestamp.
* The input is not further sanitized as this log level
is not intended for production use.
2022-04-15 12:39:03 +02:00
3570f18202
Apply suggestions from code review
...
Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com >
2022-04-09 16:35:53 +02:00
136f596dc2
Add aws environments to the statistics
...
but only with the field usedRunners.
2022-04-09 16:35:53 +02:00
a41659eed4
Enable memory oversubscription ( #102 )
...
* Enable memory oversubscription
* Fix and add e2e test
2022-03-18 08:31:27 +01:00
2cf890ab91
Implement review comments
2022-02-28 14:54:40 +01:00
df68461264
Sanitize user input in logs.
2022-02-28 14:54:40 +01:00
4ffbb712ed
Parametrize e2e tests to also check AWS environments.
...
- Fix destroy runner after timeout.
- Add file deletion
2022-02-28 14:54:40 +01:00
d603a8ebb0
Refactor static AWS functions
...
from a magic number in the code to a configurable list in configuration.yaml
2022-02-28 14:54:40 +01:00
f6d9a6ddbb
Add unit tests
2022-02-28 14:54:40 +01:00
6123d20525
Implement core functionality of AWS integration
2022-02-28 14:54:40 +01:00
dd41e0d5c4
Generate structures for an AWS environment and runner
2022-02-28 14:54:40 +01:00
0ef5a4e39f
Make Execution Environment interface Nomad independent
2022-02-28 14:54:40 +01:00
ba43f667c2
Add architecture for multiple managers
...
using the chain of responsibility pattern.
2022-02-28 14:54:40 +01:00
1239699e74
Add a warning when allocations fail ( #83 )
...
* Log a warning when an allocation fails
* Restructure allocation event handling
2021-12-23 13:10:55 +01:00
c22b76720c
Add documentation for guarding the Nomad tasks
2021-12-22 17:30:16 +01:00
251129aa74
Modify filter for runners that should deleted
...
Only "dead" jobs are now not requested to be deleted. Before also pending and starting runners are ignored.
2021-12-22 17:30:16 +01:00
d57a0c07b8
Implement review suggestions
2021-12-22 17:30:16 +01:00
0571b10b5c
Recreate runners on execution environment update
...
Solves #69 and #48
2021-12-22 17:30:16 +01:00
2bf9b10564
Update default image in template-environment-job.hcl
...
* The image previously used is not available publicly and not maintained any longer
* The new base image is not bound to any specific programming environment
2021-12-22 15:54:46 +01:00
2f5b30702a
Fix early write
...
Because some clients fail receiving a response before the body is sent entirely. See https://github.com/openHPI/poseidon/issues/54
2021-12-16 23:44:13 +01:00
f3929cbf50
Fix webSocket error
...
that was introduced by closing the WebSocket connection without stopping the inputLoop.
2021-12-16 15:05:47 +01:00
feefe2c1ed
Fix third goroutine leak and refactor proxy cancellation.
...
Fix goroutine leak in the Read function of the codeOceanToRawReader: Blocking Select statement.
2021-12-14 13:24:53 +01:00
9f0b04660f
Fix goroutine leak in the nullio reader
2021-12-14 13:24:53 +01:00
c565ca217e
Fix goroutine leak when reading the client WebSocket
2021-12-14 13:24:53 +01:00
d684366a4d
Add debug statements for TestSendsSignalAfterTimeout
2021-12-12 10:27:03 +01:00
9cd81930e9
Add API Querier test
2021-12-10 11:30:56 +01:00
ebbbfdb9be
Unwrap Nomad error for allocation exec
...
* This will allow us to inspect whether the websocket connection was closed normally
2021-12-10 10:01:31 +01:00
dce895faff
Move the error handler to the api querier
...
to catch the ws normal close error for all Execute requests
2021-12-09 19:12:20 +01:00
825ebdd3e6
Add forcePull option
...
* Add forcePull option
for pulling the image when the execution environment gets updated
* Apply suggestions from code review
Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com >
* Add unit tests
* Clean up and implement option two
Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com >
2021-12-09 14:54:14 +01:00
af939b7810
Catch the "Close normal" error
2021-12-09 13:05:18 +01:00
e95e07e426
Catch the client connection "Close normal" error
...
* Catch the client connection "Close normal" error
* Reduce cognitive complexity of the input read loop
2021-12-09 10:02:26 +01:00
1de559cebc
Add statistics route for execution environments
...
* Add statistics route for execution environments
* Add maximum to port api definition
Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com >
2021-12-08 12:08:22 +01:00
a6eaa45097
Stop stdout & stderr after timeout
...
Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com >
2021-11-25 21:08:56 +01:00
0d7e07eae0
Add route for version information
2021-11-25 19:49:58 +01:00
3ae83217d7
Add Sentry integration
2021-11-25 19:29:33 +01:00
fbbc96da37
Add guard close in event stream
...
for not handling stopped Execution Environment Allocations
2021-11-17 13:16:18 +01:00
ac6ce56c38
Remove flaky test case
2021-11-10 13:11:38 +01:00
dcc869cd94
Fix after updating golangci-lint
...
v1.43
2021-11-10 13:11:38 +01:00
fff67246d6
Infinite busy waiting for lost event ( #31 )
...
* Close evaluation stream for Nomad Job creation
when set event handler have been finished
* Remove evaluation event stream requests
by handling the events via the main Nomad event handler.
2021-11-10 09:57:40 +01:00
4db1ceb41e
Fix Bug with the runner recovery
...
that the runners of the environment 10 are also recovered for the environment 1.
2021-10-22 16:24:55 +02:00
ba6e7035fa
Mark runner as used now asynchronously.
2021-10-22 16:23:51 +02:00
055fa43227
Create a new runner async after one gets claimed
2021-10-22 16:23:51 +02:00
34d4bb7ea0
Implement routes to list, get and delete execution environments
...
* #9 Implement routes to list, get and delete execution environments.
A refactoring was required to introduce the ExecutionEnvironment interface.
* Fix MR comments, linting issues and bug that lead to e2e test failure
* Add e2e tests
* Add unit tests
2021-10-21 10:33:52 +02:00
af506dd26f
Fix Bug that only runner routes get registered with authorization.
2021-10-12 10:32:59 +02:00
9d7e59df36
Change authorization header key ( #6 )
...
* Change authorization header key
as the use of headers starting with X- has been deprecated in RFC6648.
* Update configuration.example.yaml
Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com >
2021-10-04 12:23:41 +02:00
9b106f4cd8
Fix linting issues
...
An update of golangci-lint yielded new linting issues. This commit
fixes them.
2021-08-05 13:40:48 +02:00
c8c5357b8c
Rename module for GitHub
2021-07-30 16:43:05 +02:00
36dc99f019
Don't embed the execution.Storer interface into a runner
...
Previously, the execution.Storer interface was embedded in the Runner interface.
However, this resulted in calls like runner.Add(...) to add an execution to the
store which is kind of ugly. Thus, we decided to add only the required functions to
the runner interface and make the execution.Storer a field of the implementation.
2021-07-30 14:28:06 +02:00