Commit Graph

1797 Commits

Author SHA1 Message Date
Sebastian Serth
b62a7ad129 Prevent non-existing runner_management config to be read 2021-11-01 17:13:11 +01:00
Sebastian Serth
3c8017f23e JS: Ensure to print status messages for score
* If only one response is available, no array will be passed (but rather an Object). The impact of this has been tackled with the changes included
2021-11-01 17:13:11 +01:00
Sebastian Serth
1609bd2e0e Change default of raise_exception for execute_command 2021-11-01 17:13:11 +01:00
Sebastian Serth
4f1a7cde27 Add null strategy for runners
* This is the default strategy used when the runner management is disabled. It might be replaced with a generic Docker strategy in the future (without pooling). For now, it allows normal "operation" of CodeOcean without any runner management. However, as no runner system is configured, no command can be executed.
2021-11-01 17:13:10 +01:00
Sebastian Serth
28c74bc9a5 Improve memoization of @strategy_class 2021-11-01 17:13:08 +01:00
Sebastian Serth
288c7693f7 Remove dump_docker method for admins 2021-11-01 17:13:08 +01:00
Sebastian Serth
af93603ba3 Use strategy release in admin dashboard 2021-11-01 17:13:08 +01:00
Sebastian Serth
ada438b230 Add release and pool_size methods to DCP 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
541afa92f3 Remove ws_client_protocol option
* The correct setting will be determined automatically
2021-11-01 17:13:06 +01:00
Sebastian Serth
0db6f20933 Move MemoryLimit to Execution Environment 2021-11-01 17:13:06 +01:00
Sebastian Serth
9cc4394296 Allow editing an Execution Environment with active runner management 2021-11-01 17:13:05 +01:00
Sebastian Serth
d87e23b9a3 Add execute_command method to runner.rb
* This is now used by the score and test runs
* This also re-enables the interactive shell for execution environments
2021-11-01 17:13:05 +01:00
Sebastian Serth
02a2673bf2 Add hint for CPU limit 2021-11-01 17:13:05 +01:00
Sebastian Serth
7e2039ebc2 Fix bug that always showed the default value for CPU limit when editing the limit 2021-11-01 17:13:04 +01:00
Sebastian Serth
a1db30c288 Clarify EnvironmentNotFound error handling 2021-11-01 17:13:02 +01:00
Sebastian Serth
06ef4430f5 Change exposed_ports to array 2021-11-01 17:13:02 +01:00
Sebastian Serth
064c55b711 Add new validator for all elements of an array 2021-11-01 17:13:02 +01:00
Sebastian Serth
90eeb3bb9c Move CodeOcean::FileNameValidator 2021-11-01 17:13:01 +01:00
Sebastian Serth
352e5f4329 Clarify strategy creation in runner.rb with comment 2021-11-01 17:13:01 +01:00
Sebastian Serth
7285978ea3 Re-add test method for SubmissionsController 2021-11-01 17:13:01 +01:00
Sebastian Serth
5f98456276 Extract run_test_file from submission.rb 2021-11-01 17:13:01 +01:00
Sebastian Serth
56a1d78793 Use correct embed_option to disable_score 2021-11-01 17:13:01 +01:00
Sebastian Serth
2377f8370c Clarify set_file and set_files in SubmissionsController 2021-11-01 17:13:00 +01:00
Sebastian Serth
21e0571838 Remove unnecessary post parameter from sync_all view 2021-11-01 17:13:00 +01:00
Sebastian Serth
345860c779 Adapt output buffering to Poseidon and DCP
* Refactor flushing of messages
* Introduce two separate buffers for stdout and stderr
2021-11-01 17:13:00 +01:00
Sebastian Serth
7e7b7ebdfa Allow flushing the WebSocket connection
* This will prevent the current thread from crashing when a single newline character is received.
2021-11-01 17:12:59 +01:00
Sebastian Serth
f4c806fe43 Forward JSON from runner to client if possible 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
f896d041f8 Restructure submissions_controller and remove outdated copy_comments method 2021-11-01 17:12:58 +01:00
Sebastian Serth
1403fc03c4 Remove outdated lines from #download method 2021-11-01 17:12:57 +01:00
Sebastian Serth
601e1fab5c Remove all occurrences of server-sent events 2021-11-01 17:12:57 +01:00
Sebastian Serth
82cab390ad Remove outdated run method from turtle.js 2021-11-01 17:12:57 +01:00
Sebastian Serth
cc17736bf5 Add CPU limit to Execution Environment index 2021-11-01 17:12:56 +01:00
Sebastian Serth
0c22e1392a Remove outdated mnemosyne traces 2021-11-01 17:12:55 +01:00
Sebastian Serth
13c378b980 Remove concurrent ruby gem no longer needed 2021-11-01 17:12:55 +01:00
Sebastian Serth
fd9e243064 Disable DCP if other strategy class is chosen 2021-11-01 17:12:54 +01:00
Sebastian Serth
4ad898ad8b Remove set_docker_client method from submissions_controller.rb 2021-11-01 17:12:54 +01:00
Felix Auringer
f77e6d9df8 Simplify code in runner model 2021-11-01 17:12:54 +01:00
Felix Auringer
1bf92d8c90 Fix sentry error capturing in submissions controller 2021-11-01 17:12:53 +01:00
Sebastian Serth
30603cb7ab Generalize method and constant names for runner management 2021-11-01 17:12:53 +01:00
Felix Auringer
e752df1b3c Move EventMachine initialization to Runner::EventLoop 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
5cc180d0e9 Fix rubocop, I18n, cleanup rebase 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
36578a2817 Ensure to save Testrun even when an error occurs 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