Commit Graph

21 Commits

Author SHA1 Message Date
ada438b230 Add release and pool_size methods to DCP 2021-11-01 17:13:07 +01:00
6d1b388e3c Reorder methods in strategy classes 2021-11-01 17:13:07 +01:00
e33af5760d Delegate initialization to Runner::Strategy 2021-11-01 17:13:07 +01:00
2b98905acb Remove usage of DockerClient from execution_environments_controller.rb 2021-11-01 17:13:07 +01:00
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
2ad4eb7625 DCP: Escape command for RegEx 2021-11-01 17:13:04 +01:00
68c8f1dbdf DCP: Set sticky bit for folder and secure delete 2021-11-01 17:13:04 +01:00
04c896c7de DCP: Listen for Python exit handler 2021-11-01 17:13:03 +01:00
58e923abd8 Add custom websocket header to strategy class 2021-11-01 17:12:59 +01:00
a074a5cb0d Add buffering to output received from runner 2021-11-01 17:12:58 +01:00
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
cc98dc2229 Split WebSocket event in multiple lines before processing 2021-11-01 17:12:58 +01:00
09b672eb08 DCP strategy: Use stdout for most test results 2021-11-01 17:12:56 +01:00
30603cb7ab Generalize method and constant names for runner management 2021-11-01 17:12:53 +01:00
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
c7369366d5 Ensure that only one EventMachine is running 2021-11-01 17:12:52 +01:00
2dff81a510 Attach duration information to the exception object 2021-11-01 17:12:52 +01:00
f98a8b9e7a Resolve error handling todos in dcp strategy 2021-11-01 17:12:52 +01:00
d1a5773e60 Add debug log statements to runner connection 2021-11-01 17:12:51 +01:00
cc412b73bc Introduce more error types 2021-11-01 17:12:51 +01:00
704407b9fc Add strategy for DockerContainerPool
In order to provide an alternative to Poseidon, a strategy for the
DockerContainerPool is added that is used by the runner model.

Co-authored-by: Sebastian Serth <Sebastian.Serth@hpi.de>
2021-11-01 17:12:51 +01:00