Commit Graph

3743 Commits

Author SHA1 Message Date
Sebastian Serth
59d2a8ecdb Junit5: Specify line to search for assertion error 2021-11-06 00:03:45 +01:00
Sebastian Serth
49d8bebb48 Merge pull request #1080 from openHPI/codeql-analysis
Create codeql-analysis.yml
2021-11-05 09:46:42 +01:00
Sebastian Serth
0a552cac44 Create codeql-analysis.yml 2021-11-05 09:32:56 +01:00
Sebastian Serth
7f47af99cb Fix order-dependent specs 2021-11-04 19:15:33 +01:00
Sebastian Serth
d033f71ae3 Catch Runner::Error in RemoteEvaluationController 2021-11-04 18:43:16 +01:00
Sebastian Serth
4cd70f2bad Add comment for retries to Runner#execute_command 2021-11-04 18:43:16 +01:00
Sebastian Serth
92eafa145c Swap runner during score if timeout occurred 2021-11-04 18:43:16 +01:00
Sebastian Serth
107ff03eec Bundle update 2021-11-04 17:19:45 +01:00
Sebastian Serth
eb69697b9a Fix missing routes incompatible with a subpath 2021-11-03 16:02:21 +01:00
Sebastian Serth
7bda3f1950 JUnit 4: Allow "exit" at the end of tests 2021-11-02 22:42:38 +01:00
Sebastian Serth
91af20b5ce Disallow assessment files during run 2021-11-02 16:19:24 +01:00
Sebastian Serth
0b4217b12d Memoize collect_files 2021-11-02 16:19:01 +01:00
Sebastian Serth
e37683a1b2 Fix linting issue for PyLint adapter 2021-11-02 15:53:49 +01:00
Sebastian Serth
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
Sebastian Serth
d7e515f1c6 Fix rubocop offense 2021-11-02 10:46:48 +01:00
Sebastian Serth
620dac935a Fix bug that prevented binary file uploads 2021-11-02 10:31:50 +01:00
dependabot[bot]
ebec5bac04 Merge pull request #1078 from openHPI/dependabot/bundler/net-http-persistent-4.0.1 2021-11-02 03:08:42 +00:00
dependabot[bot]
5cda6d3ce8 Merge pull request #1077 from openHPI/dependabot/bundler/js-routes-2.1.2 2021-11-02 03:07:48 +00:00
dependabot[bot]
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
dependabot[bot]
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
Sebastian Serth
7b834b420b Merge pull request #1076 from openHPI/runner_management
Enable support for runner management
2021-11-01 19:33:59 +01:00
Sebastian Serth
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
Sebastian Serth
328055e6e8 DCP: previous_data match should be non-greedy 2021-11-01 17:13:15 +01:00
Sebastian Serth
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
Sebastian Serth
65fe1d902d DCP: Match java@hostname output 2021-11-01 17:13:15 +01:00
Sebastian Serth
d16917261b Prevent inactivityTimeout from being smaller than permitted_execution_time 2021-11-01 17:13:14 +01:00
Sebastian Serth
bdfcb0da19 Reset previous exception if retrying command execution 2021-11-01 17:13:14 +01:00
Sebastian Serth
6ff14d6fc7 Connection Buffer: Replace \r in run and score output with \n 2021-11-01 17:13:14 +01:00
Sebastian Serth
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
Sebastian Serth
475aa8c512 DCP: Allow increasing the pool size when previously empty 2021-11-01 17:13:13 +01:00
Sebastian Serth
447860892a Always remove exposed_ports_list if present 2021-11-01 17:13:13 +01:00
Sebastian Serth
56d219ad8e [ci-skip] Improve comment for unused_runner_expiration_time 2021-11-01 17:13:13 +01:00
Sebastian Serth
de83843496 Combine no_output and exit_status messages 2021-11-01 17:13:13 +01:00
Sebastian Serth
eaa06ee528 DCP: Prevent double deletion of runner 2021-11-01 17:13:13 +01:00
Sebastian Serth
6a902c41db DCP: Refactor container method and usage 2021-11-01 17:13:12 +01:00
Sebastian Serth
537d8bfc95 DCP: Add handling of inactivity timer 2021-11-01 17:13:12 +01:00
Sebastian Serth
dcafbb9d46 DCP: Change HTTP verbs 2021-11-01 17:13:12 +01:00
Sebastian Serth
6209e25ee2 DCP: Move pool location to code_ocean.yml 2021-11-01 17:13:12 +01:00
Sebastian Serth
7bb2ef8588 DCP: Forward data before matching stdout termination 2021-11-01 17:13:12 +01:00
Sebastian Serth
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
Sebastian Serth
570809bfe9 Allow whitespace for JSON exit 2021-11-01 17:13:11 +01:00
Sebastian Serth
b62a7ad129 Prevent non-existing runner_management config to be read 2021-11-01 17:13:11 +01:00
Sebastian Serth
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
Sebastian Serth
1609bd2e0e Change default of raise_exception for execute_command 2021-11-01 17:13:11 +01:00
Sebastian Serth
4f1a7cde27 Add null strategy for runners
* This is the default strategy used when the runner management is disabled. It might be replaced with a generic Docker strategy in the future (without pooling). For now, it allows normal "operation" of CodeOcean without any runner management. However, as no runner system is configured, no command can be executed.
2021-11-01 17:13:10 +01:00
Sebastian Serth
5550183d7e [Spec] openhpi/co_execenv_python:3.4 is no longer required 2021-11-01 17:13:10 +01:00
Sebastian Serth
01ec9343cf Remove usage of DockerClient 2021-11-01 17:13:10 +01:00
Sebastian Serth
20064b0715 DockerClient: Cleanup usage of config 2021-11-01 17:13:10 +01:00
Sebastian Serth
b13a3b084d Use new available_images routes from DCP 2021-11-01 17:13:10 +01:00
Sebastian Serth
2551ea709b Remove 'previous' DockerContainerPool implementation 2021-11-01 17:13:09 +01:00