Commit Graph

82 Commits

Author SHA1 Message Date
c6e65c14bb Monitor Nomad allocation startup duration. 2022-07-31 19:42:35 +02:00
18daa1152c Save the environment id for runner monitoring. 2022-07-31 19:42:35 +02:00
49c7a2d405 Save the runner and environment id for executions monitoring. 2022-07-31 19:42:35 +02:00
39cfdbf635 Apply suggestions from code review 2022-07-01 15:29:31 +02:00
498e8f5ff5 #110 Refactor influxdb monitoring
to use it as singleton.
This enables the possibility to monitor processes that are independent of an incoming request.
2022-07-01 15:29:31 +02:00
34040162c2 #89 Generalise the three Storage interfaces and structs into one generic storage manager. 2022-06-29 16:21:19 +02:00
203d5a3a4f #155 refactor and synchronise writing to CodeOcean. (#174)
* #155 refactor and synchronise writing to CodeOcean.

* Reduce complexity of input parsing.

* Update typo in internal/api/ws/codeocean_writer.go

Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com>
2022-06-26 20:19:23 +02:00
a4d13fb8cb #148 Add stage to influx monitoring. 2022-06-21 15:31:29 +02:00
3afe8ddb66 #155 Enable stopping of the CodeOcean WebSocket read independently of writing to CodeOcean. 2022-06-21 12:13:33 +02:00
3d1ed7cb0f #155 Minimise timing issues with websocket close. 2022-06-21 12:13:33 +02:00
79dc3a94da #155 Add log statement for further investigations (#164) 2022-06-12 11:10:57 +02:00
eecacc08bf #42 Allow deletion of ./* 2022-06-10 18:21:06 +02:00
59ca63268b Add CODEOCEAN environment variable. 2022-06-10 18:10:28 +02:00
903ad415c6 Set and unset aws environment variables
in order to provide the CodeOcean context for some scripts and hide AWS credentials from the users.
2022-06-10 18:10:28 +02:00
ecce3c294f #155 Add log statement for further investigations 2022-06-09 22:34:43 +02:00
0f8a1fa25a Specify AWS Functions as list
to conform with the yaml standard of list definition.
2022-06-08 09:01:46 +02:00
1e59c1146e Fix CodeQL log injection warning
by removing newlines from logged user input.
2022-06-07 17:21:05 +02:00
795c83f7b2 Fix deleting non existent environments
that is an error caused by throwing a panic when an environment is not found and a nonexistent runner manager at the end of the chain is asked for it.
2022-06-07 15:54:48 +02:00
358769eb6b Fix golangci lint. 2022-05-24 22:12:48 +02:00
430b1748f5 Allow the CR character as part of a newline.
Since CodeOcean may send the `\r\n` newline.
2022-04-18 22:29:05 +02:00
25f92e5f94 Add environment specific data to the influxdb data. 2022-04-18 13:17:49 +02:00
eabe3a1b27 Add the Environment ID to the influxdb data.
Also move the interface of an execution environment into its own file, execution_environment.go.
2022-04-18 13:17:49 +02:00
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