37 Commits

Author SHA1 Message Date
f8330b39fb Replace manual activerecord translations with helpers 2024-05-21 19:42:26 +02:00
8fc5123bae Exclusively lock Runners during code executions
Previously, the same runner could be used multiple times with different submissions simultaneously. This, however, yielded errors, for example when one submission time oud (causing the running to be deleted) while another submission was still executed.

Admin actions, such as the shell, can be still executed regardless of any other code execution.

Fixes CODEOCEAN-HG
Fixes openHPI/poseidon#423
2023-10-31 12:35:24 +01:00
5d02251cbb Replace BooleanPresenceValidator with InclusionValidator
The `BooleanPresenceValidator` is causing issues with Ruby 3.2+ YJIT irregularly.

Fixes CODEOCEAN-GQ, fixes CODEOCEAN-GR
2023-01-08 14:10:14 +01:00
574e99eddd Fix rubocop offenses - Requires Ruby 3.1+ 2022-11-25 11:10:06 +01:00
ef5dd80ea7 Increase wait timeout for new execution environments to 60 sec 2022-10-11 21:14:07 +02:00
66ab00a6bd Fix association to testrun_execution_environment 2022-10-11 21:08:34 +02:00
eb188dcd71 Add privilegedExecution flag to database and Poseidon Strategy 2022-09-24 22:32:41 +02:00
166aa3cc6f Remove Ransack from Exercise edit for tags
* Also improve Ransack usage of attributes and associations
2022-08-20 01:33:00 +02:00
d10735d0a8 Persist Execution Environment when running code 2022-04-15 15:22:19 +02:00
97e4ecb4d9 Increase wait time for validating Docker image 2021-12-22 19:10:59 +01:00
1a5d512689 Check Runner management status in execution environment updates 2021-12-01 18:41:29 +01:00
f22db22110 Enable Poseidon sync after commit 2021-11-26 01:00:31 +01:00
fb92d382ac Skip verification of Docker image if pool size is empty 2021-11-09 17:49:51 +01:00
79da2781e3 Restructure methods in execution_environment.rb 2021-11-04 20:09:19 +01:00
c1ac401a49 Add retries to working_docker_image?
* Also synchronize images during save
2021-11-04 20:09:19 +01:00
ecf470bddd Refactor sync_environment methods
* Add delete_environment method
* Change return value to allow raising an exception
2021-11-04 20:06:40 +01:00
475aa8c512 DCP: Allow increasing the pool size when previously empty 2021-11-01 17:13:13 +01:00
1609bd2e0e Change default of raise_exception for execute_command 2021-11-01 17:13:11 +01:00
0db6f20933 Move MemoryLimit to Execution Environment 2021-11-01 17:13:06 +01:00
9cc4394296 Allow editing an Execution Environment with active runner management 2021-11-01 17:13:05 +01:00
06ef4430f5 Change exposed_ports to array 2021-11-01 17:13:02 +01:00
30603cb7ab Generalize method and constant names for runner management 2021-11-01 17:12:53 +01:00
1d3f0d7ad8 Handle Faraday errors 2021-11-01 17:12:50 +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
6cbecb5b39 Apply automatic rubocop fixes 2021-05-14 22:03:06 +02:00
efacb5a6a9 Completely remove old hints connected to the execution environment 2018-11-28 01:21:13 +01:00
de52db89f0 Upgrade Rails to version 5.2.1 and adopt code & specs where necessary
Signed-off-by: Sebastian Serth <Sebastian.Serth@student.hpi.de>
2018-11-06 16:46:00 +01:00
e70897e560 working_docker_image?: Modify behavior to match spec 2018-02-22 17:19:54 +01:00
872611bff6 Update schema to reflect re-usable error_template_attributes, descriptions, hints, and sorting 2017-07-11 19:22:12 +02:00
d109663cb9 extracted boolean validation logic into stand-alone validator 2015-03-18 09:10:58 +01:00
15d8984a9e added the ability to prohibit network access for code submissions executed using Docker 2015-03-17 17:14:25 +01:00
b1218e0b80 added the ability to limit memory consumption of code submissions executed using Docker 2015-03-17 15:51:59 +01:00
48f1b97aea extracted method 2015-03-12 11:07:29 +01:00
3ae749bfc5 extended execution environments by a default file type that is used as the default for associated exercises' files 2015-03-10 18:14:26 +01:00
240c570698 minor improvement 2015-03-10 17:15:13 +01:00
5f0815b140 implemented pooling for Docker containers 2015-02-06 15:59:51 +01:00
4cbf9970b1 transferred Code Ocean from original repository to GitHub 2015-01-22 10:01:32 +01:00