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