5cc180d0e9
Fix rubocop, I18n, cleanup rebase
2021-11-01 17:12:52 +01:00
2dff81a510
Attach duration information to the exception object
2021-11-01 17:12:52 +01:00
36578a2817
Ensure to save Testrun even when an error occurs
2021-11-01 17:12:52 +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
1d3f0d7ad8
Handle Faraday errors
2021-11-01 17:12:50 +01:00
b48b45de9f
Refactor error classes
...
All runner errors are now in a single file. The not found error
has been splitted into an error for runner not found and for
environment not found.
2021-11-01 17:12:50 +01:00
413f9b2705
Improve error resilience and handling
...
Timeouts are now handled correctly and the Runner automatically
creates the execution environment if it could not be found in
Poseidon. The runner is deleted locally if Poseidon returns
a bad request error.
2021-11-01 17:12:50 +01:00
b6bc578aea
Move submission scoring from controller concern to submission model
...
Localization and markdown formatting is now done in a controller
spec in order to bring this logic away from the data and towards
the view.
2021-11-01 17:12:50 +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
d5b274c9f2
Introduce new error types for runners
...
The errors are raised in the runner model and in the runner connection
class. In the submission controller the errors are rescued and,
depending on the error, the status timeout / container depleted is
sent to the client.
2021-11-01 17:12:48 +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
b762c73ddd
Update usage of Poseidon API to newest API version (0.2.2)
...
copy file, create and execute command had to be adapted.
2021-11-01 17:12:47 +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
63d997a7e3
Fix Rubocop offenses after Rubocop was reconfigured
2021-11-01 17:12:47 +01:00
fc6aa12b0a
Remove handling of runner timeouts
2021-11-01 17:12:47 +01:00
286a3f394d
Fix autocorrectable rubocop offences and implement suggestions
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
3e6534567d
Move copy_submission_files from runner to submission
2021-11-01 17:12:45 +01:00
cf1e4d6edf
Rename API routes
2021-11-01 17:12:44 +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
6a4e302f4e
Fix socket handling and add configuration option
...
Co-authored-by: Felix Auringer <felix.auringer@student.hpi.uni-potsdam.de >
2021-11-01 17:12:43 +01:00
92b249e7b3
Reimplement scoring and create connection abstraction
...
Co-authored-by: Felix Auringer <felix.auringer@student.hpi.uni-potsdam.de >
2021-11-01 17:12:43 +01:00
1546f70818
Begin to refactor websocket handling and implement test
...
Co-authored-by: Felix Auringer <felix.auringer@student.hpi.uni-potsdam.de >
2021-11-01 17:12:43 +01:00
3cf70a33d8
Integrate new API with websocket (run only)
...
Co-authored-by: Felix Auringer <felix.auringer@student.hpi.uni-potsdam.de >
2021-11-01 17:12:43 +01:00
2e2cd1855e
Add Container abstration with new API calls and adapt running a submission
...
Co-authored-by: Felix Auringer <felix.auringer@student.hpi.uni-potsdam.de >
2021-11-01 17:12:43 +01:00
6a255ced5b
Exclude content attribute of files to be trimmed
2021-10-08 19:30:55 +02:00
6321b2edef
trim whitespace from beginning and end of string attributes
2021-10-08 19:30:54 +02:00
74e285e9fd
Fix rubocop offenses
2021-10-05 12:09:56 +02:00
671c2bd28b
Allow changes to internal user when password is void
2021-07-12 13:27:41 +02:00
110f1a5750
Fix rubocop offenses after bundle update
2021-06-30 09:13:25 +02:00
e7cf4ef5db
Apply automatic rubocop fixes
2021-06-25 14:41:49 +02:00
5243808d54
Apply automatic rubocop fixes
2021-05-17 19:40:38 +02:00
da0a682ffb
Apply manual rubocop fixes
2021-05-14 22:03:06 +02:00
6cbecb5b39
Apply automatic rubocop fixes
2021-05-14 22:03:06 +02:00
11962a1d65
Upgrade to Rails 6.1 and apply new framework defaults
2021-05-12 16:49:14 +02:00
3c7e9176a2
Daily Rubocop
2021-04-30 12:06:13 +02:00
4958f5b9a9
Add StudyGroup to RemoteEvaluationMapping
2021-04-30 12:06:12 +02:00
1d5ceebd7b
Fix RfC filter for unnamed study groups
2021-04-09 10:25:41 +02:00
44b32b6f6a
#46 Add Prometheus exporter
2021-04-07 14:06:32 +02:00
36ac8b63cb
Use regular file as default for new exercise file roles
2021-03-17 14:33:40 +01:00
b10e23dd16
Upgrade to newest Sentry
2021-03-04 14:02:16 +01:00
72b3524b18
Leverage PostgreSQL count for study group size
2021-01-23 00:28:11 +01:00
423a5b08f9
Allow internal user to be part of an study group
2021-01-11 14:22:50 +01:00
b2cb1bde39
Use postgres interval explicitly for all default occasions
2020-12-16 17:35:52 +01:00
89a42f2dae
Use either remoteSubmit or submit for showing exercise statistics
2020-12-16 13:23:47 +01:00
2d2869765f
Ensure Postgres always returns a duration
2020-12-14 19:57:11 +01:00
bc2e0d90c4
Use proper duration instead of seconds since midnight
2020-12-14 19:11:12 +01:00
304f0ad469
Add sentry logging for working_time_query
2020-12-14 13:17:12 +01:00
fac29f73d4
Respect user_type for RfC index routes
2020-12-04 16:58:11 +01:00