Commit Graph

532 Commits

Author SHA1 Message Date
Felix Auringer
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
Konrad Hanff
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
Konrad Hanff
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
Felix Auringer
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
Felix Auringer
fc6aa12b0a Remove handling of runner timeouts 2021-11-01 17:12:47 +01:00
Felix Auringer
7ff65135b5 Add runner management configuration to ci 2021-11-01 17:12:46 +01:00
Konrad Hanff
286a3f394d Fix autocorrectable rubocop offences and implement suggestions 2021-11-01 17:12:46 +01:00
Konrad Hanff
c14cf99a96 Don't cleanup runners during precompile 2021-11-01 17:12:46 +01:00
Konrad Hanff
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
Konrad Hanff
2404c1c36c Rename variables from container to runner 2021-11-01 17:12:45 +01:00
Konrad Hanff
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
Sebastian Serth
f9a7e73719 Remove usage of safe_html in renderings 2021-10-12 11:23:22 +02:00
Sebastian Serth
bb4b4ece92 Add ping/pong health check 2021-10-09 23:37:31 +02:00
Sebastian Serth
671c2bd28b Allow changes to internal user when password is void 2021-07-12 13:27:41 +02:00
Sebastian Serth
eab51d1ea2 Update port of DockerContainerPool in example 2021-07-12 11:27:20 +02:00
Sebastian Serth
4926b33a5f Introduce new config option for JS-based Sentry
* Also update environment_variables.md
2021-07-08 20:15:29 +02:00
Sebastian Serth
237c225732 Add support for running CodeOcean under a subpath
* Also refactor (JavaScript) routes
2021-07-06 19:33:55 +02:00
Sebastian Serth
7914608efe Add js-routes to use Route helpers in JavaScript 2021-07-06 16:54:27 +02:00
Sebastian Serth
3fb9c967b4 Remove unnecessary Rubocop deactivation 2021-07-01 08:06:10 +02:00
Sebastian Serth
110f1a5750 Fix rubocop offenses after bundle update 2021-06-30 09:13:25 +02:00
Sebastian Serth
7543749e81 Lower Sentry trace sample rate to 5% 2021-05-17 22:54:00 +02:00
Sebastian Serth
da0a682ffb Apply manual rubocop fixes 2021-05-14 22:03:06 +02:00
Sebastian Serth
6cbecb5b39 Apply automatic rubocop fixes 2021-05-14 22:03:06 +02:00
Sebastian Serth
1d08a78d7d Lower Sentry trace sample rate to 10% 2021-05-12 23:20:03 +02:00
Sebastian Serth
5bf7c0a425 Move inflections to dedicated file 2021-05-12 18:19:50 +02:00
Sebastian Serth
a75328e634 Enable Sentry Performance 2021-05-12 17:58:18 +02:00
Sebastian Serth
d563488c30 Remove uglifier as JS preprocessor 2021-05-12 17:51:28 +02:00
Sebastian Serth
0b43d8e656 Remove framework migration file from Rails 6.0 2021-05-12 17:14:57 +02:00
Sebastian Serth
11962a1d65 Upgrade to Rails 6.1 and apply new framework defaults 2021-05-12 16:49:14 +02:00
Sebastian Serth
504bb07ae1 Use urlsafe_csrf_tokens to allow migrating from Rails 5.2.5+ 2021-05-12 16:47:05 +02:00
Sebastian Serth
ebdfd4ab63 Re-enable oscillating tests 2021-05-12 16:47:05 +02:00
Sebastian Serth
2b32829e60 Upgrade DatabaseCleaner strategy 2021-05-12 16:47:05 +02:00
Sebastian Serth
8378070bc2 Upgrade to Rails 6.0 and apply new framework defaults 2021-05-12 16:47:05 +02:00
Sebastian Serth
ea029c5f1c Change dev ports to DockerContainerPool to 7100 2021-04-29 13:21:24 +02:00
Sebastian Serth
b78a161914 Change default dev port to 7000 2021-04-29 13:13:49 +02:00
Sebastian Serth
6a6e1c84f4 Move Prometheus initialization after preloading the remaining app 2021-04-22 12:34:27 +02:00
Sebastian Serth
567a75d9ae Change session validity to 1 month 2021-04-22 11:45:35 +02:00
Sebastian Serth
78230f0d97 Add message for expired session 2021-04-22 11:32:12 +02:00
Sebastian Serth
9a5514942e Remove CSRF debug features 2021-04-22 11:31:30 +02:00
Sebastian Serth
61e9eab02b Load Prometheus if enabled and not in console 2021-04-19 18:23:34 +02:00
Sebastian Serth
b4de29bb2d Load Prometheus exporter only for Rails Server 2021-04-19 17:19:21 +02:00
Sebastian Serth
521a0cb710 Exclude prometheus task for more rake tasks 2021-04-19 13:47:31 +02:00
Sebastian Serth
1e5a9b0825 Remove unused SubmissionsController#stop action 2021-04-07 17:45:38 +02:00
Sebastian Serth
6e3127dad8 Add missing translation for activating internal users 2021-04-07 14:06:32 +02:00
Tobias Kantusch
40d83dbb1d Fix access to exercise-specific RfC listing 2021-04-07 14:06:32 +02:00
Tobias Kantusch
44b32b6f6a #46 Add Prometheus exporter 2021-04-07 14:06:32 +02:00
Sebastian Serth
a174d75a47 Debug CSRF issues temporarily 2021-03-10 13:51:29 +01:00
Sebastian Serth
5a78f1ec2a Remove custom Sentry processors 2021-03-08 19:42:48 +01:00
Sebastian Serth
b10e23dd16 Upgrade to newest Sentry 2021-03-04 14:02:16 +01:00
Sebastian Serth
28a2ac5b29 Disable codeharbor for CI 2021-02-16 14:34:31 +01:00