Commit Graph

567 Commits

Author SHA1 Message Date
9a0f26a84f Allow admins and teachers to remove explicit RfC text 2022-04-28 15:31:58 +02:00
038864e4b4 Fix Rubocop offenses 2022-04-24 18:18:16 +02:00
19bd742bc9 Show a localized message if the program was killed.
* This will most likely happen by the OOM killer, thus we inform the user about the memory restriction.
2022-04-15 21:29:55 +02:00
9d9570b26b Update intervention locale and add explanation 2022-04-15 14:23:05 +02:00
298761885c Update German intervention locals 2022-04-07 20:05:15 +02:00
393c66918a Reduce sample rate for Sentry transactions 2022-04-04 16:28:38 +02:00
a0c80dbc75 Update locales for exercise reset 2022-03-23 20:59:25 +01:00
0c1a10959c Use file name with file path as identifier 2021-12-15 00:52:31 +01:00
9f8dfb645a Fix translation for CodeOcean::File 2021-12-15 00:52:31 +01:00
89bb19bfa0 Fix typo for environment in en.yml 2021-12-13 16:13:52 +01:00
8535cd9a9c Add option to sync single execution environment 2021-12-09 16:44:05 +01:00
563e14a44a Adapt dashboard to show idle and used runners 2021-12-07 00:08:31 +01:00
be16738641 Update Sentry to ignore health check transactions 2021-11-26 00:00:45 +01:00
aabb6ca6bc Reduce Sentry traces_sample_rate 2021-11-23 10:04:22 +01:00
116511bd6e Update research_status locale for CommunitySolution 2021-11-23 10:02:17 +01:00
da4e10b990 Add CommunitySolution
* Also slightly refactor some JS files
2021-11-23 01:38:31 +01:00
9079a0b15a Implement Tips Intervention 2021-11-23 01:38:10 +01:00
950b03af77 Fix typo in English locale 2021-11-20 12:44:45 +01:00
81745504ea Fix CODEOCEAN-5Z
* add "cannot assign to comparison" to linter translation
2021-11-15 13:46:24 +01:00
1dce6c59ab Add note about default ACL for Docker mount dir 2021-11-08 22:39:10 +01:00
3ad4890ad4 Use JSON as default for remote evaluation 2021-11-08 10:14:49 +01:00
56d219ad8e [ci-skip] Improve comment for unused_runner_expiration_time 2021-11-01 17:13:13 +01:00
de83843496 Combine no_output and exit_status messages 2021-11-01 17:13:13 +01:00
6209e25ee2 DCP: Move pool location to code_ocean.yml 2021-11-01 17:13:12 +01:00
af93603ba3 Use strategy release in admin dashboard 2021-11-01 17:13:08 +01:00
f3b4be3006 Fix deprecation warning for raise_on_missing_translations 2021-11-01 17:13:07 +01:00
e33af5760d Delegate initialization to Runner::Strategy 2021-11-01 17:13:07 +01:00
541afa92f3 Remove ws_client_protocol option
* The correct setting will be determined automatically
2021-11-01 17:13:06 +01:00
8a4bd84d04 Add note about using hostnames on IPv6 systems 2021-11-01 17:13:06 +01:00
02a2673bf2 Add hint for CPU limit 2021-11-01 17:13:05 +01:00
95f97bd66e Add documentation to code_ocean.yml 2021-11-01 17:13:02 +01:00
06ef4430f5 Change exposed_ports to array 2021-11-01 17:13:02 +01:00
b51a45e9b1 Add token header option for requests to Poseidon 2021-11-01 17:12:57 +01:00
44395b7792 Add ca file option for requests to Poseidon 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
d0d1b1bffd Introduce strategy for runner behavior
The runner model is only a class responsible for storing information
now. Based on the configuration it picks a strategy for the runner
management. The Poseidon strategy is already implemented and tested.
The Docker strategy will follow.
2021-11-01 17:12:49 +01:00
598de3bcff Add button to synchronize all execution environments
This adds a button to the execution environment index page that, when
clicked, causes all execution environments to be synchronized to the
runner management (Poseidon) by creating or replacing them.

CodeOcean does not synchronize it's execution environments on startup or
when a new runner management configuration is used for the first time.
The administrator has to manually start this process by pressing this
button.

The equivalent for syncing just one execution environment is updating
it.
2021-11-01 17:12:49 +01:00
90fac7b94c Copy execution environment to Poseidon on create and update
When creating or updating an execution environment, an API call to
Poseidon is made with the necessary information to create the
corresponding Nomad job.

If runner management is configured, his will display a warning
(currently in the same color as if it were a success) in the UI, if the
API call fails. The environment is saved even if it fails.
If runner management is not configured, this warning will not be created.
2021-11-01 17:12:48 +01:00
8d968e01e6 Move RunnerConnection into class Runner
The old approach was to require the runner connection. This did
not work anymore with Zeitwerk in Rails 6. @sebastian.serth and I
moved the Connection class in `lib` into the ActiveRecord class
`Runner`. This will also work with future changes like specific
error classes. Furthermore the config was fixed and simplified.

Co-authored-by: Sebastian Serth <Sebastian.Serth@hpi.de>
2021-11-01 17:12:47 +01:00
fc6aa12b0a Remove handling of runner timeouts 2021-11-01 17:12:47 +01:00
7ff65135b5 Add runner management configuration to ci 2021-11-01 17:12:46 +01:00
286a3f394d Fix autocorrectable rubocop offences and implement suggestions 2021-11-01 17:12:46 +01:00
c14cf99a96 Don't cleanup runners during precompile 2021-11-01 17:12:46 +01:00
17bd2d8726 Reuse runners per user and execution environment
Co-authored-by: Jan-Eric Hellenberg <jan-eric.hellenberg@student.hpi.uni-potsdam.de>
Co-authored-by: Maximilian Pass <maximilian.pass@student.hpi.uni-potsdam.de>
2021-11-01 17:12:46 +01:00
2404c1c36c Rename variables from container to runner 2021-11-01 17:12:45 +01:00
347e4728a0 Rework protocol inside websocket
Co-authored-by Felix Auringer <felix.auringer@student.hpi.uni-potsdam.de>
2021-11-01 17:12:44 +01:00
f9a7e73719 Remove usage of safe_html in renderings 2021-10-12 11:23:22 +02:00
bb4b4ece92 Add ping/pong health check 2021-10-09 23:37:31 +02:00
671c2bd28b Allow changes to internal user when password is void 2021-07-12 13:27:41 +02:00
eab51d1ea2 Update port of DockerContainerPool in example 2021-07-12 11:27:20 +02:00