Sebastian Serth
c59eaa05bb
Handle bootstrapping of Poseidon when no environments
...
When starting Poseidon with an empty Nomad cluster, the list of existing environments is empty. In this case, however, our error handler threw an error, which was not correct.
Fixes CODEOCEAN-M7
2023-04-14 13:37:45 +02:00
Sebastian Serth
c407d8cb8b
Capture context for Sentry errors during WebSocket connection
...
Special handling is needed to ensure we have the transaction ID and Rack ENV. Otherwise the error cannot be matched to a transaction in Sentry. This special behavior is needed because of the underlying EventMachine, which executes code in a different thread/context.
2023-04-14 12:50:50 +02:00
Sebastian Serth
0dd931fba1
Add runner management health check for /ping
...
Even though we can check the health of the runner management, we would like to ensure an external health check validates the availability of all required services.
2023-03-13 22:54:14 +01:00
Sebastian Serth
e9cf79085a
Refactor listing files to be independent of exiting runners
...
Previously, we were always fetching files, even if not required (e.g., for score runs). Now, we reduce the number of file listings and use a dedicated callback.
2023-02-16 10:50:01 +01:00
Sebastian Serth
a558a6df3b
Shorten message name for sentry hub cloning
2023-02-16 10:47:58 +01:00
Sebastian Serth
91c2e14fe8
Fix error handling during Runner::Connection close
...
Closes CODEOCEAN-HQ
2023-02-16 10:47:28 +01:00
Sebastian Serth
4a8653040c
Use deep merge for Runner::Connection headers
2023-02-12 14:08:54 +01:00
Sebastian Serth
b1372e880c
Enable Sentry instrumentation for WebSocket connection
2023-02-12 13:51:10 +01:00
Sebastian Serth
fb9ab4cd61
DCP: Allow unused keyword arguments for Rubocop
2022-12-19 17:09:59 +01:00
Sebastian Serth
82bb0dd5d1
Return default for retrieve_files
...
Fixes CODEOCEAN-G7
2022-12-19 16:10:38 +01:00
Sebastian Serth
574e99eddd
Fix rubocop offenses - Requires Ruby 3.1+
2022-11-25 11:10:06 +01:00
Sebastian Serth
61c4d5a894
Provide default for retrieve_files method
...
Fixes CODEOCEAN-F4
2022-11-17 20:47:33 +01:00
Sebastian Serth
d50e6d30e9
List Files: Catch more Runner::Errors
2022-11-14 13:51:04 +01:00
Sebastian Serth
2753e4ef5b
Always catch StandardError in Threads and release connection
2022-11-11 22:50:27 +01:00
Sebastian Serth
9ea94ed4fc
Explicitly copy folders before adding files
...
This allows to protect copied files while additionally allowing learners to add new files in copied subdirectories
2022-10-29 18:50:27 +02:00
Sebastian Serth
9e7b3b7b58
Update keyword arguments for #retrieve_files
2022-10-29 18:49:18 +02:00
Sebastian Serth
60078701f5
Editor: Allow file retrieval after code run
2022-10-29 18:49:18 +02:00
Sebastian Serth
cb94bc3de6
Strategy: Allow privileged_execution: keyword even if not used
2022-10-05 19:19:12 +02:00
Sebastian Serth
a5da7d1f84
Remove outdated HTTP status codes
...
See https://github.com/openHPI/codeocean/pull/1349#pullrequestreview-1091652523
2022-10-05 13:11:43 +02:00
Sebastian Serth
ba821bd18b
Change HTTP status codes for Poseidon in accordance with recent changes.
...
See https://github.com/openHPI/poseidon/pull/159
2022-10-05 13:11:43 +02:00
Sebastian Serth
f53c6cb3ee
Shell: Add toggle to execute command as root
2022-10-04 16:06:58 +02:00
Sebastian Serth
eb188dcd71
Add privilegedExecution flag to database and Poseidon Strategy
2022-09-24 22:32:41 +02:00
Sebastian Serth
d762f976a8
Add new CodeOcean::File#read method
...
* With a new method, we can simplify our code to handle differences between file.content and file.native_file.read
2022-08-19 22:42:55 +02:00
Sebastian Serth
56eab88f88
Gracefully handle the deletion of non-existing runners
2022-07-15 00:49:15 +02:00
Sebastian Serth
8e403ff65a
Poseidon: Use relative path to remove workspace directory
...
See #1088
2022-06-10 18:13:11 +02:00
Sebastian Serth
b613267add
Remove legacy DockerClient
2022-06-08 13:18:37 +02:00
Sebastian Serth
5ecba6ef70
Persist TestrunMessages and store timestamp
...
So far, the Testrun messages are in addition to the Tesstrun.output column
2022-04-29 01:00:51 +02:00
Sebastian Serth
8d8bf5ef29
Connection::Buffer: Fix bug for incomplete lines
...
* Introduce (temporary) conversion to CRLF-line endings before processing and splitting the output
* (Partially) revert previous changes
2022-04-25 17:53:08 +02:00
Sebastian Serth
902d09b3fa
Connection::Buffer: Allow additional, single new lines for AWS
2022-04-24 19:34:53 +02:00
Sebastian Serth
591d520e26
Connection::Buffer: Improve performance for deleting \r suffix
2022-04-24 19:00:02 +02:00
Sebastian Serth
c5f0189859
Connection::Buffer: Remove duplicated new line character
...
"a\r".gsub(/\r?$/, "\n") ==> "a\n\n"
2022-04-24 18:57:33 +02:00
Sebastian Serth
35454836c8
Allow \r\n and \n line breaks for Connection::Buffer
...
* Nomad sends CRLF-separated lines
* AWS sends LF-separated lines
2022-04-24 18:26:05 +02:00
Sebastian Serth
66d4f90b4a
Send the WebSocket message immediately with EventMachine.next_tick
2022-04-13 14:39:07 +02:00
Sebastian Serth
5caace01b6
Add comment to DockerContainerPool strategy regarding filtering
2022-04-12 12:47:16 +02:00
Sebastian Serth
18daa1c998
Enable image preview in STDOUT
2022-03-02 11:44:48 +01:00
Sebastian Serth
ea85519163
Update bundle (with newest rubocop version) and fix offenses
2022-01-04 09:42:37 +01:00
Sebastian Serth
4fc4b7ac35
Remove temporary fix for Poseidon#54
2021-12-16 23:15:27 +01:00
Sebastian Serth
563e14a44a
Adapt dashboard to show idle and used runners
2021-12-07 00:08:31 +01:00
Sebastian Serth
a4003ca733
DCP: Redirect successful PyLint output to stdout
2021-12-06 22:12:16 +01:00
Sebastian Serth
394385098d
Rescue Faraday::ConnectionFailed for Poseidon
2021-12-01 15:10:47 +01:00
Sebastian Serth
5ef7da14be
Show release information for Poseidon
2021-11-25 20:09:46 +01:00
Sebastian Serth
c90e02e4f1
Fixes CODEOCEAN-5J with error during WebSocket handshake
2021-11-18 14:04:23 +01:00
Sebastian Serth
4cddcb6544
Fixes CODEOCEAN-68 with empty file
2021-11-18 13:37:32 +01:00
Sebastian Serth
b07560bc7e
Poseidon: Read native file content if available
2021-11-17 19:36:06 +01:00
Sebastian Serth
86c6ad7ea3
Poseidon: Use absolute path to remove workspace directory
2021-11-17 17:44:09 +01:00
Sebastian Serth
eb985bec9a
DCP: Rescue Excon::Error::Socket
2021-11-15 15:09:43 +01:00
Sebastian Serth
e34656eb0f
Modify buffer line breaking behavior
...
* This is based on Sentry issue CODEOCEAN-5W (linter translation failing due to \r in output)
* We cannot keep all "\r" messages but we must not forward the "\r" if it is a single message received after a valid JSON
2021-11-15 00:30:32 +01:00
Sebastian Serth
46e0bb73a7
Fix initial sync with Poseidon
2021-11-10 08:56:33 +01:00
Sebastian Serth
3608856397
Merge pull request #1079 from openHPI/sync_execution_environments
...
Sync execution environments
2021-11-09 18:44:35 +01:00
Sebastian Serth
7d032e5c0d
Buffer: Prevent replacement of "\r" message
2021-11-08 23:33:37 +01:00