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
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
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