Commit Graph

210 Commits

Author SHA1 Message Date
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