Commit Graph

3749 Commits

Author SHA1 Message Date
fb92d382ac Skip verification of Docker image if pool size is empty 2021-11-09 17:49:51 +01:00
b179dadce6 Mock CodeOcean::Config for Poseidon strategy 2021-11-04 20:09:20 +01:00
79e8caea45 Remove outdated execution environments after syncing all 2021-11-04 20:09:20 +01:00
054d35b8d3 Add environments method to all strategies 2021-11-04 20:09:19 +01:00
79da2781e3 Restructure methods in execution_environment.rb 2021-11-04 20:09:19 +01:00
94170ea742 DCP: Improve error handling for destroy_at_management 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
38e1f5b486 Show error details of available_images 2021-11-04 20:06:40 +01:00
7f47af99cb Fix order-dependent specs 2021-11-04 19:15:33 +01:00
d033f71ae3 Catch Runner::Error in RemoteEvaluationController 2021-11-04 18:43:16 +01:00
4cd70f2bad Add comment for retries to Runner#execute_command 2021-11-04 18:43:16 +01:00
92eafa145c Swap runner during score if timeout occurred 2021-11-04 18:43:16 +01:00
107ff03eec Bundle update 2021-11-04 17:19:45 +01:00
eb69697b9a Fix missing routes incompatible with a subpath 2021-11-03 16:02:21 +01:00
7bda3f1950 JUnit 4: Allow "exit" at the end of tests 2021-11-02 22:42:38 +01:00
91af20b5ce Disallow assessment files during run 2021-11-02 16:19:24 +01:00
0b4217b12d Memoize collect_files 2021-11-02 16:19:01 +01:00
e37683a1b2 Fix linting issue for PyLint adapter 2021-11-02 15:53:49 +01:00
3d3478d859 Test Adapters: Always use the last output for score runs
* This prevents learners from cheating by printing the required status line themselves
2021-11-02 15:52:49 +01:00
d7e515f1c6 Fix rubocop offense 2021-11-02 10:46:48 +01:00
620dac935a Fix bug that prevented binary file uploads 2021-11-02 10:31:50 +01:00
ebec5bac04 Merge pull request #1078 from openHPI/dependabot/bundler/net-http-persistent-4.0.1 2021-11-02 03:08:42 +00:00
5cda6d3ce8 Merge pull request #1077 from openHPI/dependabot/bundler/js-routes-2.1.2 2021-11-02 03:07:48 +00:00
c6bbd4f28e Bump net-http-persistent from 4.0.0 to 4.0.1
Bumps [net-http-persistent](https://github.com/drbrain/net-http-persistent) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/drbrain/net-http-persistent/releases)
- [Changelog](https://github.com/drbrain/net-http-persistent/blob/master/History.txt)
- [Commits](https://github.com/drbrain/net-http-persistent/compare/v4.0.0...v4.0.1)

---
updated-dependencies:
- dependency-name: net-http-persistent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 03:01:37 +00:00
fe0a1e2887 Bump js-routes from 2.1.1 to 2.1.2
Bumps [js-routes](https://github.com/railsware/js-routes) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/railsware/js-routes/releases)
- [Changelog](https://github.com/railsware/js-routes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/railsware/js-routes/compare/v2.1.1...v2.1.2)

---
updated-dependencies:
- dependency-name: js-routes
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 03:01:26 +00:00
7b834b420b Merge pull request #1076 from openHPI/runner_management
Enable support for runner management
2021-11-01 19:33:59 +01:00
c3642b5d0c Add an empty line before printing exit message
* The empty line is only added if the output is not empty
2021-11-01 17:52:44 +01:00
328055e6e8 DCP: previous_data match should be non-greedy 2021-11-01 17:13:15 +01:00
2c10b48b70 Execute Command: Guard requesting new runner
* If any exception is thrown, these will be caught now and handled appropriately
2021-11-01 17:13:15 +01:00
65fe1d902d DCP: Match java@hostname output 2021-11-01 17:13:15 +01:00
d16917261b Prevent inactivityTimeout from being smaller than permitted_execution_time 2021-11-01 17:13:14 +01:00
bdfcb0da19 Reset previous exception if retrying command execution 2021-11-01 17:13:14 +01:00
6ff14d6fc7 Connection Buffer: Replace \r in run and score output with \n 2021-11-01 17:13:14 +01:00
1e7cf1c622 Prevent parallel execution of run and test during RfC creation
* Otherwise, the output of both might be mixed and saved incorrectly for the RfC
2021-11-01 17:13:14 +01:00
475aa8c512 DCP: Allow increasing the pool size when previously empty 2021-11-01 17:13:13 +01:00
447860892a Always remove exposed_ports_list if present 2021-11-01 17:13:13 +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
eaa06ee528 DCP: Prevent double deletion of runner 2021-11-01 17:13:13 +01:00
6a902c41db DCP: Refactor container method and usage 2021-11-01 17:13:12 +01:00
537d8bfc95 DCP: Add handling of inactivity timer 2021-11-01 17:13:12 +01:00
dcafbb9d46 DCP: Change HTTP verbs 2021-11-01 17:13:12 +01:00
6209e25ee2 DCP: Move pool location to code_ocean.yml 2021-11-01 17:13:12 +01:00
7bb2ef8588 DCP: Forward data before matching stdout termination 2021-11-01 17:13:12 +01:00
dfdec92c6e Use ping option only for DCP WebSocket
* The Faye::WebSocket library will "buffer" some output of the connection and emit the `on :message` events in the order of the messages. However, when a ping is sent while the connection has already been closed, it will emit the `on :close` event immediately and drop all other messages (in that "buffer"). This is problematic for very short running executions that generate a long output (as this will be cut off without a proper exit message sent by Poseidon).
2021-11-01 17:13:11 +01:00
570809bfe9 Allow whitespace for JSON exit 2021-11-01 17:13:11 +01:00
b62a7ad129 Prevent non-existing runner_management config to be read 2021-11-01 17:13:11 +01:00
3c8017f23e JS: Ensure to print status messages for score
* If only one response is available, no array will be passed (but rather an Object). The impact of this has been tackled with the changes included
2021-11-01 17:13:11 +01:00
1609bd2e0e Change default of raise_exception for execute_command 2021-11-01 17:13:11 +01:00