Commit Graph

16 Commits

Author SHA1 Message Date
Maximilian Paß
2e4a975588 Implement even more merge request comments 2021-06-15 12:05:51 +02:00
sirkrypt0
ff582805b4 Move Nomad job creation to Nomad package
Previously, low level Nomad job creation was done in the environment manager.
It used many functions of the nomad package so we felt like this logic
better belongs to the nomad package.
2021-06-15 11:38:02 +02:00
Maximilian Paß
87f823756b Implement merge request comments 2021-06-15 11:37:47 +02:00
Maximilian Paß
25d78df557 Restore existing jobs and fix rebase (7c99eff3) issues 2021-06-15 11:37:35 +02:00
sirkrypt0
c7d59810e5 Use Nomad jobs as runners instead of allocations
As we can't control which allocations are destroyed when downscaling a job, we decided
to use Nomad jobs as our runners. Thus for each runner we prewarm for an environment,
a corresponding job is created in Nomad. We create a default job that serves as a template
for the runners. Using this, already existing execution environments can easily be restored,
once Poseidon is restarted.
2021-06-15 11:35:54 +02:00
sirkrypt0
f122dd9376 Split stdout and stderr on interactive execution
When running a command interactively, we previously would get stdout
and stderr both served on stdout by Nomad. To circumvent this issue,
we now start a separate execution inside the allocation to split
both streams.
2021-06-11 08:47:25 +00:00
Maximilian Paß
32fe47d669 Implement linting issues and merge request comments 2021-06-09 08:35:20 +00:00
Maximilian Paß
4b5f0a3eb6 Add tests for runner manager updating runners 2021-06-09 08:35:20 +00:00
sirkrypt0
3f572261c2 Add updating cached allocations 2021-06-09 08:35:20 +00:00
sirkrypt0
630a006258 Use more uints
Previously we accepted int values although only uint values made sense.
We adjusted this to accept uints where appropriate.
2021-06-03 13:21:49 +00:00
Jan-Eric Hellenberg
02b3f52a11 Add ability to copy files to and delete files from runner 2021-06-02 14:54:54 +02:00
Konrad Hanff
242d0175a2 Add tests and end-to-end tests for websocket execution
For unit tests, this mocks the runners Execute method with a
customizable function that operates on the request, streams and exit
channel to simulate a real execution.

End-to-end tests are moved to the tests/e2e_tests folder. The tests
folder allows us to have shared helper functions for all tests in a
separate package (tests) that is not included in the non-test build.

This also adds one second of delay before each end-to-end test case by
using the TestSetup method of suite. By slowing down test execution,
this gives Nomad time to create new allocations when a test requested a
runner. Another solution could be to increase the scale of the job to
have enough allocations for all end-to-end tests.

Co-authored-by: Maximilian Paß <maximilian.pass@student.hpi.uni-potsdam.de>
2021-05-31 12:32:51 +02:00
sirkrypt0
f228a3e599 Add Nomad job registration with monitoring afterwards
Once a Nomad job is registered, we listen to the Nomad event stream
and return once we find the evaluation to complete.
2021-05-28 06:52:38 +00:00
sirkrypt0
6da9080bce Add option to configure Nomad namespace 2021-05-18 12:10:39 +00:00
sirkrypt0
cee5eee622 Rename job scale functions to be consistent in naming 2021-05-12 10:46:15 +02:00
Jan-Eric Hellenberg
fde334a610 Perform a few renamings 2021-05-11 14:26:05 +02:00