90092c48c1
Fix incomplete debug message
...
that is created by sending SIGQUIT to the bash process
by not processing output after the the client disconnected / we have sent the SIGQUIT.
2023-08-14 11:37:51 +02:00
eb818f92f7
Refactor Runner Destroy Reason Masking
...
and ignore expected reasons such when the runner got destroyed by an API request.
2023-07-24 11:48:14 +01:00
6a1677dea0
Introduce reason for destroying runner
...
in order to return a specific error for OOM Killed Executions.
2023-07-21 15:30:21 +02:00
bfb5977d24
Destroy runner on allocation stopped
...
Destroying the runner when Nomad informs us about its allocation being stopped, fixes the error of executions running into their timeout even if the allocation was stopped long ago.
2023-07-21 15:30:21 +02:00
d64d8995bd
Refactor monitoring of runner and environment id.
2023-07-15 21:46:56 +02:00
e7df777db4
Always log Runner and Environment ID.
...
Systematically log the runner id and the environment id by adding the information at the findRunnerMiddleware.
2023-07-15 21:46:56 +02:00
2aa10a130f
Introduce context for the codeOceanOutputWriter
...
that represents its lifespan.
2023-04-11 20:45:30 +01:00
0c8fa9ccfa
Add context to log statements.
2023-04-11 20:45:30 +01:00
7dadc5dfe9
Refactor Nomad Command Generation.
...
- Abstracting from the exec form while generating.
- Removal of single quotes (usage of only double-quotes).
- Bash-nesting using escaping of special characters.
2023-03-14 23:42:19 +01:00
4550a4589e
Dangerous Context Enrichment
...
by passing the Sentry Context down our abstraction stack.
This included changes in the complex context management of managing a Command Execution.
2023-02-03 10:29:18 +00:00
2650efbb38
Sentry Tracing Identifier
2023-02-03 10:29:18 +00:00
f2c205a8ed
Add additional performance spans
2023-02-03 10:29:18 +00:00
8950ab3776
Add single quotes for inner command.
...
Change to bash as interpreter.
Forbid single quotes for user commands.
2022-11-04 15:15:43 +01:00
28fb0ca61c
Catch context canceled error
2022-10-25 09:36:52 +02:00
5d54b0f786
Fix wrong environment id at monitoring
...
data for created or updated environments.
2022-10-24 13:15:14 +02:00
195f88177e
Add Content-Length and Content-Disposition Header
...
for GetFileContent route.
2022-10-05 12:11:47 +01:00
0c70ad3b24
Enable unprivileged retrieve of file listing and content.
2022-10-05 12:11:47 +01:00
3469d0ce77
Specify http not found exit code
...
by replacing it with StatusGone (410) for a missing runner and StatusFailedDependency (424) for missing or not accessible files.
2022-10-05 12:11:47 +01:00
fc77f11d4d
Enquote file path for shell execution.
...
Also, fix json of 500 response.
2022-10-05 12:11:47 +01:00
152b77afe5
Add listing of runners file system.
2022-10-05 12:11:47 +01:00
c7ee7c1e25
Remove superfluous response.WriteHeader call
...
as the Write of the responseWriter automatically sends also the Header.
2022-10-05 12:11:47 +01:00
f2b25566dd
#136 Copy files back from Nomad runner.
2022-10-05 12:11:47 +01:00
1a5a49d7c8
Explicitly switch user for code execution.
...
Co-authored-by: Maximilian Pass <maximilian.pass@student.hpi.uni-potsdam.de >
2022-09-24 23:09:23 +02:00
d10b31a1fb
Remove static (nil) return value.
2022-08-01 11:24:56 +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
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
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
ecce3c294f
#155 Add log statement for further investigations
2022-06-09 22:34:43 +02:00
1e59c1146e
Fix CodeQL log injection warning
...
by removing newlines from logged user input.
2022-06-07 17:21: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
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
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
d57a0c07b8
Implement review suggestions
2021-12-22 17:30:16 +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
c565ca217e
Fix goroutine leak when reading the client WebSocket
2021-12-14 13:24:53 +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
dcc869cd94
Fix after updating golangci-lint
...
v1.43
2021-11-10 13:11:38 +01: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