Commit Graph

51 Commits

Author SHA1 Message Date
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
f53c6cb3ee Shell: Add toggle to execute command as root 2022-10-04 16:06:58 +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
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
5caace01b6 Add comment to DockerContainerPool strategy regarding filtering 2022-04-12 12:47:16 +02:00
Sebastian Serth
ea85519163 Update bundle (with newest rubocop version) and fix offenses 2022-01-04 09:42:37 +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
eb985bec9a DCP: Rescue Excon::Error::Socket 2021-11-15 15:09:43 +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
1dce6c59ab Add note about default ACL for Docker mount dir 2021-11-08 22:39:10 +01:00
Sebastian Serth
5401ebb54d Revert "DCP: previous_data match should be non-greedy"
This reverts commit 328055e6e8 due to dramatically slower processing.
2021-11-08 20:06:55 +01:00
Sebastian Serth
054d35b8d3 Add environments method to all strategies 2021-11-04 20:09:19 +01:00
Sebastian Serth
94170ea742 DCP: Improve error handling for destroy_at_management 2021-11-04 20:09:19 +01:00
Sebastian Serth
ecf470bddd Refactor sync_environment methods
* Add delete_environment method
* Change return value to allow raising an exception
2021-11-04 20:06:40 +01:00
Sebastian Serth
328055e6e8 DCP: previous_data match should be non-greedy 2021-11-01 17:13:15 +01:00
Sebastian Serth
65fe1d902d DCP: Match java@hostname output 2021-11-01 17:13:15 +01:00
Sebastian Serth
d16917261b Prevent inactivityTimeout from being smaller than permitted_execution_time 2021-11-01 17:13:14 +01:00
Sebastian Serth
475aa8c512 DCP: Allow increasing the pool size when previously empty 2021-11-01 17:13:13 +01:00
Sebastian Serth
eaa06ee528 DCP: Prevent double deletion of runner 2021-11-01 17:13:13 +01:00
Sebastian Serth
6a902c41db DCP: Refactor container method and usage 2021-11-01 17:13:12 +01:00
Sebastian Serth
537d8bfc95 DCP: Add handling of inactivity timer 2021-11-01 17:13:12 +01:00
Sebastian Serth
dcafbb9d46 DCP: Change HTTP verbs 2021-11-01 17:13:12 +01:00
Sebastian Serth
6209e25ee2 DCP: Move pool location to code_ocean.yml 2021-11-01 17:13:12 +01:00
Sebastian Serth
7bb2ef8588 DCP: Forward data before matching stdout termination 2021-11-01 17:13:12 +01:00
Sebastian Serth
dfdec92c6e Use ping option only for DCP WebSocket
* The Faye::WebSocket library will "buffer" some output of the connection and emit the `on :message` events in the order of the messages. However, when a ping is sent while the connection has already been closed, it will emit the `on :close` event immediately and drop all other messages (in that "buffer"). This is problematic for very short running executions that generate a long output (as this will be cut off without a proper exit message sent by Poseidon).
2021-11-01 17:13:11 +01:00
Sebastian Serth
01ec9343cf Remove usage of DockerClient 2021-11-01 17:13:10 +01:00
Sebastian Serth
b13a3b084d Use new available_images routes from DCP 2021-11-01 17:13:10 +01:00
Sebastian Serth
ada438b230 Add release and pool_size methods to DCP 2021-11-01 17:13:07 +01:00
Sebastian Serth
6d1b388e3c Reorder methods in strategy classes 2021-11-01 17:13:07 +01:00
Sebastian Serth
e33af5760d Delegate initialization to Runner::Strategy 2021-11-01 17:13:07 +01:00
Sebastian Serth
2b98905acb Remove usage of DockerClient from execution_environments_controller.rb 2021-11-01 17:13:07 +01:00
Sebastian Serth
87c5302336 Switch logging to milliseconds and add more details
* By design, most logging happens in an `ensure` block. This ensures that no return value is modified unexpectedly.
2021-11-01 17:13:06 +01:00
Sebastian Serth
2ad4eb7625 DCP: Escape command for RegEx 2021-11-01 17:13:04 +01:00
Sebastian Serth
68c8f1dbdf DCP: Set sticky bit for folder and secure delete 2021-11-01 17:13:04 +01:00
Sebastian Serth
04c896c7de DCP: Listen for Python exit handler 2021-11-01 17:13:03 +01:00
Sebastian Serth
58e923abd8 Add custom websocket header to strategy class 2021-11-01 17:12:59 +01:00
Sebastian Serth
a074a5cb0d Add buffering to output received from runner 2021-11-01 17:12:58 +01:00
Sebastian Serth
3240ea7076 Forward input as raw_event to runner
* Also, rename #send to #send_data in order to prevent debugging issues in RubyMine
2021-11-01 17:12:58 +01:00
Sebastian Serth
cc98dc2229 Split WebSocket event in multiple lines before processing 2021-11-01 17:12:58 +01:00
Sebastian Serth
09b672eb08 DCP strategy: Use stdout for most test results 2021-11-01 17:12:56 +01:00
Sebastian Serth
30603cb7ab Generalize method and constant names for runner management 2021-11-01 17:12:53 +01:00
Felix Auringer
9e2cff7558 Attach connection errors to socket
Raising the errors would crash the current thread. As this thread
contains the Eventmachine, that would influence other connections
as well. Attaching the errors to the connection and reading them
after the connection was closed ensures that the thread stays
alive while handling the errors in the main thread of the current
request.
2021-11-01 17:12:53 +01:00
Felix Auringer
c7369366d5 Ensure that only one EventMachine is running 2021-11-01 17:12:52 +01:00
Felix Auringer
2dff81a510 Attach duration information to the exception object 2021-11-01 17:12:52 +01:00
Felix Auringer
f98a8b9e7a Resolve error handling todos in dcp strategy 2021-11-01 17:12:52 +01:00
Felix Auringer
d1a5773e60 Add debug log statements to runner connection 2021-11-01 17:12:51 +01:00
Felix Auringer
cc412b73bc Introduce more error types 2021-11-01 17:12:51 +01:00